Skip to content

Releases: jasonacox/tinytuya

v1.15.1 - Scanner Fixes

20 Jul 04:00
0cae224
Compare
Choose a tag to compare

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

08 Jul 07:43
2b84315
Compare
Choose a tag to compare

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

26 May 23:36
a75324b
Compare
Choose a tag to compare

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. Use tinytuya scan or python -m tinytuya scan.
# Install CLI tool with pipx
pipx install tinytuya

tinytuya scan

New Contributors

Full Changelog: v1.13.2...v1.14.0

v1.13.2 - Contrib Updates

25 Feb 04:47
Compare
Choose a tag to compare

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

Full Changelog: v1.13.1...v1.13.2

v1.13.1 - Cryptography Version Fix

16 Nov 06:37
d17d031
Compare
Choose a tag to compare

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

15 Nov 06:31
Compare
Choose a tag to compare

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

01 Sep 04:33
Compare
Choose a tag to compare

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

18 Aug 03:35
Compare
Choose a tag to compare

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

Full Changelog: v1.12.9...v1.12.10

v1.12.9 - Import Issue with urllib3

04 Jul 23:12
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.12.8...v1.12.9

v1.12.8 - Device DP Mapping

01 Jun 05:09
Compare
Choose a tag to compare

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

Full Changelog: v1.12.7...v1.12.8