New WiFi devices
Improvements to existing devices
- Zemismart roller shade: improve opened and closed detection #672
- Ditua diffuser: enable secondary entities properly #627
- Shinco 30D: improvements from compatible Klarstein DryFy Connect #690
- Energy meters; standardise units to A and kWh
- Arlec panel heated v2: fixed preset naming #578
- loratap curtain switch: map control values even when current value is None #704
- rgbcw lightbulb: use base64 rather than hex format for some unused fields
General improvements
- cover: improvements to opened, closed, closing, opening logic. #672
- device config tests: detect misspellings in secondary_entities #504, #627
- GitHub linting: output diffs from black so errors can be seen
- connection test during setup: handle subdevices #693
- lights: handle "white" parameter for switching between RGB and brightness on bulbs that don't support color temperature #689
- return empty array rather than None for no values, to avoid errors iterating #646
- Bump tinytuya to 1.12.7 #688, potential fix for #664, #653, #520, 338
- lights: use HS rather than RGBW color format #691
- device comms: use unique failure messages per call
- connection failure handling: be less eager to rotate protocol versions once it is working #653