GHome sw19 (fan speed + light dimmer) treated only as fan control

Home Assistant OS
Core 2025.6.0
Supervisor 2025.05.5
Operating System 15.2
Frontend 20250531.2

GHome sw19 is a single-gang fan and light control wall switch. It gets discovered and works as expected via the Tuya Smart Android app. “Works as expected” means the app shows both dimmer control for the light and 4-step speed control for the fan.

Via the Tuya integration in HA, the device is detected. However, HA only provides on/off control for the fan. Nothing about the light shows up in the UI or in available automation actions. I see some forum postings about similar problems with other devices in the past, but I haven’t found a resolution for this problem. I’m not even sure how to go about raising an issue in a relevant place.

Here is the “data” section for the device when I download diagnostics. It looks like all the stuff about the light is there in one way or another in the device description. The HA section does only show the entity for the fan speed control. I noticed the category is fskg, which is identified here as a “fan wall switch”. A nearby entry fsd in that file is “fan with light”.

Any suggestions on how to fully enable control of this device in HA?

  "data": {
    "endpoint": "https://apigw.tuyaus.com",
    "terminal_id": "17497588666595uw6dp",
    "mqtt_connected": true,
    "disabled_by": null,
    "disabled_polling": false,
    "id": "ebaf1393f9f0c7d1a6jnu4",
    "name": "MBR fan and light SW19  ",
    "category": "fskg",
    "product_id": "j11gop7l2l3sblc2",
    "product_name": "SW19",
    "online": true,
    "sub": false,
    "time_zone": "-07:00",
    "active_time": "2025-06-12T19:37:09+00:00",
    "create_time": "2025-06-12T19:37:09+00:00",
    "update_time": "2025-06-12T19:37:09+00:00",
    "function": {
      "switch_fan": {
        "type": "Boolean",
        "value": {}
      },
      "countdown_fan": {
        "type": "Integer",
        "value": {
          "unit": "s",
          "min": 0,
          "max": 86400,
          "scale": 0,
          "step": 1
        }
      },
      "fan_speed_enum": {
        "type": "Enum",
        "value": {
          "range": [
            "level_1",
            "level_2",
            "level_3",
            "level_4"
          ]
        }
      },
      "bright_value": {
        "type": "Integer",
        "value": {
          "unit": "",
          "min": 10,
          "max": 1000,
          "scale": 0,
          "step": 1
        }
      },
      "relay_status": {
        "type": "Enum",
        "value": {
          "range": [
            "off",
            "on",
            "memory"
          ]
        }
      },
      "light_mode": {
        "type": "Enum",
        "value": {
          "range": [
            "none",
            "relay",
            "pos"
          ]
        }
      }
    },
    "status_range": {
      "switch_fan": {
        "type": "Boolean",
        "value": {}
      },
      "countdown_fan": {
        "type": "Integer",
        "value": {
          "unit": "s",
          "min": 0,
          "max": 86400,
          "scale": 0,
          "step": 1
        }
      },
      "fan_speed_enum": {
        "type": "Enum",
        "value": {
          "range": [
            "level_1",
            "level_2",
            "level_3",
            "level_4"
          ]
        }
      },
      "bright_value": {
        "type": "Integer",
        "value": {
          "unit": "",
          "min": 10,
          "max": 1000,
          "scale": 0,
          "step": 1
        }
      },
      "relay_status": {
        "type": "Enum",
        "value": {
          "range": [
            "off",
            "on",
            "memory"
          ]
        }
      },
      "light_mode": {
        "type": "Enum",
        "value": {
          "range": [
            "none",
            "relay",
            "pos"
          ]
        }
      }
    },
    "status": {
      "switch_fan": false,
      "countdown_fan": 0,
      "fan_speed_enum": "level_4",
      "bright_value": 1000,
      "relay_status": "memory",
      "light_mode": "relay"
    },
    "home_assistant": {
      "name": "MBR fan and light SW19  ",
      "name_by_user": null,
      "disabled": false,
      "disabled_by": null,
      "entities": [
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": null,
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "original_icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "fan.mbr_fan_and_light_sw19",
            "state": "off",
            "attributes": {
              "preset_modes": [],
              "percentage": 100,
              "percentage_step": 25.0,
              "preset_mode": null,
              "friendly_name": "MBR fan and light SW19  ",
              "supported_features": 49
            },
            "last_changed": "2025-06-12T20:29:03.684729+00:00",
            "last_reported": "2025-06-12T20:29:03.685290+00:00",
            "last_updated": "2025-06-12T20:29:03.684729+00:00"
          }
        }
      ]
    },
    "set_up": true,
    "support_local": true
  }

I have the same switch and same behavior. Fan switch control only in HA - Tuya app shows all the switches functions. I really like the switch - just would like to have light and speed control in home assistant.

@wjcarpenter So i just tried this tuya-local integration with the sw19. The setup was actually quite easy. It shows the sw19 as a supported switch (tuya-local/DEVICES.md at c125956378777314c8593a6cb49dd0399fbe3004 · make-all/tuya-local · GitHub). I added it via HACS and used the “login to Tuya cloud with the Tuya Smart (or Smartlife) mobile app and retrieve a list of devices and the necessary local connection data.” method to install. Now I can control the fan, light and 5 other entities in Home Assistant.

That’s cool. I can’t remember if I tried that. Probably not since the Tuya cloud integration was wonky. I’ll give it a try. I use tuya-local for some other devices.

Meanwhile, my 1-month-old SW19 stopped controlling the light with the physical switch. The indicators do what you expect, and the Tuya app does what you expect, but the light itself does not react. (Fan control still good.) I’ve sent an email off to their support today. :frowning: