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.

1 Like

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:

That a bummer still working here - fingers crossed :slightly_frowning_face:

The good news in this story is that the support folks are pretty responsive, sometimes replying within several minutes and at worst overnight.

Their first suggestion was maybe a loose connection. I pulled the switch out of the wall, rewired it, and really screwed down the terminals pretty tight. That seemed to resolve it, but after a week or so it went back to malfunctioning.

The product info says the lighting control is good up to 400 watts. It doesn’t specifically say what kind of bulbs it can control. My ceiling fan has 4 small unmarked incandescent bulbs (that came with it when I bought it). I doubt that they are 100w each, at least in light output, but they could conceivably be vibration-tolerant in some way that consumes more power. (What do I know?) I’ve swapped those bulbs for dimmable LEDs yesterday. That got it working again, so I’m now in a wait state to see if it goes bad again.

2 Likes

It’s been several more weeks, so another progress report.

The switch did malfunction again (one time) after I replaced the bulbs with LED dimmables. We had some hot weather this summer, and it seems to me the problems occurred on particularly hot days.

In the meantime, I had some additional insulation put into the attic to keep our upstairs from baking on hot days. The switch has not misbehaved since. Is that what was behind it? Hard to say for sure, but it’s been well over a month without further problems.