Repository navigation
Releases: vineetchoudhary/tuya-local-key
Release list
v3.5
What's Changed
-
Added Room filters for the selected home, including No room for unassigned devices and Unknown room when room information is unavailable.
-
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
What's Changed
-
Added home filtering and a Clear all action.
-
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
What's Changed
-
Added Set up in… with copyable values for
tuya-local,localtuyaandtinytuya.
-
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 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
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
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_idto name the gateway. -
In a sub-device's details panel, the gateway's name now opens the gateway's details.
-
python app.pynow listens on localhost only, without debug mode.
Full Changelog: v3.0...v3.1
v3.0
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.
-
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.
-
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_SUBNETsetting 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,--jsonand--csvoutput.
Full Changelog: v2.1...v3.0
v2.1
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_CACHEsetting. Set it tooffto keep the device list in memory only, as in older version.
Full Changelog: v2.0...v2.1
v2.0
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-sdk0.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
What's Changed
AUTH_USERNAMEandAUTH_PASSWORDonly apply to the direct port access. These are ignored under Home Assistant ingress.
Full Changelog: v1.6...v1.7
v1.6
Highlights
- Added optional username/password authentication. Set both
AUTH_USERNAMEandAUTH_PASSWORDto 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