feat(yuhome_laundry_rack): add Yu Prime (#6307)
Adds the YU HOME Yu Prime to `yuhome_laundry_rack`. The Prime is the
basic model: lift and light,
no UV, drying or voice.
Product id: `9yqs0oycooefxxwz`
LOCAL DPS from the config flow:
```
{"1": false, "2": "stop", "3": 0, "4": false, "9": "stop", "18": 0}
```
Changes:
- DPs 5, 6, 7 and 104 are now optional and hidden when unavailable, as
the timers already are.
- DP 3 is also mapped as `current_position`. It streams the live
position while the rack moves
(about 5 updates a second; 0 = fully up), so HA shows the real position,
and a state instead of
`unknown`, when the rack stops partway. On the Prime, writes to DP 3 are
ignored; I left
`position` in place because the data model says `rw` and it may work on
the Turbo.
- DP 18 gets a `description`: an obstacle rebound on the Prime sets it
to 2 (fault2) for about
0.3 s, then back to 0.
Tested on a Prime with HA 2026.9.3 and Tuya Local 2026.9.2: up, down,
stop, light, the position
stream, and a deliberate obstacle rebound, while moving it from HA, the
IR remote and Smart Life.
`yamllint`, `ruff` and `pytest` pass locally.
I prepared this with Claude Code, and checked the config and the test
results against the device
myself.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: rmschots <2806802+rmschots@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>