mirror of
https://github.com/home-assistant/core.git
synced 2025-07-13 16:27:08 +00:00
Refactor some sensors and add translations to Overkiz (#64108)
This commit is contained in:
parent
8f6884ac10
commit
b9cfaae3de
@ -43,3 +43,16 @@ OVERKIZ_DEVICE_TO_PLATFORM: dict[UIClass | UIWidget, Platform] = {
|
|||||||
UIWidget.RTD_OUTDOOR_SIREN: Platform.SWITCH, # widgetName, uiClass is Siren (not supported)
|
UIWidget.RTD_OUTDOOR_SIREN: Platform.SWITCH, # widgetName, uiClass is Siren (not supported)
|
||||||
UIClass.SWIMMING_POOL: Platform.SWITCH,
|
UIClass.SWIMMING_POOL: Platform.SWITCH,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Map Overkiz camelCase to Home Assistant snake_case for translation
|
||||||
|
OVERKIZ_STATE_TO_TRANSLATION: dict[str, str] = {
|
||||||
|
"externalGateway": "external_gateway",
|
||||||
|
"localUser": "local_user",
|
||||||
|
"lowBattery": "low_battery",
|
||||||
|
"LSC": "lsc",
|
||||||
|
"maintenanceRequired": "maintenance_required",
|
||||||
|
"noDefect": "no_defect",
|
||||||
|
"SAAC": "saac",
|
||||||
|
"SFC": "sfc",
|
||||||
|
"UPS": "ups",
|
||||||
|
}
|
||||||
|
@ -102,10 +102,15 @@ class OverkizDescriptiveEntity(OverkizEntity):
|
|||||||
self._attr_name = f"{super().name} {self.entity_description.name}"
|
self._attr_name = f"{super().name} {self.entity_description.name}"
|
||||||
|
|
||||||
|
|
||||||
# Used by translations of state and select sensors
|
# Used by state translations for sensor and select entities
|
||||||
@unique
|
@unique
|
||||||
class OverkizDeviceClass(StrEnum):
|
class OverkizDeviceClass(StrEnum):
|
||||||
"""Device class for Overkiz specific devices."""
|
"""Device class for Overkiz specific devices."""
|
||||||
|
|
||||||
OPEN_CLOSED_PEDESTRIAN = "overkiz__open_closed_pedestrian"
|
BATTERY = "overkiz__battery"
|
||||||
|
DISCRETE_RSSI_LEVEL = "overkiz__discrete_rssi_level"
|
||||||
MEMORIZED_SIMPLE_VOLUME = "overkiz__memorized_simple_volume"
|
MEMORIZED_SIMPLE_VOLUME = "overkiz__memorized_simple_volume"
|
||||||
|
OPEN_CLOSED_PEDESTRIAN = "overkiz__open_closed_pedestrian"
|
||||||
|
PRIORITY_LOCK_ORIGINATOR = "overkiz__priority_lock_originator"
|
||||||
|
SENSOR_DEFECT = "overkiz__sensor_defect"
|
||||||
|
SENSOR_ROOM = "overkiz__sensor_room"
|
||||||
|
@ -33,9 +33,9 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
|||||||
from homeassistant.helpers.typing import StateType
|
from homeassistant.helpers.typing import StateType
|
||||||
|
|
||||||
from . import HomeAssistantOverkizData
|
from . import HomeAssistantOverkizData
|
||||||
from .const import DOMAIN, IGNORED_OVERKIZ_DEVICES
|
from .const import DOMAIN, IGNORED_OVERKIZ_DEVICES, OVERKIZ_STATE_TO_TRANSLATION
|
||||||
from .coordinator import OverkizDataUpdateCoordinator
|
from .coordinator import OverkizDataUpdateCoordinator
|
||||||
from .entity import OverkizDescriptiveEntity, OverkizEntity
|
from .entity import OverkizDescriptiveEntity, OverkizDeviceClass, OverkizEntity
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@ -53,12 +53,14 @@ SENSOR_DESCRIPTIONS: list[OverkizSensorDescription] = [
|
|||||||
device_class=SensorDeviceClass.BATTERY,
|
device_class=SensorDeviceClass.BATTERY,
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
entity_category=EntityCategory.DIAGNOSTIC,
|
entity_category=EntityCategory.DIAGNOSTIC,
|
||||||
|
native_value=lambda value: int(str(value).strip("%")),
|
||||||
),
|
),
|
||||||
OverkizSensorDescription(
|
OverkizSensorDescription(
|
||||||
key=OverkizState.CORE_BATTERY,
|
key=OverkizState.CORE_BATTERY,
|
||||||
name="Battery",
|
name="Battery",
|
||||||
native_value=lambda value: str(value).capitalize(),
|
|
||||||
entity_category=EntityCategory.DIAGNOSTIC,
|
entity_category=EntityCategory.DIAGNOSTIC,
|
||||||
|
icon="mdi:battery",
|
||||||
|
device_class=OverkizDeviceClass.BATTERY,
|
||||||
),
|
),
|
||||||
OverkizSensorDescription(
|
OverkizSensorDescription(
|
||||||
key=OverkizState.CORE_RSSI_LEVEL,
|
key=OverkizState.CORE_RSSI_LEVEL,
|
||||||
@ -309,15 +311,19 @@ SENSOR_DESCRIPTIONS: list[OverkizSensorDescription] = [
|
|||||||
OverkizSensorDescription(
|
OverkizSensorDescription(
|
||||||
key=OverkizState.IO_SENSOR_ROOM,
|
key=OverkizState.IO_SENSOR_ROOM,
|
||||||
name="Sensor Room",
|
name="Sensor Room",
|
||||||
native_value=lambda value: str(value).capitalize(),
|
device_class=OverkizDeviceClass.SENSOR_ROOM,
|
||||||
entity_registry_enabled_default=False,
|
entity_category=EntityCategory.DIAGNOSTIC,
|
||||||
|
icon="mdi:spray-bottle",
|
||||||
),
|
),
|
||||||
OverkizSensorDescription(
|
OverkizSensorDescription(
|
||||||
key=OverkizState.IO_PRIORITY_LOCK_ORIGINATOR,
|
key=OverkizState.IO_PRIORITY_LOCK_ORIGINATOR,
|
||||||
name="Priority Lock Originator",
|
name="Priority Lock Originator",
|
||||||
native_value=lambda value: str(value).capitalize(),
|
device_class=OverkizDeviceClass.PRIORITY_LOCK_ORIGINATOR,
|
||||||
icon="mdi:lock",
|
icon="mdi:lock",
|
||||||
entity_registry_enabled_default=False,
|
entity_registry_enabled_default=False,
|
||||||
|
native_value=lambda value: OVERKIZ_STATE_TO_TRANSLATION.get(
|
||||||
|
cast(str, value), cast(str, value)
|
||||||
|
),
|
||||||
),
|
),
|
||||||
OverkizSensorDescription(
|
OverkizSensorDescription(
|
||||||
key=OverkizState.CORE_PRIORITY_LOCK_TIMER,
|
key=OverkizState.CORE_PRIORITY_LOCK_TIMER,
|
||||||
@ -330,8 +336,19 @@ SENSOR_DESCRIPTIONS: list[OverkizSensorDescription] = [
|
|||||||
key=OverkizState.CORE_DISCRETE_RSSI_LEVEL,
|
key=OverkizState.CORE_DISCRETE_RSSI_LEVEL,
|
||||||
name="Discrete RSSI Level",
|
name="Discrete RSSI Level",
|
||||||
entity_registry_enabled_default=False,
|
entity_registry_enabled_default=False,
|
||||||
native_value=lambda value: str(value).capitalize(),
|
|
||||||
entity_category=EntityCategory.DIAGNOSTIC,
|
entity_category=EntityCategory.DIAGNOSTIC,
|
||||||
|
device_class=OverkizDeviceClass.DISCRETE_RSSI_LEVEL,
|
||||||
|
icon="mdi:wifi",
|
||||||
|
),
|
||||||
|
OverkizSensorDescription(
|
||||||
|
key=OverkizState.CORE_SENSOR_DEFECT,
|
||||||
|
name="Sensor Defect",
|
||||||
|
entity_registry_enabled_default=False,
|
||||||
|
entity_category=EntityCategory.DIAGNOSTIC,
|
||||||
|
device_class=OverkizDeviceClass.SENSOR_DEFECT,
|
||||||
|
native_value=lambda value: OVERKIZ_STATE_TO_TRANSLATION.get(
|
||||||
|
cast(str, value), cast(str, value)
|
||||||
|
),
|
||||||
),
|
),
|
||||||
# DomesticHotWaterProduction/WaterHeatingSystem
|
# DomesticHotWaterProduction/WaterHeatingSystem
|
||||||
OverkizSensorDescription(
|
OverkizSensorDescription(
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
|
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
|
||||||
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
|
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
|
||||||
"server_in_maintenance": "Server is down for maintenance",
|
"server_in_maintenance": "Server is down for maintenance",
|
||||||
"too_many_requests": "Too many requests, try again later.",
|
"too_many_requests": "Too many requests, try again later",
|
||||||
"unknown": "[%key:common::config_flow::error::unknown%]"
|
"unknown": "[%key:common::config_flow::error::unknown%]"
|
||||||
},
|
},
|
||||||
"abort": {
|
"abort": {
|
||||||
|
41
homeassistant/components/overkiz/strings.sensor.json
Normal file
41
homeassistant/components/overkiz/strings.sensor.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"state": {
|
||||||
|
"overkiz__battery": {
|
||||||
|
"full": "Full",
|
||||||
|
"low": "Low",
|
||||||
|
"normal": "Normal",
|
||||||
|
"verylow": "Very low"
|
||||||
|
},
|
||||||
|
"overkiz__discrete_rssi_level": {
|
||||||
|
"good": "Good",
|
||||||
|
"low": "Low",
|
||||||
|
"normal": "Normal",
|
||||||
|
"verylow": "Very low"
|
||||||
|
},
|
||||||
|
"overkiz__priority_lock_originator": {
|
||||||
|
"lsc": "LSC",
|
||||||
|
"saac": "SAAC",
|
||||||
|
"sfc": "SFC",
|
||||||
|
"ups": "UPS",
|
||||||
|
"external_gateway": "External gateway",
|
||||||
|
"local_user": "Local user",
|
||||||
|
"myself": "Myself",
|
||||||
|
"rain": "Rain",
|
||||||
|
"security": "Security",
|
||||||
|
"temperature": "Temperature",
|
||||||
|
"timer": "Timer",
|
||||||
|
"user": "User",
|
||||||
|
"wind": "Wind"
|
||||||
|
},
|
||||||
|
"overkiz__sensor_room": {
|
||||||
|
"clean": "Clean",
|
||||||
|
"dirty": "Dirty"
|
||||||
|
},
|
||||||
|
"overkiz__sensor_defect": {
|
||||||
|
"dead": "Dead",
|
||||||
|
"low_battery": "Low battery",
|
||||||
|
"maintenance_required": "Maintenance required",
|
||||||
|
"no_defect": "No defect"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -7,7 +7,7 @@
|
|||||||
"cannot_connect": "Failed to connect",
|
"cannot_connect": "Failed to connect",
|
||||||
"invalid_auth": "Invalid authentication",
|
"invalid_auth": "Invalid authentication",
|
||||||
"server_in_maintenance": "Server is down for maintenance",
|
"server_in_maintenance": "Server is down for maintenance",
|
||||||
"too_many_requests": "Too many requests, try again later.",
|
"too_many_requests": "Too many requests, try again later",
|
||||||
"unknown": "Unexpected error"
|
"unknown": "Unexpected error"
|
||||||
},
|
},
|
||||||
"step": {
|
"step": {
|
||||||
|
41
homeassistant/components/overkiz/translations/sensor.en.json
Normal file
41
homeassistant/components/overkiz/translations/sensor.en.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"state": {
|
||||||
|
"overkiz__battery": {
|
||||||
|
"full": "Full",
|
||||||
|
"low": "Low",
|
||||||
|
"normal": "Normal",
|
||||||
|
"verylow": "Very low"
|
||||||
|
},
|
||||||
|
"overkiz__discrete_rssi_level": {
|
||||||
|
"good": "Good",
|
||||||
|
"low": "Low",
|
||||||
|
"normal": "Normal",
|
||||||
|
"verylow": "Very low"
|
||||||
|
},
|
||||||
|
"overkiz__priority_lock_originator": {
|
||||||
|
"external_gateway": "External gateway",
|
||||||
|
"local_user": "Local user",
|
||||||
|
"lsc": "LSC",
|
||||||
|
"myself": "Myself",
|
||||||
|
"rain": "Rain",
|
||||||
|
"saac": "SAAC",
|
||||||
|
"security": "Security",
|
||||||
|
"sfc": "SFC",
|
||||||
|
"temperature": "Temperature",
|
||||||
|
"timer": "Timer",
|
||||||
|
"ups": "UPS",
|
||||||
|
"user": "User",
|
||||||
|
"wind": "Wind"
|
||||||
|
},
|
||||||
|
"overkiz__sensor_defect": {
|
||||||
|
"dead": "Dead",
|
||||||
|
"low_battery": "Low battery",
|
||||||
|
"maintenance_required": "Maintenance required",
|
||||||
|
"no_defect": "No defect"
|
||||||
|
},
|
||||||
|
"overkiz__sensor_room": {
|
||||||
|
"clean": "Clean",
|
||||||
|
"dirty": "Dirty"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user