Releases: jasonacox/tinytuya
Releases · jasonacox/tinytuya
v1.15.1 - Scanner Fixes
What's Changed
- Fix scanner broadcast attempting to bind to the wrong IP address, introduced in v1.15.0, by @uzlonewolf in #519
- Make netifaces optional.
Full Changelog: v1.15.0...v1.15.1
v1.15.0 - Scanner Fixes
What's Changed
- Fix force-scanning bug in scanner introduced in last release and add broadcast request feature to help discover Tuya version 3.5 devices by @uzlonewolf in #511.
- Add netifaces as an install requirement by @jasonacox in #517
- Server p12 updates:
- Added "Force Scan" button to cause server to run a network scan for devices not broadcasting.
- Minor updates to UI for a cleaner title and footer to accommodate button.
- Added logic to allow settings via environmental variables.
- Add broadcast request to local network for version 3.5 devices.
- Fix bug with cloud sync refresh that was losing device mappings.
- Added "Cloud Sync" button to poll cloud for updated device data.
- Add network configuration for force scan by @jasonacox in #518
Example CLI
# Standard Scan with broadcast requests for version 3.5 devices
python3 -m tinytuya scan
# Forced network scan
python3 -m tinytuya scan -f
Example Docker Run for Server Test (http://localhost:8888)
docker run \
-d \
-p 8888:8888 \
-p 6666:6666/udp \
-p 6667:6667/udp \
-p 7000:7000/udp \
--network host \
-e DEBUGMODE='no' \
-e HOST='192.168.0.100' \
-v $PWD/devices.json:/app/devices.json \
-v $PWD/tinytuya.json:/app/tinytuya.json \
--name tinytuya \
--restart unless-stopped \
jasonacox/tinytuya
Full Changelog: v1.14.0...v1.15.0
v1.14.0 - Command Line Updates
What's Changed
- PyPI 1.14.0
- README Update: Warn users about use of guest accounts by @Hello1024 in #491
- Add support for
pipx install tinytuya
as raised by @felipecrs in #500 allowing for easier CLI use. - Updated docs to explain timeout as raised by @GamerPeggun in #501
- Rewrite main to use argparse and add additional options by @uzlonewolf in #503
- Note possible breaking change: Running
tinytuya
by itself will now produce a "Usage" page instead of running a scan. Usetinytuya scan
orpython -m tinytuya scan
.
# Install CLI tool with pipx
pipx install tinytuya
tinytuya scan
New Contributors
- @Hello1024 made their first contribution in #491
Full Changelog: v1.13.2...v1.14.0
v1.13.2 - Contrib Updates
What's Changed
- Add example for XmCosy+ RGBW patio string lights by @bikerglen in #445
- Fix case when the number of colors in the colors list is not exactly six by @bikerglen in #446
- Adding support for Presence Detector Device by @mrioan in #451
- Makes some tweaks to the recently-added Contrib/PresenceDetectorDevice by @mrioan and Deprecates
Contrib/__init__.py
by @uzlonewolf in #466 - Add a note about QR code scanning with Dark Reader to the README #463 by @uzlonewolf in #466
- Add option to specify port in XenonDevice class by @unit-404 in #468
New Contributors
- @bikerglen made their first contribution in #445
- @mrioan made their first contribution in #451
- @unit-404 made their first contribution in #468
Full Changelog: v1.13.1...v1.13.2
v1.13.1 - Cryptography Version Fix
What's Changed
- PyPI 1.13.1
- Require pyca/cryptography>=3.1 or fallback to PyCryptodome
- Add
tools/fake-v35-device.py
script to tools - Allow pyca/cryptography to GCM decrypt without the tag (makes it match PyCryptodome) by @uzlonewolf in #424
Full Changelog: v1.13.0...v1.13.1
v1.13.0 - Crypto Library Update
What's Changed
- PyPI 1.13.0
- Updates AESCipher() to make it a bit easier to add additional crypto libraries. It also adds pyca/cryptography as the default. By @uzlonewolf in #423
- Fixes issue with tinytuya.find_device() for v3.1 devices and the infinite loop in Contrib/IRRemoteControlDevice.py (Closes #403).
- Officially removes Python 2.7 support.
Full Changelog: v1.12.11...v1.13.0
v1.12.11 - Bug Fix for Offline Devices
What's Changed
- PyPI 1.12.11
- Fix local variable collision in
_get_socket()
exception handling for device offline conditions. See #402 .
Full Changelog: v1.12.10...v1.12.11
v1.12.10 - Various Updates
What's Changed
- PyPI 1.12.10
- Various updates inspired by recent issues by @uzlonewolf in #397 - Updates to scanner, added error code and helpful troubleshooting messages, make connection/key errors more descriptive, added socketRetryLimit (
connection_retry_limit
) and socketRetryDelay (connection_retry_limit
) to Device constructor args. - [MQTT Gateway for Server] Fixed endless loop causing 100% cpu usage by @michaelmittermair in #390
New Contributors
- @michaelmittermair made their first contribution in #390
Full Changelog: v1.12.9...v1.12.10
v1.12.9 - Import Issue with urllib3
What's Changed
- PyPI 1.12.9
- Add graceful handling of issue where urllib3 v2.0 causes
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+
error. See #377 & #379. - Fix bug in Cloud getdevices() that can error with older
devices.json
versions as raised in #381 & #382 - [Server] Mapping for DP IDs by @mschlenstedt in #353 and #363
- [MQTT Gateway for Server] by @mschlenstedt in #364, #367 and #366
- Add Contrib support for Inverter Heat Pump such as Fairland IPHR55 by @valentindusollier in #368
New Contributors
- @valentindusollier made their first contribution in #368
Full Changelog: v1.12.8...v1.12.9
v1.12.8 - Device DP Mapping
What's Changed
- PyPI 1.12.8
- [Server] - Use {DeviceName} instead of {DeviceID} alternatively for API commands by @mschlenstedt in #352
- Wizard - New Cloud functions to download DP Name mappings by @uzlonewolf in #356
Example device from UPDATED devices.json
showing new "mapping" data:
{
"name": "Smart Plug",
"id": "01234567890abcdef012",
"key": "abcdef0123456789",
"mac": "aa:bb:cc:dd:33:11",
"uuid": "01234567890abcdef012",
"category": "cz",
"product_name": "WP1-Smart Socket",
"product_id": "iXfg9AQVUPhlfyGw",
"biz_type": 18,
"model": "WP1/10A/\u5e26\u8ba1\u91cf/gosund",
"sub": false,
"icon": "https://images.tuyaus.com/smart/icon/1472009231_0.png",
"mapping": {
"1": {
"code": "switch",
"type": "Boolean",
"values": {}
},
"4": {
"code": "cur_current",
"type": "Integer",
"values": {
"unit": "mA",
"min": 0,
"max": 30000,
"scale": 0,
"step": 1
}
},
"5": {
"code": "cur_power",
"type": "Integer",
"values": {
"unit": "W",
"min": 0,
"max": 50000,
"scale": 1,
"step": 1
}
},
"6": {
"code": "cur_voltage",
"type": "Integer",
"values": {
"unit": "V",
"min": 0,
"max": 5000,
"scale": 1,
"step": 1
}
},
"2": {
"code": "countdown_1",
"type": "Integer",
"values": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
}
},
"ip": "10.20.30.40",
"version": "3.1"
}
New Contributors
- @mschlenstedt made their first contribution in #352
Full Changelog: v1.12.7...v1.12.8