1
mirror of https://github.com/home-assistant/core synced 2024-09-03 08:14:07 +02:00

Add icon translations to DROP connect (#111373)

* Add icon translations to DROP connect

* Add icon translations to DROP connect
This commit is contained in:
Joost Lekkerkerker 2024-02-28 12:58:04 +01:00 committed by GitHub
parent 7ad1d3e891
commit 40431a9f7e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 73 additions and 51 deletions

View File

@ -31,11 +31,6 @@ from .entity import DROPEntity
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
LEAK_ICON = "mdi:pipe-leak"
NOTIFICATION_ICON = "mdi:bell-ring"
PUMP_ICON = "mdi:water-pump"
SALT_ICON = "mdi:shaker"
WATER_ICON = "mdi:water"
# Binary sensor type constants # Binary sensor type constants
LEAK_DETECTED = "leak" LEAK_DETECTED = "leak"
@ -56,32 +51,27 @@ BINARY_SENSORS: list[DROPBinarySensorEntityDescription] = [
DROPBinarySensorEntityDescription( DROPBinarySensorEntityDescription(
key=LEAK_DETECTED, key=LEAK_DETECTED,
translation_key=LEAK_DETECTED, translation_key=LEAK_DETECTED,
icon=LEAK_ICON,
device_class=BinarySensorDeviceClass.MOISTURE, device_class=BinarySensorDeviceClass.MOISTURE,
value_fn=lambda device: device.drop_api.leak_detected(), value_fn=lambda device: device.drop_api.leak_detected(),
), ),
DROPBinarySensorEntityDescription( DROPBinarySensorEntityDescription(
key=PENDING_NOTIFICATION, key=PENDING_NOTIFICATION,
translation_key=PENDING_NOTIFICATION, translation_key=PENDING_NOTIFICATION,
icon=NOTIFICATION_ICON,
value_fn=lambda device: device.drop_api.notification_pending(), value_fn=lambda device: device.drop_api.notification_pending(),
), ),
DROPBinarySensorEntityDescription( DROPBinarySensorEntityDescription(
key=SALT_LOW, key=SALT_LOW,
translation_key=SALT_LOW, translation_key=SALT_LOW,
icon=SALT_ICON,
value_fn=lambda device: device.drop_api.salt_low(), value_fn=lambda device: device.drop_api.salt_low(),
), ),
DROPBinarySensorEntityDescription( DROPBinarySensorEntityDescription(
key=RESERVE_IN_USE, key=RESERVE_IN_USE,
translation_key=RESERVE_IN_USE, translation_key=RESERVE_IN_USE,
icon=WATER_ICON,
value_fn=lambda device: device.drop_api.reserve_in_use(), value_fn=lambda device: device.drop_api.reserve_in_use(),
), ),
DROPBinarySensorEntityDescription( DROPBinarySensorEntityDescription(
key=PUMP_STATUS, key=PUMP_STATUS,
translation_key=PUMP_STATUS, translation_key=PUMP_STATUS,
icon=PUMP_ICON,
value_fn=lambda device: device.drop_api.pump_status(), value_fn=lambda device: device.drop_api.pump_status(),
), ),
] ]

View File

@ -0,0 +1,65 @@
{
"entity": {
"binary_sensor": {
"leak": {
"default": "mdi:pipe-leak"
},
"pending_notification": {
"default": "mdi:bell-ring"
},
"pump": {
"default": "mdi:water-pump"
},
"reserve_in_use": {
"default": "mdi:water"
},
"salt": {
"default": "mdi:shaker"
}
},
"select": {
"protect_mode": {
"default": "mdi:home-flood"
}
},
"sensor": {
"current_flow_rate": {
"default": "mdi:shower-head"
},
"peak_flow_rate": {
"default": "mdi:shower-head"
},
"inlet_tds": {
"default": "mdi:water-opacity"
},
"outlet_tds": {
"default": "mdi:water-opacity"
},
"cart1": {
"default": "mdi:gauge"
},
"cart2": {
"default": "mdi:gauge"
},
"cart3": {
"default": "mdi:gauge"
}
},
"switch": {
"water": {
"default": "mdi:valve",
"state": {
"on": "mdi:valve-open",
"off": "mdi:valve-closed"
}
},
"bypass": {
"default": "mdi:valve",
"state": {
"on": "mdi:valve-open",
"off": "mdi:valve-closed"
}
}
}
}
}

View File

