| name | tuya |
| description | Control Tuya devices via local Home Assistant (tuya-local) or Tuya Cloud using the tuya-hub Go CLI. |
| metadata | {"clawdis":{"emoji":"🏠","requires":{"bins":["tuya"]}}} |
Tuya (tuya-hub)
Use this skill when the user wants to discover, poll, or control Tuya devices.
Build
go build -o bin/tuya ./cmd/tuya
CLI
- Use
./bin/tuya or install to PATH and set TUYA_BIN.
Config
Default config: ~/.config/tuya-hub/config.yaml
Quick setup (guided wizard):
./bin/tuya config --backend cloud
Important: cloud.userId must be the UID from Devices → Link Tuya App Account (not the token UID).
Find linked app users (helps set the right userId):
./bin/tuya users --try-common
./bin/tuya users --schema smartlife
Minimum for Home Assistant backend:
backend: ha
homeAssistant:
url: "http://homeassistant.local:8123"
token: "YOUR_LONG_LIVED_ACCESS_TOKEN"
Minimum for Tuya Cloud backend:
backend: cloud
cloud:
accessId: "YOUR_TUYA_ACCESS_ID"
accessKey: "YOUR_TUYA_ACCESS_KEY"
endpoint: "https://openapi.tuyaeu.com"
schema: ""
userId: ""
Env overrides:
TUYA_BACKEND=ha|cloud
TUYA_HA_URL
TUYA_HA_TOKEN
TUYA_CLOUD_ACCESS_ID
TUYA_CLOUD_ACCESS_KEY
TUYA_CLOUD_ENDPOINT
TUYA_CLOUD_SCHEMA
TUYA_CLOUD_USER_ID
Common actions (HA)
-
Discover devices
./bin/tuya discover
-
Poll temperature sensors
./bin/tuya poll --kind temperature
-
Get a device state
./bin/tuya get --entity sensor.kitchen_temperature
-
Turn a device on/off
./bin/tuya set --entity switch.garden_lights --state on
-
Call any HA service
./bin/tuya call --service light.turn_on --data {"entity_id":"light.patio"}
Common actions (Cloud)
-
Discover devices
./bin/tuya discover --backend cloud
-
Poll temperature sensors (scaled)
./bin/tuya poll --backend cloud --kind temperature
Values are auto-scaled (tenths) when detected; raw value is in value_raw for JSON output.
-
Get device status
./bin/tuya get --backend cloud --id <device_id>
./bin/tuya get --backend cloud --id <device_id> --code <status_code>
-
Switch / light on-off
- Inspect status codes (look for
switch / switch_1 / switch_2):
./bin/tuya get --backend cloud --id <device_id>
- Send command:
./bin/tuya set --backend cloud --id <device_id> --code switch_1 --value true
./bin/tuya set --backend cloud --id <device_id> --code switch_1 --value false
Notes
- Local control is via Home Assistant (tuya-local integration). HomeKit can be bridged through Home Assistant’s HomeKit integration.
- Cloud backend uses Tuya OpenAPI; devices must be linked to the cloud project.
- If you see
permission deny, the app account UID is wrong or not linked to the project.