Although the quantity of changes is small for this release, the change is a major one. This integration is now local_push
instead of local_poll
, which will bring a big performance improvement particularly for those use cases were a device changes state outside of the control of HA (either automatically, or by user controlling the device directly or with the Tuya app), which used to take up to 30 seconds (or longer for some entity platforms) to reflect in Home Assistant, but now are usually instant or up to 5 seconds if the initial change was missed due to a protocol error coinciding with the change.
General improvements
- Devices now use persistent connections instead of polling (#176, #146 , also comments in many other issues about slow updates and a possibility of fixing #92 and #330 where certain devices previously disconnected for long periods after a command)
- Error responses from tinytuya are now reported ias warnings instead of just ignored because the response didn't contain data.
- Start of device communication is delayed until HA is started to avoid slowing down startup (#311)
this is required by the above change, as when a connection is made during startup, HA waits for the connection to finish before it considers startup finished - but now the connections stay connected - climate and water_heater: hardcode default unit of CELSIUS, instead of defering to the device (where it was previously hardcoded to CELSIUS, but only relevant for those two entity platforms)
- light: avoid an exception if rgbhsv is configured but missing from device data
- Github Actions updated to use Python 3.10 instead of 3.9
Device specific improvements
- Light string (Fairy lights): map scene and music to their original names (#309)
- Lefant M213 vacuum: made some more attributes optional to improve detection