Add support for Hiniso dehumidifier (#5025)
* Add support for Hiniso dehumidifier
Adds a new dehumidifier device definition for tuya-local with updated DPS mappings based on live Tuya cloud data.
Key changes:
- Updated mode mapping to match actual device states (dehumidify, drying, sleep)
- Added support for fan speed (low / mid / high)
- Added UV and ionizer switches based on verified DPS points
- Added child lock support
- Fixed tank_full (remind, DP 25) handling by supporting both raw and quoted enum values ("on"/"off")
- Improved fault handling with bitmap-based sensor description mapping
This configuration is based on real device telemetry from Tuya cloud API responses and tested state transitions.
Notes:
- DPS 25 (remind) changes between "off" and "on" when tank state changes
- Enum values may be received inconsistently as raw or quoted strings depending on Tuya firmware
- Mapping is made defensive to ensure correct binary_sensor state evaluation in tuya-local
Tested behavior:
- All states and commands
* Code changes after comments from owner
- Boolean options removed from tank full sensor (is string only)
- fault_code included to bitfield with attribute with the raw value.
- using fan entity with speed mapped to percentages
- uv sterilization used with translation_key
* Fix formatting in hiniso_dehumidifier.yaml
* fix(hiniso_dehumidifier): replace name with translation key
- reduce excessive vertical whitespace, it makes it more work to follow the config
- use "dehumidifier" translation key for fan
- remove icon override from child lock, as translation already defines a suitable icon
PR #5025
---------
Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>