Goldair/Tuya GPSQ-K Electric Blanket - unsupported by Tuya

Official Tuya Integration does not support my blanket, please add support.

Thank you much
(I duplicated the topic and deleted the other, realising I had device id etc that I needed to mask and edits can be viewed)

Here is the data from diagnostics

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2024.6.2",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.12.2",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Pacific/Auckland",
    "os_name": "Linux",
    "os_version": "6.6.29-haos",
    "supervisor": "2024.06.0",
    "host_os": "Home Assistant OS 12.3",
    "docker_version": "25.0.5",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {
    "hacs": {
      "documentation": "https://hacs.xyz/docs/configuration/start",
      "version": "1.34.0",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "localtuya": {
      "documentation": "https://github.com/rospogrigio/localtuya/",
      "version": "5.2.1",
      "requirements": []
    },
    "aarlo": {
      "documentation": "https://github.com/twrecked/hass-aarlo/blob/0a1aad0a7b07f1a5acf521f0abd6b2708958681f/README.md",
      "version": "0.8.1.3",
      "requirements": [
        "unidecode",
        "pyaarlo>=0.8.0.7"
      ]
    },
    "tapo": {
      "documentation": "https://github.com/petretiandrea/home-assistant-tapo-p100",
      "version": "3.1.2",
      "requirements": [
        "plugp100==5.1.3"
      ]
    },
    "metservice_weather": {
      "documentation": "https://github.com/ciejer/metservice-weather",
      "version": "v0.6.0",
      "requirements": []
    }
  },
  "integration_manifest": {
    "domain": "tuya",
    "name": "Tuya",
    "codeowners": [
      "Tuya",
      "zlinoliver",
      "frenck"
    ],
    "config_flow": true,
    "dependencies": [
      "ffmpeg"
    ],
    "dhcp": [
      {
        "xxxmac addresses
      }
    ],
    "documentation": "https://www.home-assistant.io/integrations/tuya",
    "integration_type": "hub",
    "iot_class": "cloud_push",
    "loggers": [
      "tuya_iot"
    ],
    "requirements": [
      "tuya-device-sharing-sdk==0.1.9"
    ],
    "is_built_in": true
  },
  "setup_times": {
    "null": {
      "setup": 3.1235977075994015e-05
    },
    "766ab4b49848ccb10984xxxxxx": {
      "wait_import_platforms": -0.10585630696732551,
      "wait_base_component": -0.002192946965806186,
      "config_entry_setup": 5.013859258033335
    }
  },
  "data": {
    "endpoint": "https://apigw.tuyaus.com",
    "terminal_id": "xxxxxxxxxxRumAZY",
    "mqtt_connected": true,
    "disabled_by": null,
    "disabled_polling": false,
    "id": "xxxxxxxxxhc",
    "name": "Goldair blanket",
    "category": "dr",
    "product_id": "xxxxxxxxxxxi",
    "product_name": "multi-zone electric blanket",
    "online": true,
    "sub": false,
    "time_zone": "+12:00",
    "active_time": "2024-06-11T05:26:59+00:00",
    "create_time": "2024-06-11T05:26:59+00:00",
    "update_time": "2024-06-11T05:26:59+00:00",
    "function": {
      "switch": {
        "type": "Boolean",
        "value": {}
      },
      "level_1": {
        "type": "Enum",
        "value": {
          "range": [
            "level_1",
            "level_2",
            "level_3",
            "level_4",
            "level_5",
            "level_6",
            "level_7"
          ]
        }
      },
      "level_2": {
        "type": "Enum",
        "value": {
          "range": [
            "level_1",
            "level_2",
            "level_3",
            "level_4",
            "level_5",
            "level_6",
            "level_7"
          ]
        }
      },
      "countdown_set_1": {
        "type": "Enum",
        "value": {
          "range": [
            "1h",
            "2h",
            "3h",
            "4h",
            "5h",
            "6h"
          ]
        }
      },
      "countdown_set_2": {
        "type": "Enum",
        "value": {
          "range": [
            "1h",
            "2h",
            "3h",
            "4h",
            "5h",
            "6h"
          ]
        }
      }
    },
    "status_range": {
      "switch": {
        "type": "Boolean",
        "value": {}
      },
      "level_1": {
        "type": "Enum",
        "value": {
          "range": [
            "level_1",
            "level_2",
            "level_3",
            "level_4",
            "level_5",
            "level_6",
            "level_7"
          ]
        }
      },
      "level_2": {
        "type": "Enum",
        "value": {
          "range": [
            "level_1",
            "level_2",
            "level_3",
            "level_4",
            "level_5",
            "level_6",
            "level_7"
          ]
        }
      },
      "countdown_set_1": {
        "type": "Enum",
        "value": {
          "range": [
            "1h",
            "2h",
            "3h",
            "4h",
            "5h",
            "6h"
          ]
        }
      },
      "countdown_set_2": {
        "type": "Enum",
        "value": {
          "range": [
            "1h",
            "2h",
            "3h",
            "4h",
            "5h",
            "6h"
          ]
        }
      },
      "countdown_left_1": {
        "type": "Integer",
        "value": {
          "unit": "s",
          "min": 0,
          "max": 86400,
          "scale": 0,
          "step": 1
        }
      },
      "countdown_left_2": {
        "type": "Integer",
        "value": {
          "unit": "s",
          "min": 0,
          "max": 86400,
          "scale": 0,
          "step": 1
        }
      }
    },
    "status": {
      "switch": false,
      "level_1": "level_1",
      "level_2": "level_1",
      "countdown_set_1": "1h",
      "countdown_set_2": "1h",
      "countdown_left_1": 0,
      "countdown_left_2": 0
    },
    "home_assistant": {
      "name": "Goldair blanket",
      "name_by_user": null,
      "disabled": false,
      "disabled_by": null,
      "entities": []
    },
    "set_up": false,
    "support_local": true
  }
}

