From 803654223a26e1688f726e16b82bec3209b08f80 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Tue, 5 Aug 2025 12:23:06 +0200 Subject: [PATCH] Revert "Do not create Tuya fan entities without control" (#150032) --- homeassistant/components/tuya/fan.py | 10 ++-- tests/components/tuya/__init__.py | 6 +-- .../tuya/fixtures/fs_ibytpo6fpnugft1c.json | 23 --------- tests/components/tuya/snapshots/test_fan.ambr | 50 +++++++++++++++++++ 4 files changed, 55 insertions(+), 34 deletions(-) delete mode 100644 tests/components/tuya/fixtures/fs_ibytpo6fpnugft1c.json diff --git a/homeassistant/components/tuya/fan.py b/homeassistant/components/tuya/fan.py index 056107d313f..90f4132cef0 100644 --- a/homeassistant/components/tuya/fan.py +++ b/homeassistant/components/tuya/fan.py @@ -45,8 +45,6 @@ TUYA_SUPPORT_TYPE = { "ks", } -_SWITCH_DP_CODES = (DPCode.SWITCH_FAN, DPCode.FAN_SWITCH, DPCode.SWITCH) - async def async_setup_entry( hass: HomeAssistant, @@ -62,9 +60,7 @@ async def async_setup_entry( entities: list[TuyaFanEntity] = [] for device_id in device_ids: device = hass_data.manager.device_map[device_id] - if device.category in TUYA_SUPPORT_TYPE and any( - code in device.status for code in _SWITCH_DP_CODES - ): + if device and device.category in TUYA_SUPPORT_TYPE: entities.append(TuyaFanEntity(device, hass_data.manager)) async_add_entities(entities) @@ -94,7 +90,9 @@ class TuyaFanEntity(TuyaEntity, FanEntity): """Init Tuya Fan Device.""" super().__init__(device, device_manager) - self._switch = self.find_dpcode(_SWITCH_DP_CODES, prefer_function=True) + self._switch = self.find_dpcode( + (DPCode.SWITCH_FAN, DPCode.FAN_SWITCH, DPCode.SWITCH), prefer_function=True + ) self._attr_preset_modes = [] if enum_type := self.find_dpcode( diff --git a/tests/components/tuya/__init__.py b/tests/components/tuya/__init__.py index 04fe034bb61..1498cd954d0 100644 --- a/tests/components/tuya/__init__.py +++ b/tests/components/tuya/__init__.py @@ -43,7 +43,7 @@ DEVICE_MOCKS = { ], "cs_vmxuxszzjwp5smli": [ # https://github.com/home-assistant/core/issues/119865 - # Platform.FAN, missing DPCodes in device status + Platform.FAN, Platform.HUMIDIFIER, ], "cs_zibqa9dutqyaxym2": [ @@ -214,10 +214,6 @@ DEVICE_MOCKS = { # https://github.com/home-assistant/core/issues/143499 Platform.SENSOR, ], - "fs_ibytpo6fpnugft1c": [ - # https://github.com/home-assistant/core/issues/135541 - # Platform.FAN, missing DPCodes in device status - ], "gyd_lgekqfxdabipm3tn": [ # https://github.com/home-assistant/core/issues/133173 Platform.LIGHT, diff --git a/tests/components/tuya/fixtures/fs_ibytpo6fpnugft1c.json b/tests/components/tuya/fixtures/fs_ibytpo6fpnugft1c.json deleted file mode 100644 index 02b3808f84d..00000000000 --- a/tests/components/tuya/fixtures/fs_ibytpo6fpnugft1c.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "endpoint": "https://apigw.tuyaeu.com", - "terminal_id": "REDACTED", - "mqtt_connected": true, - "disabled_by": null, - "disabled_polling": false, - "id": "10706550a4e57c88b93a", - "name": "Ventilador Cama", - "category": "fs", - "product_id": "ibytpo6fpnugft1c", - "product_name": "Tower bladeless fan ", - "online": true, - "sub": false, - "time_zone": "+01:00", - "active_time": "2025-01-10T18:47:46+00:00", - "create_time": "2025-01-10T18:47:46+00:00", - "update_time": "2025-01-10T18:47:46+00:00", - "function": {}, - "status_range": {}, - "status": {}, - "set_up": true, - "support_local": true -} diff --git a/tests/components/tuya/snapshots/test_fan.ambr b/tests/components/tuya/snapshots/test_fan.ambr index 52c4594f37b..69eb1b467e9 100644 --- a/tests/components/tuya/snapshots/test_fan.ambr +++ b/tests/components/tuya/snapshots/test_fan.ambr @@ -53,6 +53,56 @@ 'state': 'unavailable', }) # --- +# name: test_platform_setup_and_discovery[cs_vmxuxszzjwp5smli][fan.dehumidifier-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'fan', + 'entity_category': None, + 'entity_id': 'fan.dehumidifier', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': None, + 'platform': 'tuya', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'tuya.mock_device_id', + 'unit_of_measurement': None, + }) +# --- +# name: test_platform_setup_and_discovery[cs_vmxuxszzjwp5smli][fan.dehumidifier-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Dehumidifier ', + 'supported_features': , + }), + 'context': , + 'entity_id': 'fan.dehumidifier', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- # name: test_platform_setup_and_discovery[cs_zibqa9dutqyaxym2][fan.dehumidifier-entry] EntityRegistryEntrySnapshot({ 'aliases': set({