Tuya

tuyactl

This project provides a command-line interface (tuyactl) for controlling Tuya devices. It interacts with a separate Tuya Server (I'm still thinking a better way of doing that).

Requirements

  • uv: A fast and modern Python package installer and runner. Install it by following the instructions on the uv documentation site.
  • Tuya Local Keys: You will need the local keys for your Tuya devices. Follow the tinytuya setup wizard to obtain these.

Quick Start

  1. Install uv:

    Follow the official installation instructions on the uv documentation site. The recommended method is to use the standalone installer, which you can download and run with the following command:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Obtain Tuya Local Keys:

    Follow the tinytuya setup wizard to get the local keys for your Tuya devices. Place the resulting snapshot.json file in your home directory (~). You can customize the location of this file using environment variables (see below).

  3. Run the server:

    nohup tuyad > tuyad.log 2>&1 &
    
  4. Run tuyactl:

    To see the available commands and options, run:

    tuyactl --help
    

    To execute a specific command, use the following syntax:

    tuyactl <command> [options]
    

    Replace <command> with one of the available commands: list, on, off, color, brightness, temperature, mode, music. Use the -- help option to see the available options for each command.

    For example, to list all your Tuya devices, run:

    tuyactl list
    

Configuration

  • snapshot.json Location: You can customize the location of the snapshot.json file (containing your Tuya device keys) using environment va riables. (Details on this to be added later).