From 8cb7e9785f2b06ace23fd9de5900c73f6a50ed46 Mon Sep 17 00:00:00 2001
From: Matrix <justin@yosmart.com>
Date: Fri, 19 Jul 2024 18:20:30 +0800
Subject: [PATCH] Add YoLink YS8017 support (#122064)

---
 homeassistant/components/yolink/const.py  |  2 ++
 homeassistant/components/yolink/sensor.py | 10 ++++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/homeassistant/components/yolink/const.py b/homeassistant/components/yolink/const.py
index e829fe08d32..894c85d3f1b 100644
--- a/homeassistant/components/yolink/const.py
+++ b/homeassistant/components/yolink/const.py
@@ -17,3 +17,5 @@ YOLINK_OFFLINE_TIME = 32400
 
 DEV_MODEL_WATER_METER_YS5007 = "YS5007"
 DEV_MODEL_MULTI_OUTLET_YS6801 = "YS6801"
+DEV_MODEL_TH_SENSOR_YS8017_UC = "YS8017-UC"
+DEV_MODEL_TH_SENSOR_YS8017_EC = "YS8017-EC"
diff --git a/homeassistant/components/yolink/sensor.py b/homeassistant/components/yolink/sensor.py
index 6badeefbdb3..4426602f133 100644
--- a/homeassistant/components/yolink/sensor.py
+++ b/homeassistant/components/yolink/sensor.py
@@ -48,7 +48,7 @@ from homeassistant.core import HomeAssistant, callback
 from homeassistant.helpers.entity_platform import AddEntitiesCallback
 from homeassistant.util import percentage
 
-from .const import DOMAIN
+from .const import DEV_MODEL_TH_SENSOR_YS8017_EC, DEV_MODEL_TH_SENSOR_YS8017_UC, DOMAIN
 from .coordinator import YoLinkCoordinator
 from .entity import YoLinkEntity
 
@@ -108,6 +108,11 @@ MCU_DEV_TEMPERATURE_SENSOR = [
     ATTR_DEVICE_CO_SMOKE_SENSOR,
 ]
 
+NONE_HUMIDITY_SENSOR_MODELS = [
+    DEV_MODEL_TH_SENSOR_YS8017_UC,
+    DEV_MODEL_TH_SENSOR_YS8017_EC,
+]
+
 
 def cvt_battery(val: int | None) -> int | None:
     """Convert battery to percentage."""
@@ -141,7 +146,8 @@ SENSOR_TYPES: tuple[YoLinkSensorEntityDescription, ...] = (
         device_class=SensorDeviceClass.HUMIDITY,
         native_unit_of_measurement=PERCENTAGE,
         state_class=SensorStateClass.MEASUREMENT,
-        exists_fn=lambda device: device.device_type in [ATTR_DEVICE_TH_SENSOR],
+        exists_fn=lambda device: device.device_type in [ATTR_DEVICE_TH_SENSOR]
+        and device.device_model_name not in NONE_HUMIDITY_SENSOR_MODELS,
     ),
     YoLinkSensorEntityDescription(
         key="temperature",
-- 
GitLab