Skip to content

Releases: vineetchoudhary/tuya-local-key

v3.5

Choose a tag to compare

@vineetchoudhary vineetchoudhary released this 20 Oct 14:18
b447125

What's Changed

  • Added Room filters for the selected home, including No room for unassigned devices and Unknown room when room information is unavailable.

    rooms-filter
  • Added Status filters for cloud status and saved LAN results.

  • Added Device category filters with readable names for common categories.

  • Filter choices are saved in your browser for each account.

  • The new filters apply to device selection, change notices, and CSV export.

  • Fixed the Filter menu shifting out of position after a refresh.

Full Changelog: v3.4...v3.5

v3.4

Choose a tag to compare

@vineetchoudhary vineetchoudhary released this 19 Oct 04:34
0daede3

What's Changed

  • Added home filtering and a Clear all action.

    home-filter
  • Added saved device exclusions with bulk selection and restoration (#9).

  • UI improvements, code modernization, and test fixes.

Full Changelog: v3.3...v3.4

v3.3

Choose a tag to compare

@vineetchoudhary vineetchoudhary released this 17 Oct 06:31
1e15190

What's Changed

  • Added Set up in… with copyable values for tuya-local, localtuya and tinytuya.

    setup-tuya-local-dark
  • Setup now highlights missing values and unsupported protocols, with actions to scan the network, enter an IP manually, or refresh devices.

  • Added a dedicated Local network page to review local connection problems and check a device or gateway at a local IP address.

    local-network-dark
  • Local network results now show when another check is needed after a key change. Gateway connections and sub-device status are shown separately.

  • The side panel's local key show/hide button now shows/hides its own local key independently of the device table.

Full Changelog: v3.2...v3.3

v3.2

Choose a tag to compare

@vineetchoudhary vineetchoudhary released this 11 Oct 10:48
b337dca

What's Changed

  • Sub-devices now appear under their gateway when Tuya or a network scan identifies the relationship.
  • Sorting keeps gateway groups together. Searching reveals matching sub-devices with their gateway for context.
  • Sub-device rows now show copyable Node IDs instead of repeating the gateway's local key. Missing Node IDs show a dash.
  • The key column is labelled Local Key / Node ID when the account has sub-devices, and Local Key otherwise. Node IDs stay visible when local keys are hidden.
  • The details panel keeps Gateway local key, Node ID and UUID separate for sub-devices.

Full Changelog: v3.1...v3.2

v3.1

Choose a tag to compare

@vineetchoudhary vineetchoudhary released this 05 Oct 05:45
46715df

What's Changed

  • Scan network now finds Tuya Zigbee and Bluetooth gateways that Tuya lists without a local key (#7). Tuya puts such a gateway's key on its sub-devices instead and doesn't say which sub-devices belong to which gateway, so the scan recognises gateways by their category and tries the keys on your sub-devices at each address that answers.

  • A gateway found this way shows its local key, marked with an asterisk because Tuya lists it on a sub-device, along with its IP and protocol version. The CSV export and the CLI include the key too.

  • When several gateways have no key, the scan can't tell which one is at which address, so they show check needed. The scan summary lists each address with the sub-devices whose key answered there, and a gateway's details panel has a one-click Check for each address. When a Check leaves one gateway, that one is checked too, so two gateways take one click. Later scans remember them, even when their IPs change. The CLI keeps no state, so it lists those addresses instead, to match against your router's client list.

  • Sub-devices now get their gateway's IP and version even before the gateways are told apart. The table no longer shows a protocol version for them, since it's their gateway's. Their details panel shows it as Gateway IP and Gateway protocol, which tuya-local needs to set up a sub-device, and the CSV export and the CLI add lan_gateway_id to name the gateway.

  • In a sub-device's details panel, the gateway's name now opens the gateway's details.

  • python app.py now listens on localhost only, without debug mode.

Full Changelog: v3.0...v3.1

v3.0

Choose a tag to compare

@vineetchoudhary vineetchoudhary released this 02 Oct 03:53
20fa746

What's Changed

  • Added Scan network, which finds each device's local IP and protocol version (3.1, 3.3, 3.4, 3.5, and the device22 variant that tuya-local calls 3.22/3.42). Tuya's device-sharing API doesn't return a protocol version, so the app connects to each device on TCP port 6668 with its local key and tries each version in turn. It never uses broadcasts, so devices on another VLAN are found too, as long as the firewall lets the app reach port 6668 there.

    scan-dark
  • Added a Protocol column. The Status column now shows what the scan found (reachable, busy, key mismatch, unreachable, not found, or via gateway), tagged LAN, and falls back to the cloud's online flag for devices that haven't been scanned.

  • The details panel has a Local network section with the local IP, protocol version and status, and a Check button to try a single device at an IP address.

    Screenshot 2026-10-02 at 9 21 47 AM
  • Scans are compared against the previous one. A changed protocol version or IP, or a device that stopped accepting its local key, is listed in the change summary, since each one breaks a local integration.

  • Scan results are stored encrypted beside the device list, and are cleared along with it when you log out or log in again.

  • Added a LAN_SUBNET setting to prefill the scan box.

  • Export CSV, Scan network, Refresh and Log out moved into the header. On a narrow screen, the ones that don't fit move into a ⋮ menu.

  • Log out now asks for confirmation first, since it also deletes the saved device list and scan results.

  • The CLI takes --scan 192.168.2.0/24 (your IoT VLAN or subnet) to add the same fields to its text, --json and --csv output.

Full Changelog: v2.1...v3.0

v2.1

Choose a tag to compare

@vineetchoudhary vineetchoudhary released this 03 Sep 17:08
b41134e

What's Changed

  • The device list is now stored on disk, so a restart or an app update shows your devices immediately instead of re-fetching them from Tuya.
  • The stored list is encrypted. It contains every local key in your account, so it is written with a key kept beside it and readable only by the app. Logging out deletes both, which also makes any copy of the file that survives elsewhere permanently unreadable.
  • The device list is now cached for 3 days instead of 24 hours. Click Refresh at any time to pull the current list from Tuya.
  • Every refresh is now compared against the previous list. Devices added, removed, and renamed are summarised above the table, and so are local keys that changed. Changed rows are badged, and the filter matches the badge text.
  • When Tuya cannot be reached, or your login has expired, the saved device list is now shown as a labelled snapshot instead of an error or the login screen. Local keys do not expire with the login, so those keys are still good. Logging out still clears everything.
  • Added a DEVICE_CACHE setting. Set it to off to keep the device list in memory only, as in older version.

Full Changelog: v2.0...v2.1

v2.0

Choose a tag to compare

@vineetchoudhary vineetchoudhary released this 21 Aug 17:26
7ca1a3a

What's Changed

  • Added a device details panel. Select a device row to see every field the device-sharing SDK returns along with raw JSON.
  • Timestamps in the web UI now use your browser's timezone. The details panel also shows the UTC reading and the raw epoch. CSV export and the CLI stay in UTC.
  • Moved UUID, category, IP address, and last-paired time out of the device table into the details panel.
  • Requires tuya-device-sharing-sdk 0.2.15 or newer.
  • The CLI, --json, and CSV export now include every field Tuya returns instead of a fixed list. CSV columns are built from the fields your devices actually have.
  • CLI output field names now match the SDK (local_key, product_id, online, update_time) instead of camelCase.

Full Changelog: v1.7...v2.0

v1.7

Choose a tag to compare

@vineetchoudhary vineetchoudhary released this 01 Aug 05:11
de56b9f

What's Changed

  • AUTH_USERNAME and AUTH_PASSWORD only apply to the direct port access. These are ignored under Home Assistant ingress.

Full Changelog: v1.6...v1.7

v1.6

Choose a tag to compare

@vineetchoudhary vineetchoudhary released this 01 Aug 04:26
7c7a2df

Highlights

  • Added optional username/password authentication. Set both AUTH_USERNAME and AUTH_PASSWORD to enable login.
  • Cached the device list in the web UI for 24 hours. Use the Refresh button to fetch the latest list from Tuya.
  • Added Home Assistant configuration for selecting the QR code scheme.
  • Various other improvements and bug fixes.

Full Changelog: v1.5...v1.6