Skip to content

Tags: hsand/tuya-local

Tags

2023.9.1

Toggle 2023.9.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
make-all Jason Rumney
 # Breaking changes

- lights now use Kelvin rather than mired for colour temperature. This will affect configuration files that are maintained outside of the repository. make-all#1086
  The following lights may now have the color temperature inverted, as it was not clear whether the previous lack of inversion was a bug or intentional:
   - Atomi Ceiling fan
   - RGBCW Lightbulb2
   - Tampa LED system
   - Windcalm fan with light

 # New WiFi devices

- Breville AirDynamic 3D fan  make-all#983
- Dim2Warm Gold 1800-2700K CCT lightbulb make-all#1080
- A60 RGBWW 1800-2700K lightbulbs make-all#996
- AlecoAir D25 Traditio make-all#1085
- 3 outlet energy monitoring powerstrip make-all#1088
- Ultenic T10 vacuum make-all#1093
- ARD-100+ valve make-all#1107
- Dcenta dual clamp meter make-all#1109
- SWS-001 weather station make-all#1096
- Rotenso Roni X make-all#1114

 # New Zigbee devices

- Intelbras IFR7000 lock make-all#1105

 # Improvements to existing devices

- Somgom single switch: allow different option groups for Initial state to match more brands of switch make-all#962
- Geyserwise water heater: compatibility improvements for TSE1 make-all#765
- ElectriQ Airflex: provide alternate mode and power selection for single dp control make-all#609
- Smartplugv1: add compatible SP111-A device make-all#1070
- Smartplugv2 Energy: add compatible Eightree device, add optional child lock, backlight control, remove polling make-all#1061
- CCT lightbulb: add compatbiel Genio device make-all#1089
- WDYK 2p63: add more dps and mark some optional make-all#1078
- Energy meters (multiple models): use total_increasing state class for energy sensors to enable use in Energy dashboard. make-all#1081
- PC321TY: add compatible product make-all#1098

 # General improvements

- Lights use Kelvin rather than mireds natively for color temperature make-all#1086
- Added support for 'target_range' to allow shifting values from one range into another make-all#1080
- Added Polish translations make-all#1087
- Avoid double removal of shutdown listener when handling shutdown make-all#1097
- Fix link to local key documentation make-all#1100
- Treat empty string cid the same as missing cid make-all#1110 (may fix make-all#1065,
- make-all#1013, make-all#968)

2023.9.0

Toggle 2023.9.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
make-all Jason Rumney
2023.9.0 New and improved devices

 # Breaking changes

No breaking changes in this release

 # New WiFi devices

- Woods Cortina air conditioner make-all#1029
- DJive ARC humidifying fan make-all#1029
- Xiumii human presence sensor make-all#1028
- Blumfeldt Cosmic Beam radiant heater make-all#1030
- Abir X8 vacuum make-all#1033
- Quad powerstrip with timer make-all#1031
- ZG205W mmWave presence sensor make-all#1043
- Momland/Loycco sound machine nightlight make-all#1042
- Kojima motion sensor RGBCW light make-all#1041
- Royal Sovereign air conditioner make-all#1016
- Carro ceiling fan and light make-all#930 make-all#1047
- Casafan ceiling fan and light make-all#999
- Kogan sleep aid make-all#1003
- AGL Ultracontacto R2 make-all#1005
- Liectroux XR500[T3] vacuum make-all#1056
- MRC Magnum floor heating make-all#1064
- WF520D dual dimmer touch switches make-all#1073
- CT20W motion detection alarm panel make-all#1077
- MatSee Plus bidirectional dual clamp power meter make-all#1072
- Geyserwise TSE1 water heater controller make-all#765

 # New Zigbee devices

- Loginovo DV7S human presence sensor make-all#1057
- Loratap 6 button remote make-all#1067

 # Improvements to existing devices

