| name | tuya |
| description | Control Tuya devices via local Home Assistant (tuya-local) or Tuya Cloud using the tuya-hub Go CLI. |
| metadata | [object Object] |
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/tuyaor install to PATH and setTUYA_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: "" # optional; used for user lookup
userId: "" # UID from Link Tuya App Account
Env overrides:
TUYA_BACKEND=ha|cloudTUYA_HA_URLTUYA_HA_TOKENTUYA_CLOUD_ACCESS_IDTUYA_CLOUD_ACCESS_KEYTUYA_CLOUD_ENDPOINTTUYA_CLOUD_SCHEMATUYA_CLOUD_USER_ID
Common actions (HA)
Discover devices
./bin/tuya discoverPoll temperature sensors
./bin/tuya poll --kind temperatureGet a device state
./bin/tuya get --entity sensor.kitchen_temperatureTurn a device on/off
./bin/tuya set --entity switch.garden_lights --state onCall any HA service
./bin/tuya call --service light.turn_on --data {"entity_id":"light.patio"}
Common actions (Cloud)
Discover devices
./bin/tuya discover --backend cloudPoll temperature sensors (scaled)
./bin/tuya poll --backend cloud --kind temperatureValues are auto-scaled (tenths) when detected; raw value is in
value_rawfor 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- Inspect status codes (look for
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.