aa2137f3f8
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>
4.1 KiB
4.1 KiB
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.pycovers 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-stylework_mode), bounded options, and that a select change marks the vacuum dirty and resends only its message.
- New:
- C++ (
clang++ -std=c++17 -Wall -Wextra -Werror -I . -I components/smart_display): 13/13 PASS;test_tile_controls.cppaddsmode_color,vacuum_rows,vacuum_role,shown_value,settle_suctionandchoice_action. generate_packages.py --checkgreen,generate_icons.py --checkverified (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 carrySCREEN_FIRMWARE_VERSION0.2.39.
Home Assistant facts (owner's HA 2026.9.1, read only)
- Roborock S8 (
roborock.vacuum.a51):vacuum.s8has nobattery_level; its device holdsselect.woonkamer_s8_schoonmaakmodus(translation keycleaning_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) andsensor.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.extrason this data: mode vacuum / vac_and_mop / mop (rolesvbm), 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_inforeports project 0.2.39, compiled 2026-09-15 15:11:48 (CYD) and 15:12:20 (Guition), matching the build logs. - The real
vacuum.s8state with the new extras, built by the app code from live HA data, was sent throughscreen_messageand the card opened withpreview_runtime_cardon 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_schoonmaakmodustovacuum(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.pngandcyd-climate.pngcome 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.