- RGBCW lightbulb: add Genio lightbulbs to product list make-all#1024
- Essentials purifier: standardise UV sterilization name
- Mirabella Genio: add Maxcio to product list, expose timer make-all#1036
- Simple switch with timer: add Teckin SP27 to product list make-all#1037
- TH16 climate sensor: improve compatibility: make-all#1035
- PIR spotlight: add Nedis outdoor floodlight to product list make-all#1040
- Ledkia fan/light: add new product to product list make-all#1039
- Carson CB: improve compatibility for Shinco Yoau YWD1 make-all#1032
- TYTE D1: mark energy as optional for compatibility make-all#1044
- PC311TY meter: fix units for reactive power make-all#1045
- Gautone alarm: add sensors and attributes make-all#1051 make-all#1059
- AGL Ultra Magic: convert from non-working lock to working cover make-all#1004
- Eeese Otto: improve detection make-all#306
- BLE water valve: add Royal Gardineer product id make-all#1062
- Emylo meter: fix masks for sensor readings make-all#1066
- Ditua aroma diffuser: improve compatibility for Sierra Modern Home make-all#1063

 # General improvements

- Documentation fixes make-all#1018, make-all#1034
- Bump tinytuya to 1.12.11 (fixes some error messages)
- unixtime dp type: move implementation to be more effective
- update automated tests to be compatible with HA 2023.9

2023.8.2

Toggle 2023.8.2's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
make-all Jason Rumney
 # New WiFi devices

- ASIP-0622 planter make-all#687
- 1/2/3/4 gang Brilliant wall switches make-all#900
- Moes star projector make-all#821
- Duux Whisper Flex fan make-all#989
- Yidi fan and light switch make-all#993
- Pinelake birdfeeder camera make-all#698 / make-all#828
- Ovlaim ceiling fan with light make-all#749
- EMS heatpump water heater make-all#751

 # New Zigbee devices

- Nedis ZBSC10WT temperature/humidity sensor make-all#831
- Nedia door/window sensor make-all#702
- MultiIR temperature/humidity sensor make-all#710
- Temperature/humidity alarm sensor make-all#709

 # Improvements to existing devices

- Monzana air conditioner: add heat function make-all#985
- Mantra fan: light color_temp is inverted make-all#995
- Kabum 700 vacuum: improved compatibility make-all#991
- Avatto curtain light: improved compatibility make-all#987
- Relay switch with remote: diffs between local and cloud protocols make-all#947
- Divoo water timer: correct timer units make-all#1007

 # General improvements

- add `unixtime` type for timestamp sensors. make-all#687
- remove "uuid" from device_id description, as they are not always the
  same make-all#1008 and others
- Explictly set entity names to None instead of accepting default make-all#992
- tinytuya upgraded to 1.12.10
- clear pending updates once the device has reflected them make-all#1001
- improved connection logging make-all#968
- avoid type error scaling masked values make-all#947
- round dp values to int when range checking to avoid under/over by tiny fraction make-all#1014

2023.8.1

Toggle 2023.8.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
make-all Jason Rumney
- fix problem with entity migration in 2023.8.0 make-all#984

2023.8.0

Toggle 2023.8.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
make-all Jason Rumney
 ### Default naming

Many sensors are now defaulting to the HA standard name for their class,
to make use of standard name translations.
This has resulted in some entities being renamed.
A migration attempts to handle the renaming in Home Assistant's registry but
it may still be necessary to update automations or some other references to
entities.
There may also be some cases that were missed by the migration, in which
case you will have new entities created, and the old ones will become
"unavailable" and will need to be deleted manually.
If you are using a version of Home Assistant older than 2023.7, some entities
will be displaying only the device name the UI. make-all#871

These are the main changes:
    - carbon_dioxide: some were previously named CO2
    - carbon_monoxide: some were previously named CO
    - humidity: some were previously named Current humidity, but no change was made for deprecated sensors (see below)
    - pm1: some were previously named PM 1.0 (translates to pm_1_0 in entity naming)
    - pm10: some were previously named PM 10 (translates to pm_10 in entity naming)
    - pm25: were previously named PM 2.5 (translates to pm_2_5 in entity naming)
    - temperature: some were previously named Current temperature
    - volatile_organic_compounds some were previously named TVOC

 ### Humidity sensor deprecation for humidifiers and dehumidifiers

Current humidity sensors for humidifiers and dehumidifiers have been
deprecated, as the humidifier entity supports reporting of current humidity
as of HA 2023.7 make-all#869

 ### Battery level moved to separate sensor for vacuums

