SKILL.md
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|cloudTUYAHAURLTUYAHATOKENTUYACLOUDACCESS_IDTUYACLOUDACCESS_KEYTUYACLOUDENDPOINTTUYACLOUDSCHEMATUYACLOUDUSER_ID
Common actions (HA)
- Discover devices
``bash ./bin/tuya discover ``
- Poll temperature sensors
``bash ./bin/tuya poll --kind temperature ``
- Get a device state
``bash ./bin/tuya get --entity sensor.kitchen_temperature ``
- Turn a device on/off
``bash ./bin/tuya set --entity switch.garden_lights --state on ``
- Call any HA service
``bash ./bin/tuya call --service light.turnon --data {"entityid":"light.patio"} ``
Common actions (Cloud)
- Discover devices
``bash ./bin/tuya discover --backend cloud ``
- Poll temperature sensors (scaled)
``bash ./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
``bash ./bin/tuya get --backend cloud --id <deviceid> ./bin/tuya get --backend cloud --id <deviceid> --code <status_code> ``
- Switch / light on-off
1) Inspect status codes (look for switch / switch1 / switch2): ``bash ./bin/tuya get --backend cloud --id <deviceid> ` 2) Send command: `bash ./bin/tuya set --backend cloud --id <deviceid> --code switch1 --value true ./bin/tuya set --backend cloud --id <deviceid> --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.