Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion homeassistant/components/yolink/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
"dependencies": ["auth", "application_credentials"],
"documentation": "https://www.home-assistant.io/integrations/yolink",
"iot_class": "cloud_push",
"requirements": ["yolink-api==0.2.8"]
"requirements": ["yolink-api==0.2.9"]
}
46 changes: 46 additions & 0 deletions homeassistant/components/yolink/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
ATTR_DEVICE_MOTION_SENSOR,
ATTR_DEVICE_MULTI_OUTLET,
ATTR_DEVICE_OUTLET,
ATTR_DEVICE_POWER_FAILURE_ALARM,
ATTR_DEVICE_SIREN,
ATTR_DEVICE_SMART_REMOTER,
ATTR_DEVICE_SWITCH,
Expand Down Expand Up @@ -71,6 +72,7 @@ class YoLinkSensorEntityDescription(
ATTR_DEVICE_MULTI_OUTLET,
ATTR_DEVICE_SMART_REMOTER,
ATTR_DEVICE_OUTLET,
ATTR_DEVICE_POWER_FAILURE_ALARM,
ATTR_DEVICE_SIREN,
ATTR_DEVICE_SWITCH,
ATTR_DEVICE_TH_SENSOR,
Expand All @@ -86,6 +88,7 @@ class YoLinkSensorEntityDescription(
ATTR_DEVICE_DOOR_SENSOR,
ATTR_DEVICE_LEAK_SENSOR,
ATTR_DEVICE_MOTION_SENSOR,
ATTR_DEVICE_POWER_FAILURE_ALARM,
ATTR_DEVICE_SMART_REMOTER,
ATTR_DEVICE_TH_SENSOR,
ATTR_DEVICE_VIBRATION_SENSOR,
Expand All @@ -110,6 +113,14 @@ def cvt_battery(val: int | None) -> int | None:
return 0


def cvt_volume(val: int | None) -> str | None:
"""Convert volume to string."""
if val is None:
return None
volume_level = {1: "low", 2: "medium", 3: "high"}
return volume_level.get(val, None)


SENSOR_TYPES: tuple[YoLinkSensorEntityDescription, ...] = (
YoLinkSensorEntityDescription(
key="battery",
Expand Down Expand Up @@ -157,6 +168,41 @@ def cvt_battery(val: int | None) -> int | None:
entity_registry_enabled_default=False,
should_update_entity=lambda value: value is not None,
),
YoLinkSensorEntityDescription(
key="state",
device_class=SensorDeviceClass.ENUM,
name="Power failure alarm",
icon="mdi:flash",
options=["normal", "alert", "off"],
exists_fn=lambda device: device.device_type in ATTR_DEVICE_POWER_FAILURE_ALARM,
),
YoLinkSensorEntityDescription(
key="mute",
device_class=SensorDeviceClass.ENUM,
name="Power failure alarm mute",
icon="mdi:volume-mute",
options=["muted", "unmuted"],
exists_fn=lambda device: device.device_type in ATTR_DEVICE_POWER_FAILURE_ALARM,
value=lambda value: "muted" if value is True else "unmuted",
),
YoLinkSensorEntityDescription(
key="sound",
device_class=SensorDeviceClass.ENUM,
name="Power failure alarm volume",
icon="mdi:volume-high",
options=["low", "medium", "high"],
exists_fn=lambda device: device.device_type in ATTR_DEVICE_POWER_FAILURE_ALARM,
value=cvt_volume,
),
YoLinkSensorEntityDescription(
key="beep",
device_class=SensorDeviceClass.ENUM,
name="Power failure alarm beep",
icon="mdi:bullhorn",
options=["enabled", "disabled"],
exists_fn=lambda device: device.device_type in ATTR_DEVICE_POWER_FAILURE_ALARM,
value=lambda value: "enabled" if value is True else "disabled",
),
)


Expand Down
2 changes: 1 addition & 1 deletion requirements_all.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2694,7 +2694,7 @@ yeelight==0.7.10
yeelightsunflower==0.0.10

# homeassistant.components.yolink
yolink-api==0.2.8
yolink-api==0.2.9

# homeassistant.components.youless
youless-api==1.0.1
Expand Down
2 changes: 1 addition & 1 deletion requirements_test_all.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1946,7 +1946,7 @@ yalexs==1.3.0
yeelight==0.7.10

# homeassistant.components.yolink
yolink-api==0.2.8
yolink-api==0.2.9

# homeassistant.components.youless
youless-api==1.0.1
Expand Down