As of HA 2023.8, the battery_level attribute of vacuums is deprecated,
to be replaced by battery sensors.  To avoid the deprecation warning,
this change has been made already.  Some custom cards may not yet
be updated for this change, so the battery level may disappear from the
card until it is updated.  After this change, battery status has full history
recording available, however if you have any automations reading the
battery_level from the vacuum, you will need to update these to read from
the battery sensor instead. make-all#954

 ### Poolex Q7 (and Q9 and others) use as water_heater is deprecated

After gathering more info on the preset modes available for this device,
the main entity has been changed from water_heater to climate to  make
the cooling funtions available too.
The water_heater entity is deprecated. make-all#966

 ### hidden mappings behaviour change

Previously a mapping could be marked hidden to hide it from the list of
possible values. Now these mappings have also been made one-way,
only to map device values to the UI.  The main use case for these is to map
unexpected values like null to something else for the UI.  Mapping back to
these unexpected values when a value is changed from the UI is not
desirable behaviour for the use cases imagined for this feature.  make-all#914

 ## New WiFi devices

- TH08 temperature and humidity sensor make-all#932
- Goldair 101cm tower fan make-all#925
- PV28-CW 8-in-1 air quality monitor make-all#931
- BlitzWolf SHP-9 power strip make-all#942
- ACME SH3305 powerstrip make-all#941
- Mirabella Genio motion sensor make-all#943
- Loginovo HDMI sync backlight make-all#952
- Makegood dual smart switch make-all#958
- Nedis outdoor camera make-all#914
- MoesGo dimmer switch make-all#927
- Holman WX1 tap timer make-all#979
- Marpou ceiling light make-all#967
- Kabum Smart 700 vacuum make-all#944
- Cadence aroma diffuser make-all#976
- Lyfco OL-A012 portable air conditioner make-all#946
- Relay switch with 433MHz remote make-all#947
- RL video intercom make-all#462
- Inkbird iBBQ-4T v2 variant make-all#750
- Ceres Plus pet feeder make-all#507

 ## New Bluetooth devices

- Solar garden light make-all#605
- HU06 smart lock make-all#973

 ## New Zigbee devices

 ## Improvements to existing devices

- ITS 45HS heatpump: moved non-working sensors to attributes and renamed others make-all#866, make-all#928
- Proscenic M9 vacuum: restore use of "Customize mode" switch so mopping can be used make-all#939
- Kogan bidet: device detection improvement make-all#559
- YYM aroma diffuser: compatible Tellur device added make-all#936
- Beca BAC002: device detection improvement make-all#950
- Kogan air purifier: config properly installed make-all#859
- CBI Astute switch: last state mapping corrected for local protocol make-all#953
- Yinmik water quality monitor: device detection improvement make-all#880
- PG10x alarm; device detection improvement make-all#961
- Vivax heatpump: scale current temperature correctly, add the "quiet" switch make-all#964
- Catit Pixi feeder: add optional fault sensors, found on compatible Nutri Meal device make-all#960
- Poolex Q7: primary entity changed from water_heater to climate, presets added, temperature range restricted to swimming pool suitable temperatures, compatibility with Poolsana devices noted make-all#966
- Rotenso heatpump: add name to fault sensor
- Simple switches: remove outlet device class - these can also match wall switches
- Eberg Cooly C35HD: device detection improvement make-all#974
- Moebot S mower: support for CHARGING_PAUSE status and reduced timer range to 24h make-all#980
- Starlight/Daizuke heatpumps: identified more dps based on compatible Pioneer WYT Diamante make-all#820
- Kogan LX10 Vacuum: more reliably support start/pause commands make-all#981

 ## General improvements

- humidifier entities now support current_humidity (requires HA 2023.7 or later) make-all#869
- fans now turn off when speed is set to 0 and on when speed is set away from 0, behaviour that was lost with the recent HA UI changes make-all#936
- lights: RGB lights that report color as RGB rather than HSV are now properly supported make-all#948
- tests have been updated to work with HA 2023.5 and later, where some dependency update forced a change in pytest asyncio config.
- locks: support for voice unlocking added, intercom opening properly implemented make-all#973
- vacuums: prioritise start/pause commands over activate dp make-all#981
- diagnostics: avoid exception when protocol is not yet negotiated make-all#907

2023.7.0

Toggle 2023.7.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
make-all Jason Rumney
2023.7:

  # New Wifi devices

