Choose vacuum, vac & mop or mop on the vacuum card, and a climate card for the CYD (0.2.46)
App 0.2.46 / firmware 0.2.39: - The vacuum's state message carries extras from its own device: the cleaning mode and water selects (found by translation key, then entity id ending, so localized ids work), the suction speeds to offer, the battery sensor (HA 2026.8 dropped battery_level), charging and the current room. Speeds and water levels a mode covers move into the mode row; Custom only while in use. The manager watches these entities and resends only the vacuum's message when one changes. - Vacuum card redesign on both boards: robot with state, battery, charging bolt and room; Start (Pause, Resume) and Dock; then segmented rows for mode, suction and water, showing only the rows the chosen mode uses. Taps show at once and wait for Home Assistant; Locate is a round button in the Guition hero. - CYD climate card without the arc: big setpoint between large -/+ keys (debounced, hold to repeat) and one row of mode keys in HA's order and colours, with a more key for fan and swing. - Both profiles clear climate_edit_pending when the climate card is closed, instead of running ui_refresh every second while the flag stayed set. Tested with the owner's Roborock S8 on HA 2026.9.1 (live data, OTA-flashed bench boards) and with host renders of both boards; see docs/TEST_RESULTS_0246.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# Test results app 0.2.46 / firmware 0.2.39 (2026-09-15)
|
||||
|
||||
Cleaning mode, suction and water on the vacuum card, the vacuum card redesign on both boards, the
|
||||
new CYD climate card and the cleared climate edit flag. See CHANGELOG 0.2.46 and RELEASING
|
||||
"Compatibility 0.2.46".
|
||||
|
||||
## Automated
|
||||
|
||||
- Python (`.venv-portal`): 170 tests OK.
|
||||
- New: `tests/test_vacuum_card.py` covers the extras on the owner's Roborock data (Dutch entity
|
||||
ids), a robot without a mode select, a plain vacuum, entity id endings, disabled entities and
|
||||
unknown modes (an Ecovacs-style `work_mode`), bounded options, and that a select change marks
|
||||
the vacuum dirty and resends only its message.
|
||||
- C++ (`clang++ -std=c++17 -Wall -Wextra -Werror -I . -I components/smart_display`): 13/13 PASS;
|
||||
`test_tile_controls.cpp` adds `mode_color`, `vacuum_rows`, `vacuum_role`, `shown_value`,
|
||||
`settle_suction` and `choice_action`.
|
||||
- `generate_packages.py --check` green, `generate_icons.py --check` verified (150 pickable icons,
|
||||
179 glyphs).
|
||||
- ESPHome 2026.6.2 compile SUCCESS, one after another: `easy-cyd-device.yaml` (RAM 31.9%, flash
|
||||
78.5%), `easy-guition-device.yaml` (RAM 32.8%, flash 18.8%), `guition-device.yaml` (RAM 32.9%,
|
||||
flash 19.8%), `device.yaml` (RAM 32.0%, flash 83.2%). Packages carry `SCREEN_FIRMWARE_VERSION` 0.2.39.
|
||||
|
||||
## Home Assistant facts (owner's HA 2026.9.1, read only)
|
||||
|
||||
- Roborock S8 (`roborock.vacuum.a51`): `vacuum.s8` has no `battery_level`; its device holds
|
||||
`select.woonkamer_s8_schoonmaakmodus` (translation key `cleaning_mode`: vacuum, vac_and_mop,
|
||||
mop, custom), `select.s8_intensiteit_van_dweilen` (`mop_intensity`: off, mild, standard, intense,
|
||||
custom), `sensor.s8_batterij` (battery), `binary_sensor.s8_opladen` (battery_charging) and
|
||||
`sensor.s8_huidige_kamer` (`current_room`). Entity ids follow the UI language, so matching goes
|
||||
by translation key.
|
||||
- The Roborock cleaning mode select exists in HA 2026.8.0 and 2026.9.1 (`RoborockCleaningModeSelectEntity`).
|
||||
- `core.extras` on this data: mode vacuum / vac_and_mop / mop (roles `vbm`), water mild / standard /
|
||||
intense, suction quiet … max_plus, battery, charging and room; the message is 612 bytes.
|
||||
|
||||
## Bench boards (OTA)
|
||||
|
||||
- Both Easy Setup builds uploaded over the network; `device_info` reports project 0.2.39, compiled
|
||||
2026-09-15 15:11:48 (CYD) and 15:12:20 (Guition), matching the build logs.
|
||||
- The real `vacuum.s8` state with the new extras, built by the app code from live HA data, was sent
|
||||
through `screen_message` and the card opened with `preview_runtime_card` on both boards. The
|
||||
Guition capture (`capture_ui.py`) shows Docked, 83 % with the charging bolt, Start cleaning and
|
||||
Dock, Vac & mop, Max and Intense. The owner looked at both screens.
|
||||
- The owner tapped Vacuum on the CYD: Home Assistant switched `select.woonkamer_s8_schoonmaakmodus`
|
||||
to `vacuum` (15:16:12) and the robot set its water to off and suction to balanced. The production
|
||||
app was still 0.2.45 and resent the vacuum without the new extras, so the card fell back to
|
||||
suction only, as described for mixed versions in the CHANGELOG.
|
||||
|
||||
## Renders (ESPHome host + SDL, both boards, this release's code)
|
||||
|
||||
- Vacuum card with the owner's data in ten states: docked and charging, cleaning with the room,
|
||||
mop only, vacuum only, Custom (note instead of rows), returning, error, paused at 12 % (red
|
||||
battery), a vacuum without selects (small hero on the CYD) and an Ecovacs-style robot with long
|
||||
labels (Vac, then mop; Ultra high). No label is cut off; the mode row keeps its place.
|
||||
- CYD climate card: heating with humidity, an air conditioner with five modes plus ···, and off
|
||||
(grey setpoint). The README images `guition-vacuum.png`, `cyd-vacuum.png` and `cyd-climate.png`
|
||||
come from these renders.
|
||||
|
||||
## Not tested / for the owner
|
||||
|
||||
- The vacuum rows with app 0.2.46 on the Yellow after the store update (live updates of mode,
|
||||
water, battery and room while the robot cleans).
|
||||
- The CYD climate card by hand with the real air conditioner (− / + taps, holding, mode keys, ···).
|
||||
- Other brands only through the tests with their documented entity names; no Dreame or Ecovacs
|
||||
robot was available.
|
||||
Reference in New Issue
Block a user