Using GitHub - rospogrigio/localtuya: local handling for Tuya devices I can successfully load in the blanket and have proper operation.

This model goldair blanket has individual sides but set up the same

I removed previous stuff I had here to alleviate any confusion.

ID  Name        Type    Valid options                                               Friendly options
1 	Power 	    switch  
14 	Heat - Body	select 	level_1;level_2;level_3;level_4;level_5;level_6;level_7 	Off;1;2;3;4;5;6
15 	Heat - Feet	select 	level_1;level_2;level_3;level_4;level_5;level_6;level_7 	Off;1;2;3;4;5;6
16 	BodyTimer 	select 	1h;2h;3h;4h;5h;6h
17 	FeetTimer 	select 	1h;2h;3h;4h;5h;6h
18	Body Count	number	min 0 max 86400
19	Feet Count	number	min 0 max 86400

This is now in my dashboard

Hopefully this information will get added to the official tuya integration as I noticed at this point in time it is still unsupported.

**Code	Type	Values**

switch	Boolean	

"{true,false}"

level_1	Enum	

{
  "range": [
    "level_1",
    "level_2",
    "level_3",
    "level_4",
    "level_5",
    "level_6",
    "level_7"
  ]
}

level_2	Enum	

{
  "range": [
    "level_1",
    "level_2",
    "level_3",
    "level_4",
    "level_5",
    "level_6",
    "level_7"
  ]
}

countdown_set_1	Enum	

{
  "range": [
    "1h",
    "2h",
    "3h",
    "4h",
    "5h",
    "6h"
  ]
}

countdown_set_2	Enum	

{
  "range": [
    "1h",
    "2h",
    "3h",
    "4h",
    "5h",
    "6h"
  ]
}

**Standard Status Set**

Code	Type	Values

switch	Boolean	

"{true,false}"

level_1	Enum	

{
  "range": [
    "level_1",
    "level_2",
    "level_3",
    "level_4",
    "level_5",
    "level_6",
    "level_7"
  ]
}

level_2	Enum	

{
  "range": [
    "level_1",
    "level_2",
    "level_3",
    "level_4",
    "level_5",
    "level_6",
    "level_7"
  ]
}

countdown_set_1	Enum	

{
  "range": [
    "1h",
    "2h",
    "3h",
    "4h",
    "5h",
    "6h"
  ]
}

countdown_set_2	Enum	

{
  "range": [
    "1h",
    "2h",
    "3h",
    "4h",
    "5h",
    "6h"
  ]
}

countdown_left_1	Integer	

{
  "unit": "s",
  "min": 0,
  "max": 86400,
  "scale": 0,
  "step": 1
}

countdown_left_2	Integer	

{
  "unit": "s",
  "min": 0,
  "max": 86400,
  "scale": 0,
  "step": 1
}