@ -23,8 +23,6 @@ PROTECT_MODE = "protect_mode"
PROTECT_MODE_OPTIONS = ["away", "home", "schedule"] PROTECT_MODE_OPTIONS = ["away", "home", "schedule"]
FLOOD_ICON = "mdi:home-flood"
@dataclass(kw_only=True, frozen=True) @dataclass(kw_only=True, frozen=True)
class DROPSelectEntityDescription(SelectEntityDescription): class DROPSelectEntityDescription(SelectEntityDescription):
@ -38,7 +36,6 @@ SELECTS: list[DROPSelectEntityDescription] = [
DROPSelectEntityDescription( DROPSelectEntityDescription(
key=PROTECT_MODE, key=PROTECT_MODE,
translation_key=PROTECT_MODE, translation_key=PROTECT_MODE,
icon=FLOOD_ICON,
options=PROTECT_MODE_OPTIONS, options=PROTECT_MODE_OPTIONS,
value_fn=lambda device: device.drop_api.protect_mode(), value_fn=lambda device: device.drop_api.protect_mode(),
set_fn=lambda device, value: device.set_protect_mode(value), set_fn=lambda device, value: device.set_protect_mode(value),

View File

@ -39,9 +39,6 @@ from .entity import DROPEntity
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
FLOW_ICON = "mdi:shower-head"
GAUGE_ICON = "mdi:gauge"
TDS_ICON = "mdi:water-opacity"
# Sensor type constants # Sensor type constants
CURRENT_FLOW_RATE = "current_flow_rate" CURRENT_FLOW_RATE = "current_flow_rate"
@ -72,7 +69,6 @@ SENSORS: list[DROPSensorEntityDescription] = [
DROPSensorEntityDescription( DROPSensorEntityDescription(
key=CURRENT_FLOW_RATE, key=CURRENT_FLOW_RATE,
translation_key=CURRENT_FLOW_RATE, translation_key=CURRENT_FLOW_RATE,
icon="mdi:shower-head",
native_unit_of_measurement="gpm", native_unit_of_measurement="gpm",
suggested_display_precision=1, suggested_display_precision=1,
value_fn=lambda device: device.drop_api.current_flow_rate(), value_fn=lambda device: device.drop_api.current_flow_rate(),
@ -81,7 +77,6 @@ SENSORS: list[DROPSensorEntityDescription] = [
DROPSensorEntityDescription( DROPSensorEntityDescription(
key=PEAK_FLOW_RATE, key=PEAK_FLOW_RATE,
translation_key=PEAK_FLOW_RATE, translation_key=PEAK_FLOW_RATE,
icon="mdi:shower-head",
native_unit_of_measurement="gpm", native_unit_of_measurement="gpm",
suggested_display_precision=1, suggested_display_precision=1,
value_fn=lambda device: device.drop_api.peak_flow_rate(), value_fn=lambda device: device.drop_api.peak_flow_rate(),
@ -161,7 +156,6 @@ SENSORS: list[DROPSensorEntityDescription] = [
DROPSensorEntityDescription( DROPSensorEntityDescription(
key=INLET_TDS, key=INLET_TDS,
translation_key=INLET_TDS, translation_key=INLET_TDS,
icon=TDS_ICON,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION, native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION,
state_class=SensorStateClass.MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
suggested_display_precision=0, suggested_display_precision=0,
@ -170,7 +164,6 @@ SENSORS: list[DROPSensorEntityDescription] = [
DROPSensorEntityDescription( DROPSensorEntityDescription(
key=OUTLET_TDS, key=OUTLET_TDS,
translation_key=OUTLET_TDS, translation_key=OUTLET_TDS,
icon=TDS_ICON,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION, native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION,
state_class=SensorStateClass.MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
suggested_display_precision=0, suggested_display_precision=0,
@ -179,7 +172,6 @@ SENSORS: list[DROPSensorEntityDescription] = [
DROPSensorEntityDescription( DROPSensorEntityDescription(
key=CARTRIDGE_1_LIFE, key=CARTRIDGE_1_LIFE,
translation_key=CARTRIDGE_1_LIFE, translation_key=CARTRIDGE_1_LIFE,
icon=GAUGE_ICON,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.DIAGNOSTIC, entity_category=EntityCategory.DIAGNOSTIC,
@ -189,7 +181,6 @@ SENSORS: list[DROPSensorEntityDescription] = [
DROPSensorEntityDescription( DROPSensorEntityDescription(
key=CARTRIDGE_2_LIFE, key=CARTRIDGE_2_LIFE,
translation_key=CARTRIDGE_2_LIFE, translation_key=CARTRIDGE_2_LIFE,
icon=GAUGE_ICON,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.DIAGNOSTIC, entity_category=EntityCategory.DIAGNOSTIC,
@ -199,7 +190,6 @@ SENSORS: list[DROPSensorEntityDescription] = [
DROPSensorEntityDescription( DROPSensorEntityDescription(
key=CARTRIDGE_3_LIFE, key=CARTRIDGE_3_LIFE,
translation_key=CARTRIDGE_3_LIFE, translation_key=CARTRIDGE_3_LIFE,
icon=GAUGE_ICON,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.DIAGNOSTIC, entity_category=EntityCategory.DIAGNOSTIC,

View File

@ -25,11 +25,6 @@ from .entity import DROPEntity
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
ICON_VALVE_OPEN = "mdi:valve-open"
ICON_VALVE_CLOSED = "mdi:valve-closed"
ICON_VALVE_UNKNOWN = "mdi:valve"
ICON_VALVE = {False: ICON_VALVE_CLOSED, True: ICON_VALVE_OPEN, None: ICON_VALVE_UNKNOWN}
SWITCH_VALUE: dict[int | None, bool] = {0: False, 1: True} SWITCH_VALUE: dict[int | None, bool] = {0: False, 1: True}
# Switch type constants # Switch type constants
@ -49,14 +44,12 @@ SWITCHES: list[DROPSwitchEntityDescription] = [
DROPSwitchEntityDescription( DROPSwitchEntityDescription(
key=WATER_SWITCH, key=WATER_SWITCH,
translation_key=WATER_SWITCH, translation_key=WATER_SWITCH,
icon=ICON_VALVE_UNKNOWN,
value_fn=lambda device: device.drop_api.water(), value_fn=lambda device: device.drop_api.water(),
set_fn=lambda device, value: device.set_water(value), set_fn=lambda device, value: device.set_water(value),
), ),
DROPSwitchEntityDescription( DROPSwitchEntityDescription(
key=BYPASS_SWITCH, key=BYPASS_SWITCH,
translation_key=BYPASS_SWITCH, translation_key=BYPASS_SWITCH,
icon=ICON_VALVE_UNKNOWN,
value_fn=lambda device: device.drop_api.bypass(), value_fn=lambda device: device.drop_api.bypass(),
set_fn=lambda device, value: device.set_bypass(value), set_fn=lambda device, value: device.set_bypass(value),
), ),
@ -117,8 +110,3 @@ class DROPSwitch(DROPEntity, SwitchEntity):
async def async_turn_off(self, **kwargs: Any) -> None: async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn switch off.""" """Turn switch off."""
await self.entity_description.set_fn(self.coordinator, 0) await self.entity_description.set_fn(self.coordinator, 0)
@property
def icon(self) -> str:
"""Return the icon to use for dynamic states."""
return ICON_VALVE[self.is_on]

View File

@ -22,7 +22,7 @@
'options': dict({ 'options': dict({
}), }),
'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>, 'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>,
'original_icon': 'mdi:pipe-leak', 'original_icon': None,
'original_name': 'Leak detected', 'original_name': 'Leak detected',
'platform': 'drop_connect', 'platform': 'drop_connect',
'previous_unique_id': None, 'previous_unique_id': None,
@ -37,7 +37,6 @@
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'moisture', 'device_class': 'moisture',
'friendly_name': 'Hub DROP-1_C0FFEE Leak detected', 'friendly_name': 'Hub DROP-1_C0FFEE Leak detected',
'icon': 'mdi:pipe-leak',
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'binary_sensor.hub_drop_1_c0ffee_leak_detected', 'entity_id': 'binary_sensor.hub_drop_1_c0ffee_leak_detected',
@ -69,7 +68,7 @@
'options': dict({ 'options': dict({
}), }),
'original_device_class': None, 'original_device_class': None,
'original_icon': 'mdi:bell-ring', 'original_icon': None,
'original_name': 'Notification unread', 'original_name': 'Notification unread',
'platform': 'drop_connect', 'platform': 'drop_connect',
'previous_unique_id': None, 'previous_unique_id': None,
@ -83,7 +82,6 @@
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Hub DROP-1_C0FFEE Notification unread', 'friendly_name': 'Hub DROP-1_C0FFEE Notification unread',
'icon': 'mdi:bell-ring',
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'binary_sensor.hub_drop_1_c0ffee_notification_unread', 'entity_id': 'binary_sensor.hub_drop_1_c0ffee_notification_unread',
@ -115,7 +113,7 @@
'options': dict({ 'options': dict({
}), }),
'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>, 'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>,
'original_icon': 'mdi:pipe-leak', 'original_icon': None,
'original_name': 'Leak detected', 'original_name': 'Leak detected',
'platform': 'drop_connect', 'platform': 'drop_connect',
'previous_unique_id': None, 'previous_unique_id': None,
@ -130,7 +128,6 @@
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'moisture', 'device_class': 'moisture',
'friendly_name': 'Leak Detector Leak detected', 'friendly_name': 'Leak Detector Leak detected',
'icon': 'mdi:pipe-leak',
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'binary_sensor.leak_detector_leak_detected', 'entity_id': 'binary_sensor.leak_detector_leak_detected',
@ -162,7 +159,7 @@
'options': dict({ 'options': dict({
}), }),
'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>, 'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>,
'original_icon': 'mdi:pipe-leak', 'original_icon': None,
'original_name': 'Leak detected', 'original_name': 'Leak detected',
'platform': 'drop_connect', 'platform': 'drop_connect',
'previous_unique_id': None, 'previous_unique_id': None,
@ -177,7 +174,6 @@
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'moisture', 'device_class': 'moisture',
'friendly_name': 'Protection Valve Leak detected', 'friendly_name': 'Protection Valve Leak detected',
'icon': 'mdi:pipe-leak',
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'binary_sensor.protection_valve_leak_detected', 'entity_id': 'binary_sensor.protection_valve_leak_detected',
@ -209,7 +205,7 @@
'options': dict({ 'options': dict({
}), }),
'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>, 'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>,
'original_icon': 'mdi:pipe-leak', 'original_icon': None,
'original_name': 'Leak detected', 'original_name': 'Leak detected',
'platform': 'drop_connect', 'platform': 'drop_connect',
'previous_unique_id': None, 'previous_unique_id': None,
@ -224,7 +220,6 @@
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'moisture', 'device_class': 'moisture',
'friendly_name': 'Pump Controller Leak detected', 'friendly_name': 'Pump Controller Leak detected',
'icon': 'mdi:pipe-leak',
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'binary_sensor.pump_controller_leak_detected', 'entity_id': 'binary_sensor.pump_controller_leak_detected',
@ -256,7 +251,7 @@
'options': dict({ 'options': dict({
}), }),
'original_device_class': None, 'original_device_class': None,
'original_icon': 'mdi:water-pump', 'original_icon': None,
'original_name': 'Pump status', 'original_name': 'Pump status',
'platform': 'drop_connect', 'platform': 'drop_connect',
'previous_unique_id': None, 'previous_unique_id': None,
@ -270,7 +265,6 @@
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Pump Controller Pump status', 'friendly_name': 'Pump Controller Pump status',
'icon': 'mdi:water-pump',
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'binary_sensor.pump_controller_pump_status', 'entity_id': 'binary_sensor.pump_controller_pump_status',
@ -302,7 +296,7 @@
'options': dict({ 'options': dict({
}), }),
'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>, 'original_device_class': <BinarySensorDeviceClass.MOISTURE: 'moisture'>,
'original_icon': 'mdi:pipe-leak', 'original_icon': None,
'original_name': 'Leak detected', 'original_name': 'Leak detected',
'platform': 'drop_connect', 'platform': 'drop_connect',
'previous_unique_id': None, 'previous_unique_id': None,
@ -317,7 +311,6 @@
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'moisture', 'device_class': 'moisture',
'friendly_name': 'RO Filter Leak detected', 'friendly_name': 'RO Filter Leak detected',
'icon': 'mdi:pipe-leak',
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'binary_sensor.ro_filter_leak_detected', 'entity_id': 'binary_sensor.ro_filter_leak_detected',
@ -349,7 +342,7 @@
'options': dict({ 'options': dict({
}), }),
'original_device_class': None, 'original_device_class': None,
'original_icon': 'mdi:water', 'original_icon': None,
'original_name': 'Reserve capacity in use', 'original_name': 'Reserve capacity in use',
'platform': 'drop_connect', 'platform': 'drop_connect',
'previous_unique_id': None, 'previous_unique_id': None,
@ -363,7 +356,6 @@
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Softener Reserve capacity in use', 'friendly_name': 'Softener Reserve capacity in use',
'icon': 'mdi:water',
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'binary_sensor.softener_reserve_capacity_in_use', 'entity_id': 'binary_sensor.softener_reserve_capacity_in_use',