- Tontine electric blanket make-all#829
- Duux Blizzard air conditioner make-all#835
- Aquatech X6 water heater make-all#836
- Windcalm fan make-all#839
- Monzana Klimaanage air conditioner make-all#840
- Goldair tower fan make-all#844
- Home Awesone powerstrip make-all#860
- Kogan air purifier make-all#859
- Woods Milan air conditioner make-all#843
- Aubess Rainpoint irrigation system make-all#883
- GauTone PG-103 alarm make-all#897
- Makegood double power point make-all#904
- Garza irrigation system make-all#918
- Yinmik water quality tester make-all#880
- Royal Clima ventilation system make-all#825
- ITS 4.5HD pool heatpump make-all#866
- Sulion ceiling fan make-all#881
- Inkbird IBS-M1S thermo-probe hub make-all#910
- Proscenic M9 vacuum make-all#921
- Loratap double curtain switch make-all#920
- Sencor air conditioner make-all#892

 # New Bluetooth device

- generic BLE water valve (replaces Johgee, and supports Divoo WT-03 and others also) make-all#851
- Divoo dual water timer make-all#882

 # Improvements to existing devices

- CCT, RGBCW lightbulbs, Tampa LED system, PIR spotlight, Mantra fan:
scale brightness correctly make-all#830
- DTS, SmartMCB, TOMPD meters: add energy_storage class to prepayment values.
- Inkbird iBBQ-4T:power is a sensor not switch, handle missing fault code. make-all#750
- Neocool siren: adjust tones, min/max temperature scale, battery level, add alarm status make-all#673
- Kogan LX10 vacuum: add error codes make-all#849
- ZYM100 presence sensor: add lux sensor, detection delay make-all#846, make-all#919
- Rojeco feeder: improved compatibility, add battery sensor make-all#845
- ZX-DB11 doorbell: add ringing binary sensor make-all#763
- Lytmi backlight: improved compatibility make-all#790, make-all#889
- Starlight heatpump: identified more datapoints make-all#878
- CO2 Box: add matching products make-all#872
- Ultenic air fryer: improved mappings and naming make-all#899
- SmartplugV2 EnergyV2: add optional connectivity binary sensor make-all#909
- SmartplugV2 EnergyV3: add compatible product make-all#893
- Owon  PCT513 thermostat: identify more data points make-all#875
- Rumba heater: properly expose preset_mode make-all#922
- Linkoze button: add battery, try a different long press string make-all#774
- Lucking HS6 lock: improve unlock detection make-all#796
- Orion lock: improve unlock detection make-all#798

 # General improvements

- Update docs for Tuya API Explorer changes
- Siren: fix volume_level make-all#673
- Bump tinytuya to 1.12.9
- Add Czech translations make-all#873
- Add Norwegian translations make-all#843
- fix writing masked datapoints make-all#877
- vscode devcontainer support make-all#885
- clarifications and other documentation improvements make-all#898, make-all#903
- support for endianness in encoded dps make-all#910

2023.6.1

Toggle 2023.6.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
make-all Jason Rumney
This build contains further translation improvements, and some change…

…s to humidifier modes and fan preset_modes to support this.

The main changes are:
 - restored the use of laundry as a dehumidifier mode, as many devices support it (previous release renamed most of these to "strong" which has been reverted)
 - use the standard modes, plus laundry and purify where appropriate.
 - use common set of fan preset modes from normal, nature, sleep, fresh, smart, strong, off.
   - in a couple of cases, off has been used when some other feature is off (ie for fan-only).
   - breeze mostly maps to nature, unless it was already assigned in which case fresh is used.
   - low, mid, high are generally mapped to sleep, fresh, strong. This disambiguates presets from speeds.
   - auto, manual are generally mapped to smart, normal

 # New WiFi Devices

- Simple six switch power strip make-all#795
- position_blinds: a copy of simple_blindsbut with accurate position make-all#715, make-all#794
- Lytmi HDMI sync backlight make-all#790
- Inkbird iBBQ-4T cooking thermometer make-all#750
- Carro PN-04F02D fan/light switch make-all#800
- ZX-DB11 doorbell alarm system make-all#763
- Arlec ceiling fan and light remote control kit make-all#806
- Daewoo DHome air conditioner make-all#807
- Immax Neo Lite Vento fan make-all#811
- Lucking HS6 lock make-all#796
- Blitzwolf BW-IS6 alarm control panel make-all#112
- Neo Coolcam siren make-all#673
- Iebeyond ECH doorbell make-all#815
- Costway portable airconditioner make-all#814
- ZX-CS21 gas leak detector and alarm make-all#679
- Mantra ceiling fan make-all#680
- Aulifants SMES200 breaker switch make-all#683
- Tampa LED lighting system make-all#686

 # New Bluetoth Devices

