Releases: make-all/tuya-local
2024.12.2 End of year housekeeping
Highlights
- WTH bug: None is no longer appended to switch (and some other entity) names.
- climate entities now support swing_horizontal_mode where the device has independant vertical and horizontal swing control.
- area class is now supported for sensors and numbers
- duration class is now supported for numbers too
- 18 new devices, 23 other improvements to existing devices in addition the bulk addition of area and duration classes and swing_horizontal_mode above
- 24 duplicate configs eliminated
Breaking changes
- HA 2024.12 or later is now required #2513, #2596, #2648
- Config merges should be generally backward compatible, but there may be minor differences in the entities which may require manual updates to automations or hand crafted UIs.
- swing mode for some air conditioners/heat pumps has been split into vertical and horizontal
on
/off
controls using the new swing_horizontal_mode. Automations that set or triggered onvertical
,horizontal
orboth
may need to be updated.
New Devices
- Lucci Connect fan #2586 by @daviddreher2
- Moes PTZ indoor security camera #2543
- EzaIoT R9 Lite thermostat #2631 by @janouskovec
- Sboard III mini Weigand I/F #2544
- Aygrochy inline ventilation #2555 by @Kenneth-Audenaert
- Qlima D812 dehumidifier #2477
- WL-RTCZ-05Z human presence sensor #2546
- LSC Smart Connect garden spotlights #2480
- Hauschen smart mirror #2681 by @xtaria
- Eberg Rico R12E2 dehumidifier #2634 by @nerodoxus
- Edge Theory cold plunge #2554 by @tompapajr
- Dr Heater DR008 thermostat #2612 by @ThinkDualBrain
- Xoca DAC2121C energy meter #2652 by @AlexK98
- ZPmeter water meter without valve control #2692 by @keskival
- Axen/Arrielli KW100W combo heat pump #2561
- Speaka TV mount #2568
- Aeratron AE3+ ceiling fan #2574
- BNETA F1-D pet feeder #1083
Improvements to existing device
- ZYM-100W presence sensor: use dp 1 for presence instead of dp 104 #2645
- Aubess 1-gang switch: add fault sensor for compatible T34 #2655 by @AlexK98
- HY combo heat pump: rename child lock to night mode #2510
- Zigbee door sensor: add optional tamper sensor #2659 by @PHeonix25
- EzaIoT thermostat smartplug: fix temperature range #2661 by @Steefph
- Andersson GSH: add compatible Devola Intelligent heater #2665 by @jaimbo
- Klarstein Dryfy Pro Connect: new product id added #2666 by @chris-garbas
- IPS Pro heatpump: new product id added #2666 by @chris-garbas
- Electriq CD20 Pro: deprecated fan entity to replace with select
- Eurom Wall Design Heat 2000: remove legacy type shadowed by separate config
- Kogan bladeless fan: map fresh preset to fresh instead of nature
- Royal air conditioner: use product id from original report #1016
- Akai dryer: make drying time adjustable #2667 by @YodaDaCoda
- Diivoo DWV010: use more sensors from the device #2678 by @jannisan
- SmartMCB SMT006 V2: add charge energy entity from compatible EARU EAMPDW-TY63 #2694
- Kolanky EV charger: fix charging time unit #2675
- Various air conditioners: separate swing into independent vertical and horizontal control #2648
- Avatto blinds: invert direction per usual Tuya behaviour, modify action logic to avoid getting stuck, add problem sensor and direction select #2699
- Zemismart SDM01: make connectivity optional, add class and translation to sensors #2556
- LSC Smart Connect RGB-CCT lightbulb: config renamed to make it available
- VTA Plus Axial fan heater: config renamed to make it available
- Eeese Carl, Otto: fix tank status bit index #2703 by @cnrd
Removed device configs
- Alecoair D12 Home: merged into Shinco 30D
- Alecoair D14: merged into Alecoair D16
- Alecoair D25 Traditio: merged into Greenmigo Alpha Q25 pro
- Avatto ME81: merged into Beok TGR81
- Beca BHT6000: merged into Beca BHT002
- Dcenta dual meter: merged into Matsee 2way meter
- Smartcurtain ACS WT: merged into Dooya curtain
- Eeese Emil: merged into Eeese Adam
- Klarstein Dryfy Pro: merged into Electriq CD20 Pro
- Feit RGB: merged into generic RGBWW lightbulb
- Feyree 3phase: merged into Goodcell EV charger
- Heatstorm HS1500: merged into Heatstorm HS6000GC
- Ironzon lock: merged into Ailrinni fingerprint lock
- Yueqing combo curtain: merged into Loonas curtain
- Momcozy white noise: merged into Loycco sound nightlight
- Thermoval TVT40: merged into Saswell C16 thermostat
- Reiga 52: merged into Ovlaim ceiling fan with light
- Zedar R600: merged into Kabum Smart700 v2023 vacuum
- Moes RFIR: merged into S11 RFIR remote
- Nedis mobile: merged into Goldair portable airconditioner
- Nince RGB: merged into generic RGB LED strip
- Rotenso RONI: merged with Royal air conditioner
- Tellur USB: merged with Woox R4028 power strip
- Peteme lighting: merged with generic Zigbee smart bulb
General improvements
- Use new UnitOfArea enum instead of old constant #2596
- Use new OptionsFlow API #2513
- Add new
area
class to vacuum "Cleaned area" sensors #2596 - Add
duration
class to timer number entities (unadvertised change in HA 2023.11 or so) - Add translations for multiple switch, outlet, voltage, current and power entities. #1708
- climate: Add support for new swing_horizontal_mode #2648
- Entity naming: query underlying class for device class translation support #1856
Development improvements
- unit test added for string values mapped to integers #2586
- utils: common functionality refactored, flexible handling of config filenames given on command-line extended to all utils
- utils: filter same config matching itself from duplicate reports
- Update tests not to use deprecated STATE_CLASS constants due to be removed in HA 2025.1
2024.12.1 a more stable config flow
Highlights
This release is primarily to fix two issues in the config flow, one a longstanding complaint from HA in the log that does not have any real effect, the other an issue in the previous change to consider local product ids as well as cloud ones when the device cannot be automatically discovered locally.
One new device and one improvement to an existing device were also added in the timeframe since 2024.12.0.
New devices
- Poolex Ice Spa 70 heat pump #2541
Improvements to existing devices
- Beca BHT-002 thermostat: add hvac_action where supported, dynamic detection of external thermometer #2640 by GvidasLTU
General improvements
- config_flow: handle the case where device cannot be automatically found on local network during cloud config flow #2643
- config_flow: avoid I/O in the main loop by removing a complex attempt to make a generator into an async generator. #2584
Development improvements
- CI workflows now use Python 3.13 to match HA 2024.12
2024.12.0 Matching products
Breaking changes
- ZYM100M: the deprecated status sensor has been removed. Use the motion and occupancy binary sensors instead
- Jiahong ET72W: energy sensor is removed and replaced with a runtime sensor, which is what it was actually measuring.
Highlights
- Lights with only brightness can now turn off again
- configs can now be matched by product id
- 20 new devices, improvements to 8 devices plus some general improvements
New devices
- Deltaco SH-LW5M LED strip #2542 by @Ladida1
- Friedrich Uni-Fit UCT12A30/UCT14A30 #2524 by @ncd7
- Freidrich Uni-Fit UCT08B10A #2524 by @ncd7
- Richelieu under cabinet lighting #2524 by @ncd7
- Myuet ME82 thermostat #2526 by @blitzdose
- Eeese Emil dehumidifier #2539 by @PipoCanaja
- EM3390TF weather station #2557 by @flapedriza
- Omnibreeze DC2313R tower fan #2566 by @bwarden
- Zemismart SPM01 zigbee energy meter #2494
- Goldair Portable air conditioner #2567 by @BenJamesAndo
- Medion X10 SW vacuum #2503
- Basic IR remote controller #847, #1887
- TOMPD-63WIFI #2618 by @AlexK98
- Morento HY4866-WF #2581 by @md1986
- Brizlabs string lights #2610 by @TimPasquini
- Tech Inc. 3m Neon light strip #2604 by @etamtlosz
- Cecotec BigDry 4000 dehumidifier #2591 by @darth-hp
- Mypin 6L video pet feeder #857
- Neptun Smart water leak control system #2260
- Asahom outdoor lights #2255
- HY multifunction heat pump #2510
- Siguro DH-F300W dehumidifier #2518
Improvements to existing devices
- Smartplug V2 Energy V2: add compatible STY-63TM energy meter id #2570 by @netmaxt3r
- Matsee 2way V2: improve compatibility #2573
- Eurom Sani: add Eurom Sani LBH-63A product #2572 by @Jordi1990
- ZYM100M presence: fix illumination units #2593
- ZYM100M presence: remove deprecated sensor #2595
- Moes temperature and humidity: unknown dp identified #2617 by @AlexK98
- TOMPD 63LW: add new variant with factory reset, power factor and frequency entities #2619 by @AlexK98
- Meaco Aerte Two: improve compatibility for 12L model #2626
- Jiahong ET72W: "energy" sensor is actually a runtime sensor #181
General improvements
- config flow: log the local productKey if it differs from cloud product id
- mask: reimplement as documented, outside of the mapping
- setup/unload: simplify by looping over all_entities rather than primary and secondary separately
- light: force lights with only brightness dp to appear off at 0 brightness #2589
- config flow: use product id to match configs if available #847
- mapping: fix available flags within conditional mappings #2567
- diagnostics: fix redaction of sensitive dps with id > 9 #2547
- icons: improve uv_sterilization icon #2591
Development improvements
- device config tests now allow all dps to be marked optional if there is a product id to match against #847
2024.11.4: Bring the color back
Highlights
- fixes a regression in light brightness handling in 2024.11.3
- 1 new device, 3 existing devices improved
New devices
- Wenzhi W35 human presence sensor #2491
Improvements to existing devices
- PlantsIO Ivy: mark brightness as unavailable with auto-brightness on #2168
- PlantsIO Ivy: mark location dps as sensitive #2347
- Ecostrad Accent iQ: improve config to modern standard #2551
- SNT957W TDE temperature alarm: improve compatibility #2545 by @szupi-ipuzs
General improvements
- Reduce errors logged when devices are offline for extended periods
- light: handle brightness correctly when color mode is changing at the same time. #2552
Development improvements
- Simple Security policy documented
- Dependabot actions enabled
- remove noise from debug log where possible values are checked by HA
- improve debug logging for lights
2024.11.3 Color names
Highlights
- translations now support placeholders, to allow things like "Switch 1", "Switch 2" to share the same translation.
- lights with lists of named colors are now supported as RGB lights.
Breaking changes
- Requires HA 2024.11.0 or later
- fault codes have been moved from primary entities into the problem binary_sensor for many devices.
- Some timer entity names have standardised. Migration should take care of keeping history intact and avoid zombie entities, but any references in automations, scripts or manual config may need updating.
New Devices
- KCVents VT-501 heat recovery ventilator #2450 by @perimos
- New WideTech 7-speed fan #2484 by @r08ertliu
- Curry Smarter roller shutter #2464
- GHome ceiling fan and light switch #2466
- RZTL Aqua Pro humidifier #2509 by @akc-kyiv
- AF3W pet feeder #2370
- Nince RGB LED strip #2497 by @AppelBoomHD
- HLG Infinity alarm #2521 by @brunohenriquy
- Spa Electrics Iris light controller #2472
- Zemismart 3-phase energy meter #2489
- Create VTA+ fan heater #2469 by @MigSo
- EZAIoT thermostat #2490 by @Steefph
- AirRobo P20 vacuum #2531 by @witulu
Improvements to existing devices
- Many devices: standardize problem binary_sensors to contain fault code, where fault code was on primary entity, it has moved.
- Plikc Neve: add support for Plikc Neve Pro W #2483, #2485 by @Tbaile
- Digoo HAMB: rename some entities to match their function #2399
- Sulion ceiling fan remote: merged with identical Arlec ceiling fan remote
- PC321-TY: add Owon branded product #2394
- Raykube A1 Pro Max: compatibility improvement #2500 by @johnnyaug
- Unknown 2way meter: swap total and daily measurements #2481 by @giacomitti
- Multiple timers and energy produced/consumed entities now use translations #2481
- Smoke detector: use correct dp for battery level #2520
- Klarstein Amazonia: remove non-working options #2433
- Tesvor S6 vacuum: compatibility improvement #2519
- Afyeev EV chargers (16 and 32A): don't scale temperature #2108
- Many climate devices: hvac_action logic simplified, as "off" is now automatically handled internally.
- Blitzwolf BWSH2 humidifier, Dynasty BTX fireplace, Gratkit filament dryer, Modernflames Orion fireplace, Tesla S300 purifier, Touchstone Sideline fireplace: use new named_color light support #2472
- Avatto TRV06 radiator valve: additional entities #2457, #2465 by @ciscolyon69
- TYTE-D1: correct current_temperature scale #2534 by @rale
- Eurom Sani towel radiator: fix hvac_action type #2529
- Simple switch timer v2: add compatible Kruidvat switch #2530
- Many devices: improved consistency of optional dp marking
General improvements
- config_flow: improve guidance for hub connected sub devices #1951
- options: remove sub-device cid from options flow, as it is used to form the unique_id for the device, so changing it makes a new device in the registry.
- config_flow: match devices fully asynchronously #2501
- translation placeholder support added #2514
- alarm_control_panel: support new alarm_state enum based state reporting #2445
- light: improve rgbhsv brightness handling #2497
- light: add named_color support #2472
- config_flow: use node_id in preference to uuid if available #1951
Development improvements
- Added a test for consistent marking of optional dps.
2024.11.2 - more bugfixing
2024.11.1 - bugfix
2024.11.1 - a small urgent release
Highlights
- fixes an issue with the previous release's changes that were supposed to fix connection issues #1804, #1013, #2354
- one new device, improvements to 9 devices
New Devices
Improvements to existing devices
- Afyeev 16A charger: use power sensor that works, add product id #2453 by @pimpalaputty
- Weaja gas alarm: fix alarm units, standardise % LEL unit #2434
- ZX GS21 gas alarm: standardise % LEL unit #2434
- Kerui 200W/300W cameras: fix PTZ button types #2410
- Moes star projector: remove config category from main switch #2428
- Digoo HAMB alarm: improve compatibility #2399
- RSE TYWFH301 gate: make raw return_status available, add Home Gate NI600z/800z compatible products #2462
- Avatto TRV06 radiator: improve compatibility #2457
- Klarstein Amazonia: flip door sensor #2433
General improvements
Development improvements
- new device template: guide users to the log to find product id since previous release
2024.11.0 - performance enhanced
Highlights
- support for base64 encoded UTF-16 text fields
- product id logged during cloud setup flow for easy New Device reporting
- better cleanup of stalled devices during reload and reconfiguration
- faster response when using the default persistent connection to devices
Breaking changes
-
vacuum
standby
commands have been replaced by implementing thestop
action.stop
was previously avoided in command lists, to avoid ambiguity with the direction controlstop
command. This change allows both to coexist by keeping the direction control when thecommand
action is called with astop
command, but thestop
action will run the formerstandby
command. If you are using thecommand
action in automations or UI buttons etc with thestandby
command, these will need to be updated to use thestop
action instead. -
status sensors have been standardised to use translations, so output values have changed. If you use the sensor values in automations etc, please check the current pre-translation values in
Developer tools
or the config file, and update your automations.
New Devices
- Medion S10 robot vacuum #2408 by @bvandenbogaard
- Powerworld PW58410 used solely for HVAC #1530
- Digoo DG-HAMB alarm system #2399
- PZIOT E01 energy meter #2311
- Moes Smart control panel #2396
- Smoke detector #2403
- Orion indoor siren #1744
- PGST PW150 home alarm system #2388 by @perimos
- Dual channel smart meter #2282 by @giacomitti
- Point panel heater #2409 by @coutaq
- Bresser 7-channel thermo-hygrometer #2411 by @vveloso
- CCT modeless lightbulb (Connect CSH-GU53WW5W) #1745
- Modena ES-15-SKY water heater #2008
- iHunt 50 air purifier #2348
- CE Smart Home wall outlet #2437 by @IamGimli
- ZPMeter 214C-Z water meter #2412
- HunterTBK video doorbell #2422
- Create Warm Towel Advance bathroom heater #2423
- Klarstein Amazonia dishwasher #2433
- Weaja gas alarm #2434
- Avatto TRV06 radiator valve #2435
- Raykube A1 Pro Max door lock #2439
- Afyeev 16A EV charger #2395 by @pimpalaputty
- Solar Grid GTB series solar inverter #2436 by @SimonAnnetts
- Moes WHT009 thermostat #2441 by @yurkiv
- ESP Fort EC-SPSP USB smartplug #2390 by @norfolkmustard
- Beok TCB38/TCW38 aka RT-70 thermostat #2442
Improvements to existing devices
- PowerWorld PW58410: additional entities from parameter groups #1530
- Faroro pet feeder: improved detection compatibility #2392 by @jon-sanders
- Tefal Xplorer: improved detection compatibility for Rowenta branded model #2397, #2416
- Afyeev EV charger: extend current to 32A, add some sensors #2151, #2108, #2395
- Wonderwall Bornholm: invert display light control #2400
- Poolex Silverline: add quick and quiet cooling modes, problem binary sensor #2402
- Shinco 30D: support compatible Shinco SDZ/YDZ series dehumidifiers #2404 by @strnk
- PlantsIO Ivy: expand enum range based on manufacturer info #2424 by @thewade
- Tongou QCB2: add extra dps and improved detection compatibility #2420
- Mirabella Genio USB: add compatible Hyleton device #2425
- Yinmik water tester: add TDS sensor #2421 by @markxroberts
- Door peephole camera: snapshot is not usable, so deliver as motion event #2426 by @Jon811
- WHM04 doorbell: improve detection compatibility for WGH-ML-001 #2440
- Kerui 200W: add mode optional dps, use privacy as camera switch, buttons for PTZ #2410
- Kerui 300W: make compatible with Fuers 5MP camera, use privacy as camera switch, buttons for PTZ #2410
- Feit RGB light: avoid reverse mapping null
- CCTv1: add matching Laser SMT-WWDL53-L lightbulb #1745
- ETOP HT: make compatible with PNI CT-400 #2346
- PSmart T436: improve detection compatibility #2446
- Standardise factory reset buttons icon and translations #1708
- Standardise status sensors icons and translations #1708
- Standardise filter reset buttons icon and translations #1708
- Shinco 30D: improve compatibility with Klarstein DryFy Connect #2448
General improvements
- vacuums: standardise to use
stop
command rather than standby. - product id is now logged during device detection for easier reporting of new devices.
- add utf16b64 type for extracting UTF-16 strings from base64 encoded dps #2388
- ensure sockets are promptly closed when pausing or stopping devices #1804, #1013, #2354
- removed the rate limiting of commands when using persistent connection #2410
Development improvements
- Bug report template converted to a form
- Device config tests: output config file name when duplicate entities are detected.
- Cloud support refactored into a separate file for future possible reuse outside of the config flow.
2024.10.0 Availability
Highlights
- devices can now specify which entities and options are available through dp values.
- hvac_action now reports off when the device is off, regardless of what the device says.
- humidifiers now support action reporting
- 39 new devices, improvements to 17 existing devices
- 13 pull requests merged from 12 contributors
New devices
- Heatstorm DH-100TWI heater #2309
- HRT AS90 climate alarm #1497
- iPettie WS pet feeder #2310
- Holman Helios weather station #1617
- Nybro heater #1978
- Light sensor #2185 by @maddijoyce
- WDYK 4P 100A energy meter #1648
- Ballu Aura air conditioner #2305 by @IATkachenko
- Reiga ceiling fan (without light) #2335 by @DennisGeisse
- EARU DPN circuit breaker #1739
- myQ TD8 video doorbell #1812
- Sygonix Smarter dehumidifier #2340
- Giatsu VAW 2 heat pump water heater #2360
- Brilliant ceiling fan with light #2363
- LSC Smart Connect ceiling light #2359 by @a-r-j-a-n
- Klarstein Wonderwall Bornholm IR panel heater #2317
- Avatto curtain with double lightswitch #1892
- MatSee Plus energy meter (V2) #2336
- Enbrighten curtain lights #1989
- Kesser IR heater and light #2367 by @eldi0s
- Kogan KASMGPH heater #2374 by @willieseabrook
- STL siren #2350
- Goldair Platinum SleepSmart electric blanket #2362
- Kiturami NCTR-100 water and heating thermostat #2349
- Windmill window air conditioner #2357 by @ianjsikes
- S11+ IR/RF remote #2378 by @luis-lain
- Sulion Cadillac fan remote #2379 by @luis-lain
- Linda Smart 7S video doorbell #2369
- Vine TJ550 thermostat #2371
- AFYEEV EV charger #2108
- PSmart T436 thermostat #2373
- Noeifevo Q21W EV charger #2130
- Inkbird IPT-2CH reptile thermostat #2381
- Calibo Cloudfan DC #1286
- Powerworld PW58330 water and air heat pump #1530
- Powerworld PW58410 water and air heat pump #1530
- Petoneer Fresco Mini pet fountain #2161
- Loratap RR620W-JL 2-gang switch #2382 by @neilflatley
- Cronos GPH-D-DA heater #2299
Improvements to existing devices
- Galaxy projector: add scenes, icons, alternative effects #1507
- BLE HS06 lock: add compatible C502 lock #1813
- Duux Blizzard: add compatible Klarstein Kraftwerk Smart #2312
- Lublueblu vacuum: fix activation, add more dps #2334
- Stadlerform Roger purifier: add additional entities #2332 by @arnkit
- Duux Blizzard: use
available
flag for heat and ionizer #2312, #2337 - Fairland X20: use
available
flag for boost and cool, use pool_heatpump icon and presets #2337 - Fisher Summer: use
available
flag for hswing and others #2337 - Sanden heatpump: fix energy sensor scale #2355, #2356 by @sorrison
- Sunbeam dual bed warmer: improve compatibility #2249
- Cleverio doorbell: correct humanoid filter switch #2295
- PIR spotlight: add support for LSC floodlight #2022
- BLE plant moisture: add a refresh button #1696
- Loratap zigbee curtain: add compatibility with WiFi device #2077
- Create fan: improve compatibility #2383
- BHT002 GBLW thermostat: add Heat state #2386
- Deakon EVI water heat pump: add diagnostic and parameter entities #2338
- Dongguan garrage door: add voice switch #2389
General improvements
- Added
available
flag support for entities and select options. #2337 - water_heater: fix behaviour when temperature is missing #2353 by @death-droid
- climate: make hvac_action always "off" when hvac_mode is "off"
- humidifier: support action property #2364
2024.9.1 Catching up
2024.9.1 Catching up
Notable changes
- should fix the config flow issues in 2024.9.0
- may improve the hub issues in 2024.9.0 (rewrite of connection code still pending to fix hubs properly)
- 21 new devices, including some older submissions that were deprioritised due to missing information.
- improvements to 11 existing devices (not counting translation improvements)
- standardised icons and translations for Sleep switches, and Language, Initial state and Mopping selectors
Breaking changes
- Requires Home Assistant 2024.9 or later #2239
New devices
- Aktobis WDH-310EK dehumidifier #2275, #2276 by @Athemis
- Dream Maker Feel fan #2277 by @BenJamesAndo
- Fujicool Yuzu heat pump #2262 by @carmelo42
- Malmbergs single dimmer module #1588
- Malmbergs dual dimmer module #1589
- Atorch AT4PW energy meter #1038
- Cleverio AP100 air purifier #2284
- Calex aroma diffuser #1164
- Tongou TO-Q-SYS-WT circuit breaker #2285
- Petrust pet fountain #1173
- Cleverio CD200 doorbell #2295
- Fairland RMIC06 pool heat pump #1301
- Tonepie T1 Pro (v2) cat litter box #2313 by @vossim
- Sanden GAU-A45HPD water heat pump controller #1940
- Puppy Kitty pet feeder #2301 by @Aegeontis
- Silvercrest HF-6602T air fryer #2298
- eLinkSmart KH-SY2626 fan #1474
- HDMI TV ambient lighting 65 #1475
- iLonda L88 fish feeder #1619
- iHunt 400m³/h air purifier #1485
- Inventor Comfort air conditioner #1486
Improvements to existing devices
- EM3378 weather station: fix some mappings and units #419
- Gaqqee KWS-302WF: fix scaling of some sensors #2257
- TCS024B plant moisture sensor: fix scaling of temperature #2293 by @almirus
- Atorch AT2PL: add refresh rate control from compatible GR2PWS #2299
- SmartplugV2 EnergyV3: add compatible EARU 1P breaker device #2299
- Moebot S lawnmower: support new RETURNING state #2278, #2239 by @chmielowiec
- CCT v1 lightbulb: add compatible Geeni bulbs #1360
- GE Jasco toggle switch: add compatible Loratap switch #1446
- Lefant M213 vacuum: improve compatibility for M210P #1467
- Lefant T700: improve compatibility in line with other Lefants #1467
- Goldair 101cm fan: fix preset definitions
General improvements
- config flow: only pause/resume active devices when testing #2288
- fan: enable TURN_OFF when fan has no switch but allows setting speed to 0 #2164
- valve: allow mapped values to define a variable valve #1173
- climate: expanded range of preset translations for pool_heatpump #1301
- water_heater: set support flag for ON_OFF when appropriate #2315
- subdevices: use cid as tinytuya device id, as it must be unique #1054, #2289
- switch: standardise icon and translations for Sleep switches #1708
- select: standardise icon and translations for Language, Initial state and Mopping selectors #1708
- translations: filled in missing translations by AI #1708 (except some Urdu that the AI could not handle)
Development improvements
- new util/duplicates.py: to detect possible duplicates of submitted configs