- Adaprox Fingerbot Plus make-all#795

 # New Zigbee Devices

- CO2 Box air quality monitor make-all#793

 # Improvements to existing devices

- Petlibro feeder: improved compatibility make-all#759
- Kogan LX10 vacuum: improved compatibility and functions make-all#768
- Klarstein Dryfy: deprecate the fan in favor of humidifier modes.
- Proscenic A8: fixed dps assignment make-all#803
- Weau v2: add preset mode support make-all#808
- TOMPD-63LW: phase data is encoded in 8 bytes not 11. make-all#577, make-all#388
- ZX-G30: add an alarm_control_panel entity and deprecate individual buttons make-all#796, make-all#490
- Orion siren: mark compatibility with Elesion siren make-all#816
- Anko fan: Fan speed is a string make-all#22
- Weau 13kW: minor config cleanup

 # General improvements

- camera: init base class (also other entities, but camera was the only one that does anything in its init function) make-all#759
- avoid applying null mappings in reverse make-all#759, make-all#810
- Translations for dehumidifier laundry and purify modes. make-all#682
- cover: duplicate position to current_position for devices where it is known to be accurate. Return open for intermediate values if position is known. make-all#715, make-all#794
- French: add translations for climate and humidifier platforms. make-all#805
- Add support for alarm_control_panel platform make-all#796
- Keep the order of lists of values make-all#808
- polling: correctly wait between polls make-all#824

 # Documentation improvements

- new platforms added and platform list sorted.
- Updated Tuya portal instructions after a rearrangement of their API Explorer make-all#823

2023.6.0

Toggle 2023.6.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
make-all Jason Rumney
Some strings that represent data settings on devices have been change…

…d to make things common for easier translation. Automations that query or set these values will need updating. Also it may take some getting used to the new names in the UI, which may not exactly match the device naming, but should still be close.

The details are as follows:

- climate devices:  many preset_mode, fan_mode and some swing_mode values have changed in order to use common translations where possible, or to use the same strings across similar devices to simplify translations.
- humidifier devices: some mode values have changed to use common translations where possible.

Many of these changes are simply using an all lower case version of the string which was previously capitalised.

The HA common values are:

climate.swing_mode: off, on, vertical, horizontal, both
climate.fan_mode: off, on, auto, low, medium, high, top, middle, focus, diffuse
climate.preset_mode: none, eco, away, boost, comfort, home, sleep, activity
humidifier.mode: normal, eco, away, boost, comfort, home, sleep, auto, baby

The above have translations in many languages already built into Home Assistant, so you should straight away see the improvement if your language is not English.

New groupings created where the available options did not fit into the above:

climate.aircon_extra
   fan_mode: health, medhigh, medlow, natural, quiet, sleep, strong
   swing_mode: topmost, top, middle, down, downmost

climate.thermostat:
   fan_mode: cycle
   preset_mode: manual, program, temp_override, perm_override

climate.combo_floor:
   preset_mode: cool, fan_only, heat, floor_cool, floor_heat

climate.swing_as_powerlevel:
   swing_mode: stop, auto (English name changed to "Heating level")

climate.pool_heatpump:
   preset_mode: smart_heat, quick_heat, quiet_heat, smart_cool, quick_cool, quiet_cool, auto

All the above values have English translations, but other languages will probably show the original value above.

 # New Wifi Devices

- 9-in-1 air quality monitor make-all#753 by @syepes
- Catit Pixi pet feeder make-all#757 by @Mikey887
- PC311TY energy meter make-all#775 by @Doudou14
- SmartSMB SMR006 variant with 8 byte phase info instead of 10 byte make-all#779
- Novadigital quad switch make-all#767 by @xgustavoh
- Galaxy Projector make-all#770
- Proscenic A8 air purifier make-all#776
- DTS238-7 energy meter make-all#745
- Petlibro camera pet feeder make-all#759
- Beok TR8B thermostat make-all#737
- Vivax Cool heatpump make-all#773
- Poolex Q7 (new Qline variant) make-all#777
- Etersky curtain switch make-all#778
- Nedis mobile air conditioner make-all#784
- Linkoze dual button wall switch make-all#774
- Feit light dimmer make-all#752 by @alexeyatbluescape
- Thermex IF 50 V make-all#769 by @g470258

 # New Zigbee devices

- ZTH08ZTU temperature and humidity sensor make-all#785

 # New Bluetooth devices

- Johgee water timer make-all#747

 # Improvements to existing devices

- ZX-M100 sensor is a string make-all#755
- CCT lightbulb: color temperature was inverted make-all#730
- Goldair GPPH heater: handle "auto" power level for compatibility with GPPH 620 make-all#762
- Moebot S: make auto mode optional and handle more fault states for compatibility with Parkside mower make-all#758
- HCT611 water timer: add cloud as well as cloudy weather. Use HA common weather strings,  mark more optional dps make-all#747
- simple switch with timer: add product id for Teckin SP21 make-all#772
- Somgom switch: add initial state dp  make-all#767
- Abalon BCM700D: make reverse switch optional for better compatibility make-all#787
- Hydrotherm X8 water heater: flip operation mode logic so turn_on/turn_off work as expected
- Arlec thermostat smartplug: typo in mapping make-all#791 by @YodaDaCoda

- Include tinytuya version in diagnostics make-all#520
- Bump tinytuya to 1.12.8
- Bump pycryptodome to 3.18
- Use Python 3.11 for tests
- Add support for translation_key for entities make-all#682
- correct the year in the manifest make-all#771
- French translations make-all#780 by @Doudou14
- water_heater: add support for away_mode make-all#769
- vacuum: internal cleanup make-all#792
- device matching: improved debug output make-all#792 by @YodaDaCoda
- Russian translations make-all#769 by @g470258

2023.5.2

Toggle 2023.5.2's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
make-all Jason Rumney
- Goldair GPDH340 dehumidifier make-all#727

- Brennenstuhl WFD 3050 P motion activated spotlight make-all#733
- Kogan LX10 vacuum make-all#725, make-all#723
- generic CCT lightbulb make-all#730
- Stadler Form Karl make-all#743

 # Improvements to existing devices

- many cover devices: set invert attribute correctly in position mapping make-all#715
- BLE Orion lock: improve compatibility and functionality make-all#654
- CBI Astute: fix countdown scale make-all#719
- Moes RGB socket: remove forced update config make-all#691

 # General improvements

- Lights: in color mode, return brightness based on HSV make-all#691
- Diagnostics: fix sub device handling, output sub device info make-all#726
- Allow hidden attribute to be set on mappings, to translate values, but hide them from the list of possible values make-all#727
- siren: fix available_tones handling make-all#705
- lights: use brightness to turn on if there is no switch make-all#743

2023.5.1

Toggle 2023.5.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
make-all Jason Rumney
Bugfix focused release

 # New WiFi devices

- RGBW lightbulb based on Merkury BW904 make-all#689
- CBI Astute circuit breaker make-all#692

 # Improvements to existing devices

- Zemismart roller shade: improve opened and closed detection make-all#672
- Ditua diffuser: enable secondary entities properly make-all#627
- Shinco 30D: improvements from compatible Klarstein DryFy Connect make-all#690
- Energy meters; standardise units to A and kWh
- Arlec panel heated v2: fixed preset naming make-all#578
- loratap curtain switch: map control values even when current value is None make-all#704
- rgbcw lightbulb: use base64 rather than hex format for some unused fields

 # General improvements

- cover: improvements to opened, closed, closing, opening logic. make-all#672
- device config tests: detect misspellings in secondary_entities make-all#504, make-all#627
- GitHub linting: output diffs from black so errors can be seen
- connection test during setup: handle subdevices make-all#693
- lights: handle "white" parameter for switching between RGB and brightness on bulbs that don't support color temperature make-all#689
- return empty array rather than None for no values, to avoid errors iterating make-all#646
- Bump tinytuya to 1.12.7 make-all#688, potential fix for make-all#664, make-all#653, make-all#520, 338
- lights: use HS rather than RGBW color format make-all#691
- device comms: use unique failure messages per call
- connection failure handling: be less eager to rotate protocol versions once it is working make-all#653