Skip to content

Releases: koosoli/ESPHomeDesigner

v1.0.0-rc.12.8

20 Apr 08:02

Choose a tag to compare

v1.0.0 RC12.8 - LVGL Trigger Routing & Package Merge Hardening

Release Date: April 20, 2026

This RC12.8 follow-up is a targeted hardening release for Issue #385. Real-world feedback on the first YAML round-trip implementation exposed a deeper exporter bug: custom widget state triggers for lights could be merged into LVGL brightness sensor blocks as a second on_value, producing invalid ESPHome YAML, and package-based outputs could still end up with repeated mergeable sections in certain regenerated layouts. RC12.8 fixes both paths and adds regression coverage around the exact slider-plus-icon failure pattern reported from the field.

Stability & Verification

  • Mode-Aware Custom Trigger Routing (Issue #385): Widget-level custom triggers now keep their resolved on_state versus on_value mode when queued for export, so binary-domain entities such as light.* no longer get misrouted into numeric sensor sections just because the same entity_id appears there.
  • Single-Block Trigger Merging (Issue #385): Sensor export now merges all matching trigger actions for one YAML item into a single trigger block, preventing duplicate on_value: keys when a light-backed LVGL slider and a custom widget trigger both reference the same Home Assistant light.
  • Repeated Section Coalescing (Issue #385): YAML section merging now coalesces repeated sensor: and text_sensor: blocks that reappear later in package-based output, reducing the chance of regenerated package snippets carrying duplicate mergeable sections after lvgl:.
  • Regression Coverage Expansion: Added focused frontend regressions for the light-slider/custom-trigger collision, mixed trigger-source single-item merging, and repeated mergeable-section coalescing in package-style YAML merges.

v1.0.0 RC12.7 - Persistence & LVGL YAML Round-Trip Fixes

Release Date: April 19, 2026

This RC12.7 follow-up extends the earlier storage fix from Issue #382 with two more persistence-focused corrections: restoring grouped-widget parent references from Issue #384 and adding a supported LVGL custom state-trigger path for the YAML round-trip gap reported in Issue #385. The result is a safer save/load path for grouped layouts and a more honest, more durable workflow for custom LVGL automations.

Stability & Verification

  • Sensor Text Secondary Entity Persistence (Issue #382): Sensor Text widgets continue to preserve entity_id_2 through backend save/load, so the secondary Home Assistant entity survives alongside attribute2 instead of dropping on reload.
  • Grouped Widget Parent Persistence (Issue #384): The backend widget model now stores and reloads parentId, so children remain attached to their group containers after layouts are saved and loaded again.
  • Supported LVGL State Trigger Round-Trip (Issue #385): LVGL layouts now have a first-class widget-level state-trigger path that stores the trigger entity, trigger mode, and raw then: action YAML in widget props, then injects those actions back into generated sensor, text_sensor, or binary_sensor sections during export.
  • Import Recovery & Honesty Warnings (Issue #385): YAML imports now recover the supported marked state-trigger blocks back into widget props when possible, and show a warning when unsupported custom automations remain raw YAML only instead of pretending they are fully editable on the canvas.
  • Regression Coverage Expansion: Added backend model/storage regressions for grouped-widget parent persistence plus frontend tests that cover the new LVGL state-trigger editor controls, trigger registration/export injection, import recovery, and warning flow.

v1.0.0 RC12.6 - Cookbook-Aligned Light Slider Actions

Release Date: April 17, 2026

This RC12.6 follow-up carries the next real-device correction for Issue #371. After the RC12.5 release restored raw brightness tracking and fixed the mixed-type lambda build failure, additional user testing showed that newer ESPHome/Home Assistant combinations behave more reliably when generated LVGL light sliders follow the current cookbook pattern for action dispatch. RC12.6 moves that behavior onto its own release line, refreshes the visible release metadata, and rebuilds the shipped frontend assets for a clean follow-up cut.

Stability & Verification

  • Cookbook-Aligned Light Slider Actions (Issue #371): Light-backed LVGL sliders now export homeassistant.action with raw brightness values and trigger the HA call on on_release, matching the current ESPHome LVGL light-brightness cookbook pattern and avoiding the silent no-op behavior reported with the older homeassistant.service path on newer Home Assistant installs.
  • Regression Coverage Expansion: Updated the LVGL slider regression tests to lock the homeassistant.action payload shape, the raw integer brightness lambda output, and the on_release event path for light-backed sliders without changing the existing non-light slider service flow.
  • Release Metadata Refresh: Updated the package version, package lock metadata, Home Assistant manifest version, visible header label, release notes heading/date, and rebuilt frontend assets for the RC12.6 release line.

v1.0.0 RC12.5 - Light Brightness Attribute Compatibility

Release Date: April 16, 2026

This RC12.5 follow-up is a narrow post-release correction for Issue #371. Real-device feedback after the RC12.4 release showed that some Home Assistant lights publish live state through the raw brightness attribute instead of brightness_pct, and that the generated light-slider lambdas could still fail ESPHome compilation because different branches returned mixed numeric types. RC12.5 fixes both issues, refreshes the visible release metadata, and rebuilds the shipped frontend assets for a clean follow-up cut.

Stability & Verification

  • Home Assistant Light Attribute Compatibility (Issue #371): Light-backed LVGL sliders now subscribe to the HA brightness attribute for initial state and live updates, which matches the state model shown in Home Assistant Developer Tools for integrations that only expose raw 0..255 brightness values.
  • Compile-Safe Light Slider Lambdas (Issue #371): Generated light-slider value, lvgl.slider.update, and light.turn_on brightness lambdas now keep a consistent float return type across every branch, eliminating the ESPHome C++ inconsistent types 'float' and 'int' deduced for lambda return type build error seen on generated YAML.
  • Regression Coverage Expansion: Updated the LVGL slider regression tests to lock the raw brightness attribute path, the 0..255 scaling behavior, and the new compile-safe lambda output for both default and scaled slider ranges.
  • Release Metadata Refresh: Updated the npm package version, package lock metadata, Home Assistant manifest version, visible header label, release notes heading/date, and rebuilt frontend assets for the RC12.5 release line.

v1.0.0 RC12.4 - OpenAI GPT-5 Compatibility & Guition 3.5 Support

Release Date: April 15, 2026

This RC12.4 follow-up rolls in four concrete post-RC12.3 fixes: restoring OpenAI GPT-5 prompt generation after the token-parameter change reported in Issue #379, promoting the Guition 3.5" JC4832W535 board discussed in Issue #340 to a cleaner built-in package/profile path, finishing the Home Assistant light state-tracking follow-up from Issue #371, and taking one more small cleanup pass on the generated deep-sleep control flow from Issue #356. It also synchronizes the visible release metadata and rebuilds the shipped frontend assets for today's RC12.4 cut.

Stability & Verification

  • OpenAI GPT-5 Request Compatibility (Issue #379): The OpenAI chat-completions path now sends max_completion_tokens for gpt-5* models while preserving max_tokens for older models, so GPT-5 layout generation works again without regressing the existing GPT-4/OpenAI flow.
  • Guition JC4832W535 v3 Package Alignment (Issue #340): The bundled 3.5" Guition hardware package now targets the documented JC4832W535 QSPI display model, includes the linked AXS15231 touchscreen configuration, and captures the working calibration/transform/rotation values needed for the board's v3 pinout.
  • Stable Device ID with Legacy Alias: Added a supported built-in guition_esp32_jc4832w535 device profile for new layouts while keeping the older misnamed internal id as a hidden compatibility alias so previously saved layouts continue to resolve the same hardware package.
  • LVGL Light State Tracking Completion (Issue #371): Light-backed LVGL sliders now push explicit lvgl.slider.update actions from the Home Assistant brightness_pct attribute, synced LVGL buttons/switches/checkboxes now update their checked state from HA with trigger_on_initial_state: true, and scaled slider ranges such as 0..255 now map cleanly to brightness_pct in both directions so the widgets track HA, each other, and boot-time state correctly.
  • Deep-Sleep Guard Consolidation (Issue #356): The generated deep_sleep_cycle script now performs the firmware-flash delay and stay-awake retry handling once at the top of the script before branching into the overnight until: or normal deep-sleep entry path, which keeps the RC12.3 behavior fix w...
Read more

v1.0.0-rc.12.7

19 Apr 13:03

Choose a tag to compare

v1.0.0 RC12.7 - Persistence & LVGL YAML Round-Trip Fixes

Release Date: April 19, 2026

This RC12.7 follow-up extends the earlier storage fix from Issue #382 with two more persistence-focused corrections: restoring grouped-widget parent references from Issue #384 and adding a supported LVGL custom state-trigger path for the YAML round-trip gap reported in Issue #385. The result is a safer save/load path for grouped layouts and a more honest, more durable workflow for custom LVGL automations.

Stability & Verification

  • Sensor Text Secondary Entity Persistence (Issue #382): Sensor Text widgets continue to preserve entity_id_2 through backend save/load, so the secondary Home Assistant entity survives alongside attribute2 instead of dropping on reload.
  • Grouped Widget Parent Persistence (Issue #384): The backend widget model now stores and reloads parentId, so children remain attached to their group containers after layouts are saved and loaded again.
  • Supported LVGL State Trigger Round-Trip (Issue #385): LVGL layouts now have a first-class widget-level state-trigger path that stores the trigger entity, trigger mode, and raw then: action YAML in widget props, then injects those actions back into generated sensor, text_sensor, or binary_sensor sections during export.
  • Import Recovery & Honesty Warnings (Issue #385): YAML imports now recover the supported marked state-trigger blocks back into widget props when possible, and show a warning when unsupported custom automations remain raw YAML only instead of pretending they are fully editable on the canvas.
  • Regression Coverage Expansion: Added backend model/storage regressions for grouped-widget parent persistence plus frontend tests that cover the new LVGL state-trigger editor controls, trigger registration/export injection, import recovery, and warning flow.

v1.0.0 RC12.6 - Cookbook-Aligned Light Slider Actions

Release Date: April 17, 2026

This RC12.6 follow-up carries the next real-device correction for Issue #371. After the RC12.5 release restored raw brightness tracking and fixed the mixed-type lambda build failure, additional user testing showed that newer ESPHome/Home Assistant combinations behave more reliably when generated LVGL light sliders follow the current cookbook pattern for action dispatch. RC12.6 moves that behavior onto its own release line, refreshes the visible release metadata, and rebuilds the shipped frontend assets for a clean follow-up cut.

Stability & Verification

  • Cookbook-Aligned Light Slider Actions (Issue #371): Light-backed LVGL sliders now export homeassistant.action with raw brightness values and trigger the HA call on on_release, matching the current ESPHome LVGL light-brightness cookbook pattern and avoiding the silent no-op behavior reported with the older homeassistant.service path on newer Home Assistant installs.
  • Regression Coverage Expansion: Updated the LVGL slider regression tests to lock the homeassistant.action payload shape, the raw integer brightness lambda output, and the on_release event path for light-backed sliders without changing the existing non-light slider service flow.
  • Release Metadata Refresh: Updated the package version, package lock metadata, Home Assistant manifest version, visible header label, release notes heading/date, and rebuilt frontend assets for the RC12.6 release line.

v1.0.0 RC12.5 - Light Brightness Attribute Compatibility

Release Date: April 16, 2026

This RC12.5 follow-up is a narrow post-release correction for Issue #371. Real-device feedback after the RC12.4 release showed that some Home Assistant lights publish live state through the raw brightness attribute instead of brightness_pct, and that the generated light-slider lambdas could still fail ESPHome compilation because different branches returned mixed numeric types. RC12.5 fixes both issues, refreshes the visible release metadata, and rebuilds the shipped frontend assets for a clean follow-up cut.

Stability & Verification

  • Home Assistant Light Attribute Compatibility (Issue #371): Light-backed LVGL sliders now subscribe to the HA brightness attribute for initial state and live updates, which matches the state model shown in Home Assistant Developer Tools for integrations that only expose raw 0..255 brightness values.
  • Compile-Safe Light Slider Lambdas (Issue #371): Generated light-slider value, lvgl.slider.update, and light.turn_on brightness lambdas now keep a consistent float return type across every branch, eliminating the ESPHome C++ inconsistent types 'float' and 'int' deduced for lambda return type build error seen on generated YAML.
  • Regression Coverage Expansion: Updated the LVGL slider regression tests to lock the raw brightness attribute path, the 0..255 scaling behavior, and the new compile-safe lambda output for both default and scaled slider ranges.
  • Release Metadata Refresh: Updated the npm package version, package lock metadata, Home Assistant manifest version, visible header label, release notes heading/date, and rebuilt frontend assets for the RC12.5 release line.

v1.0.0 RC12.4 - OpenAI GPT-5 Compatibility & Guition 3.5 Support

Release Date: April 15, 2026

This RC12.4 follow-up rolls in four concrete post-RC12.3 fixes: restoring OpenAI GPT-5 prompt generation after the token-parameter change reported in Issue #379, promoting the Guition 3.5" JC4832W535 board discussed in Issue #340 to a cleaner built-in package/profile path, finishing the Home Assistant light state-tracking follow-up from Issue #371, and taking one more small cleanup pass on the generated deep-sleep control flow from Issue #356. It also synchronizes the visible release metadata and rebuilds the shipped frontend assets for today's RC12.4 cut.

Stability & Verification

  • OpenAI GPT-5 Request Compatibility (Issue #379): The OpenAI chat-completions path now sends max_completion_tokens for gpt-5* models while preserving max_tokens for older models, so GPT-5 layout generation works again without regressing the existing GPT-4/OpenAI flow.
  • Guition JC4832W535 v3 Package Alignment (Issue #340): The bundled 3.5" Guition hardware package now targets the documented JC4832W535 QSPI display model, includes the linked AXS15231 touchscreen configuration, and captures the working calibration/transform/rotation values needed for the board's v3 pinout.
  • Stable Device ID with Legacy Alias: Added a supported built-in guition_esp32_jc4832w535 device profile for new layouts while keeping the older misnamed internal id as a hidden compatibility alias so previously saved layouts continue to resolve the same hardware package.
  • LVGL Light State Tracking Completion (Issue #371): Light-backed LVGL sliders now push explicit lvgl.slider.update actions from the Home Assistant brightness_pct attribute, synced LVGL buttons/switches/checkboxes now update their checked state from HA with trigger_on_initial_state: true, and scaled slider ranges such as 0..255 now map cleanly to brightness_pct in both directions so the widgets track HA, each other, and boot-time state correctly.
  • Deep-Sleep Guard Consolidation (Issue #356): The generated deep_sleep_cycle script now performs the firmware-flash delay and stay-awake retry handling once at the top of the script before branching into the overnight until: or normal deep-sleep entry path, which keeps the RC12.3 behavior fix while removing duplicated guard blocks from the generated YAML.
  • Regression Coverage Expansion: Added focused tests for the GPT-5/OpenAI request payload branch and for surfacing the corrected Guition board id without exposing the legacy alias as a new supported device choice.

v1.0.0 RC12.3 - Deep Sleep Follow-Through

Release Date: April 12, 2026

This RC12.3 follow-up takes another pass at the remaining deep-sleep behavior from Issue #356. RC12.2 was too optimistic here: the overnight until: branch still dropped out when users chose Ultra Eco (Deep Sleep) and relied on the shared sleep-hours controls. This release fixes that mismatch, trims the misleading deep-sleep refresh bookkeeping in the generated script, and rebuilds the shipped assets for a clean RC12.3 cut.

Stability & Verification

  • Deep-Sleep Overnight Window Fix (Issue #356): Generated deep_sleep_cycle now uses the configured shared sleep window in Deep Sleep mode as well as Light Sleep mode, so users who set overnight hours and export Ultra Eco (Deep Sleep) once again get the deep_sleep.enter until: / time_id: ha_time branch at night.
  • Deep-Sleep Script Cleanup (Issue #356): manage_run_and_sleep no longer emits the unused interval and is_sleep_time bookkeeping in the epaper deep-sleep path, which makes the generated YAML match the real execution flow more closely.
  • Regression Coverage Expansion: Added focused generator tests for the Deep Sleep plus sleep-hours path and for omitting the unused refresh bookkeeping from the deep-sleep loop.

v1.0.0 RC12.2 - Widget State Accuracy & Release Polish

Release Date: April 11, 2026

This RC12.2 follow-up rolls the remaining [Issue #356](#3...

Read more

v1.0.0-rc.12.6

17 Apr 10:20

Choose a tag to compare

v1.0.0 RC12.6 - Cookbook-Aligned Light Slider Actions

Release Date: April 17, 2026

This RC12.6 follow-up carries the next real-device correction for Issue #371. After the RC12.5 release restored raw brightness tracking and fixed the mixed-type lambda build failure, additional user testing showed that newer ESPHome/Home Assistant combinations behave more reliably when generated LVGL light sliders follow the current cookbook pattern for action dispatch. RC12.6 moves that behavior onto its own release line, refreshes the visible release metadata, and rebuilds the shipped frontend assets for a clean follow-up cut.

Stability & Verification

  • Cookbook-Aligned Light Slider Actions (Issue #371): Light-backed LVGL sliders now export homeassistant.action with raw brightness values and trigger the HA call on on_release, matching the current ESPHome LVGL light-brightness cookbook pattern and avoiding the silent no-op behavior reported with the older homeassistant.service path on newer Home Assistant installs.
  • Regression Coverage Expansion: Updated the LVGL slider regression tests to lock the homeassistant.action payload shape, the raw integer brightness lambda output, and the on_release event path for light-backed sliders without changing the existing non-light slider service flow.
  • Release Metadata Refresh: Updated the package version, package lock metadata, Home Assistant manifest version, visible header label, release notes heading/date, and rebuilt frontend assets for the RC12.6 release line.

v1.0.0 RC12.5 - Light Brightness Attribute Compatibility

Release Date: April 16, 2026

This RC12.5 follow-up is a narrow post-release correction for Issue #371. Real-device feedback after the RC12.4 release showed that some Home Assistant lights publish live state through the raw brightness attribute instead of brightness_pct, and that the generated light-slider lambdas could still fail ESPHome compilation because different branches returned mixed numeric types. RC12.5 fixes both issues, refreshes the visible release metadata, and rebuilds the shipped frontend assets for a clean follow-up cut.

Stability & Verification

  • Home Assistant Light Attribute Compatibility (Issue #371): Light-backed LVGL sliders now subscribe to the HA brightness attribute for initial state and live updates, which matches the state model shown in Home Assistant Developer Tools for integrations that only expose raw 0..255 brightness values.
  • Compile-Safe Light Slider Lambdas (Issue #371): Generated light-slider value, lvgl.slider.update, and light.turn_on brightness lambdas now keep a consistent float return type across every branch, eliminating the ESPHome C++ inconsistent types 'float' and 'int' deduced for lambda return type build error seen on generated YAML.
  • Regression Coverage Expansion: Updated the LVGL slider regression tests to lock the raw brightness attribute path, the 0..255 scaling behavior, and the new compile-safe lambda output for both default and scaled slider ranges.
  • Release Metadata Refresh: Updated the npm package version, package lock metadata, Home Assistant manifest version, visible header label, release notes heading/date, and rebuilt frontend assets for the RC12.5 release line.

v1.0.0 RC12.4 - OpenAI GPT-5 Compatibility & Guition 3.5 Support

Release Date: April 15, 2026

This RC12.4 follow-up rolls in four concrete post-RC12.3 fixes: restoring OpenAI GPT-5 prompt generation after the token-parameter change reported in Issue #379, promoting the Guition 3.5" JC4832W535 board discussed in Issue #340 to a cleaner built-in package/profile path, finishing the Home Assistant light state-tracking follow-up from Issue #371, and taking one more small cleanup pass on the generated deep-sleep control flow from Issue #356. It also synchronizes the visible release metadata and rebuilds the shipped frontend assets for today's RC12.4 cut.

Stability & Verification

  • OpenAI GPT-5 Request Compatibility (Issue #379): The OpenAI chat-completions path now sends max_completion_tokens for gpt-5* models while preserving max_tokens for older models, so GPT-5 layout generation works again without regressing the existing GPT-4/OpenAI flow.
  • Guition JC4832W535 v3 Package Alignment (Issue #340): The bundled 3.5" Guition hardware package now targets the documented JC4832W535 QSPI display model, includes the linked AXS15231 touchscreen configuration, and captures the working calibration/transform/rotation values needed for the board's v3 pinout.
  • Stable Device ID with Legacy Alias: Added a supported built-in guition_esp32_jc4832w535 device profile for new layouts while keeping the older misnamed internal id as a hidden compatibility alias so previously saved layouts continue to resolve the same hardware package.
  • LVGL Light State Tracking Completion (Issue #371): Light-backed LVGL sliders now push explicit lvgl.slider.update actions from the Home Assistant brightness_pct attribute, synced LVGL buttons/switches/checkboxes now update their checked state from HA with trigger_on_initial_state: true, and scaled slider ranges such as 0..255 now map cleanly to brightness_pct in both directions so the widgets track HA, each other, and boot-time state correctly.
  • Deep-Sleep Guard Consolidation (Issue #356): The generated deep_sleep_cycle script now performs the firmware-flash delay and stay-awake retry handling once at the top of the script before branching into the overnight until: or normal deep-sleep entry path, which keeps the RC12.3 behavior fix while removing duplicated guard blocks from the generated YAML.
  • Regression Coverage Expansion: Added focused tests for the GPT-5/OpenAI request payload branch and for surfacing the corrected Guition board id without exposing the legacy alias as a new supported device choice.

v1.0.0 RC12.3 - Deep Sleep Follow-Through

Release Date: April 12, 2026

This RC12.3 follow-up takes another pass at the remaining deep-sleep behavior from Issue #356. RC12.2 was too optimistic here: the overnight until: branch still dropped out when users chose Ultra Eco (Deep Sleep) and relied on the shared sleep-hours controls. This release fixes that mismatch, trims the misleading deep-sleep refresh bookkeeping in the generated script, and rebuilds the shipped assets for a clean RC12.3 cut.

Stability & Verification

  • Deep-Sleep Overnight Window Fix (Issue #356): Generated deep_sleep_cycle now uses the configured shared sleep window in Deep Sleep mode as well as Light Sleep mode, so users who set overnight hours and export Ultra Eco (Deep Sleep) once again get the deep_sleep.enter until: / time_id: ha_time branch at night.
  • Deep-Sleep Script Cleanup (Issue #356): manage_run_and_sleep no longer emits the unused interval and is_sleep_time bookkeeping in the epaper deep-sleep path, which makes the generated YAML match the real execution flow more closely.
  • Regression Coverage Expansion: Added focused generator tests for the Deep Sleep plus sleep-hours path and for omitting the unused refresh bookkeeping from the deep-sleep loop.

v1.0.0 RC12.2 - Widget State Accuracy & Release Polish

Release Date: April 11, 2026

This RC12.2 follow-up rolls the remaining Issue #356 polish into a fresh release cut, with a focus on making astronomy and weather widgets fail safely when Home Assistant data is missing or timezone-shifted, while keeping the RC12.x stability fixes and release metadata aligned for deployment.

Stability & Verification

  • Local-Time Sunrise/Sunset Rendering (Issue #356): sun_times widgets now convert Home Assistant ISO timestamps into local runtime time before formatting them, so sensor.sun_next_rising and sensor.sun_next_setting no longer show UTC hours as if they were already local.
  • Explicit Unknown Weather Fallbacks (Issue #356): Weather icon and forecast widgets now fall back to a visible unknown icon and -- text when no valid condition or value is available, instead of implying a real sunny or cloudy state.
  • Unknown-State Moon Phase Fallback (Issue #356): Moon-phase widgets now show an unknown-state icon when the selected entity is missing, invalid, or not a moon-phase source, rather than rendering a misleading real lunar phase.
  • Deep-Sleep Flow Revalidation (Issue #356): Rechecked the reported is_sleep_time, interval, and long-sleep-until-end-hour concerns against the generator output and locked that behavior in with regression coverage; no additional generator change was required because the long-sleep branch was already present.
  • Regression Coverage Expansion: Added focused tests for astronomy widget local-time handling, weather unknown-state exports/rendering, moon-phase invalid-entity behavior, and the existing deep-sleep overnight branch so the RC12.2 fixes stay pinned.
  • Release Metadata Refresh: Updated the package version, Home Assistant manifest version, visible header label, release notes heading, and rebuilt frontend assets for the RC12.2 release line.

v1.0.0 RC12.1 - OTA Rollback Diagnostics & LVGL Light Sync

Release Date: April 10, 2026

This RC12.1 follow-up tightens the LVGL light-control fix from Issue #371, adds generated diagnostics ...

Read more

v1.0.0-rc.12.5

16 Apr 10:22

Choose a tag to compare

v1.0.0 RC12.5 - Light Brightness Attribute Compatibility

Release Date: April 16, 2026

This RC12.5 follow-up is a narrow post-release correction for Issue #371. Real-device feedback after the RC12.4 release showed that some Home Assistant lights publish live state through the raw brightness attribute instead of brightness_pct, and that the generated light-slider lambdas could still fail ESPHome compilation because different branches returned mixed numeric types. RC12.5 fixes both issues, refreshes the visible release metadata, and rebuilds the shipped frontend assets for a clean follow-up cut.

Stability & Verification

  • Home Assistant Light Attribute Compatibility (Issue #371): Light-backed LVGL sliders now subscribe to the HA brightness attribute for initial state and live updates, which matches the state model shown in Home Assistant Developer Tools for integrations that only expose raw 0..255 brightness values.
  • Compile-Safe Light Slider Lambdas (Issue #371): Generated light-slider value, lvgl.slider.update, and light.turn_on brightness lambdas now keep a consistent float return type across every branch, eliminating the ESPHome C++ inconsistent types 'float' and 'int' deduced for lambda return type build error seen on generated YAML.
  • Regression Coverage Expansion: Updated the LVGL slider regression tests to lock the raw brightness attribute path, the 0..255 scaling behavior, and the new compile-safe lambda output for both default and scaled slider ranges.
  • Release Metadata Refresh: Updated the npm package version, package lock metadata, Home Assistant manifest version, visible header label, release notes heading/date, and rebuilt frontend assets for the RC12.5 release line.

v1.0.0 RC12.4 - OpenAI GPT-5 Compatibility & Guition 3.5 Support

Release Date: April 15, 2026

This RC12.4 follow-up rolls in four concrete post-RC12.3 fixes: restoring OpenAI GPT-5 prompt generation after the token-parameter change reported in Issue #379, promoting the Guition 3.5" JC4832W535 board discussed in Issue #340 to a cleaner built-in package/profile path, finishing the Home Assistant light state-tracking follow-up from Issue #371, and taking one more small cleanup pass on the generated deep-sleep control flow from Issue #356. It also synchronizes the visible release metadata and rebuilds the shipped frontend assets for today's RC12.4 cut.

Stability & Verification

  • OpenAI GPT-5 Request Compatibility (Issue #379): The OpenAI chat-completions path now sends max_completion_tokens for gpt-5* models while preserving max_tokens for older models, so GPT-5 layout generation works again without regressing the existing GPT-4/OpenAI flow.
  • Guition JC4832W535 v3 Package Alignment (Issue #340): The bundled 3.5" Guition hardware package now targets the documented JC4832W535 QSPI display model, includes the linked AXS15231 touchscreen configuration, and captures the working calibration/transform/rotation values needed for the board's v3 pinout.
  • Stable Device ID with Legacy Alias: Added a supported built-in guition_esp32_jc4832w535 device profile for new layouts while keeping the older misnamed internal id as a hidden compatibility alias so previously saved layouts continue to resolve the same hardware package.
  • LVGL Light State Tracking Completion (Issue #371): Light-backed LVGL sliders now push explicit lvgl.slider.update actions from the Home Assistant brightness_pct attribute, synced LVGL buttons/switches/checkboxes now update their checked state from HA with trigger_on_initial_state: true, and scaled slider ranges such as 0..255 now map cleanly to brightness_pct in both directions so the widgets track HA, each other, and boot-time state correctly.
  • Deep-Sleep Guard Consolidation (Issue #356): The generated deep_sleep_cycle script now performs the firmware-flash delay and stay-awake retry handling once at the top of the script before branching into the overnight until: or normal deep-sleep entry path, which keeps the RC12.3 behavior fix while removing duplicated guard blocks from the generated YAML.
  • Regression Coverage Expansion: Added focused tests for the GPT-5/OpenAI request payload branch and for surfacing the corrected Guition board id without exposing the legacy alias as a new supported device choice.

v1.0.0 RC12.3 - Deep Sleep Follow-Through

Release Date: April 12, 2026

This RC12.3 follow-up takes another pass at the remaining deep-sleep behavior from Issue #356. RC12.2 was too optimistic here: the overnight until: branch still dropped out when users chose Ultra Eco (Deep Sleep) and relied on the shared sleep-hours controls. This release fixes that mismatch, trims the misleading deep-sleep refresh bookkeeping in the generated script, and rebuilds the shipped assets for a clean RC12.3 cut.

Stability & Verification

  • Deep-Sleep Overnight Window Fix (Issue #356): Generated deep_sleep_cycle now uses the configured shared sleep window in Deep Sleep mode as well as Light Sleep mode, so users who set overnight hours and export Ultra Eco (Deep Sleep) once again get the deep_sleep.enter until: / time_id: ha_time branch at night.
  • Deep-Sleep Script Cleanup (Issue #356): manage_run_and_sleep no longer emits the unused interval and is_sleep_time bookkeeping in the epaper deep-sleep path, which makes the generated YAML match the real execution flow more closely.
  • Regression Coverage Expansion: Added focused generator tests for the Deep Sleep plus sleep-hours path and for omitting the unused refresh bookkeeping from the deep-sleep loop.

v1.0.0 RC12.2 - Widget State Accuracy & Release Polish

Release Date: April 11, 2026

This RC12.2 follow-up rolls the remaining Issue #356 polish into a fresh release cut, with a focus on making astronomy and weather widgets fail safely when Home Assistant data is missing or timezone-shifted, while keeping the RC12.x stability fixes and release metadata aligned for deployment.

Stability & Verification

  • Local-Time Sunrise/Sunset Rendering (Issue #356): sun_times widgets now convert Home Assistant ISO timestamps into local runtime time before formatting them, so sensor.sun_next_rising and sensor.sun_next_setting no longer show UTC hours as if they were already local.
  • Explicit Unknown Weather Fallbacks (Issue #356): Weather icon and forecast widgets now fall back to a visible unknown icon and -- text when no valid condition or value is available, instead of implying a real sunny or cloudy state.
  • Unknown-State Moon Phase Fallback (Issue #356): Moon-phase widgets now show an unknown-state icon when the selected entity is missing, invalid, or not a moon-phase source, rather than rendering a misleading real lunar phase.
  • Deep-Sleep Flow Revalidation (Issue #356): Rechecked the reported is_sleep_time, interval, and long-sleep-until-end-hour concerns against the generator output and locked that behavior in with regression coverage; no additional generator change was required because the long-sleep branch was already present.
  • Regression Coverage Expansion: Added focused tests for astronomy widget local-time handling, weather unknown-state exports/rendering, moon-phase invalid-entity behavior, and the existing deep-sleep overnight branch so the RC12.2 fixes stay pinned.
  • Release Metadata Refresh: Updated the package version, Home Assistant manifest version, visible header label, release notes heading, and rebuilt frontend assets for the RC12.2 release line.

v1.0.0 RC12.1 - OTA Rollback Diagnostics & LVGL Light Sync

Release Date: April 10, 2026

This RC12.1 follow-up tightens the LVGL light-control fix from Issue #371, adds generated diagnostics that make OTA rollback mismatches much easier to spot in reports like Issue #372, and folds in two additional YAML-generation fixes from Issue #376 and Issue #377.

Stability & Verification

  • LVGL Light Slider/Button Separation (Issue #371): Light-backed LVGL sliders now refresh only from their generated brightness_pct Home Assistant sensor instead of also listening to the light's binary on/off updates. This prevents a synced button toggle from forcing the slider back through stale 0/1 brightness values and resolves the button/slider feedback loop seen in the attached kitchen-display-ui.yaml.
  • Generated Layout Signatures for OTA Debugging (Issue #372): Generated YAML now includes a stable layout signature and summary in the header, and the startup script logs the same signature once per boot. If a user's device log shows a different signature than the YAML they attached, it is now immediately obvious that the device is running an older image or has rolled back after OTA.
  • Rollback Triage Hint in Boot Logs: The one-time startup diagnostics now include an explicit rollback hint so issue reports can distinguish "widget did not update" from "the new firmware never stayed booted."
  • LVGL Sensor Text Refresh Hooks (Issue #377): LVGL-backed sensor_text widgets now register their generated text_sensor IDs for on_value refresh wiring, including weather/text attribute variants, so live labels update when Ho...
Read more

v1.0.0-rc.12.4

15 Apr 13:06

Choose a tag to compare

v1.0.0 RC12.4 - OpenAI GPT-5 Compatibility & Guition 3.5 Support

Release Date: April 15, 2026

This RC12.4 follow-up rolls in four concrete post-RC12.3 fixes: restoring OpenAI GPT-5 prompt generation after the token-parameter change reported in Issue #379, promoting the Guition 3.5" JC4832W535 board discussed in Issue #340 to a cleaner built-in package/profile path, finishing the Home Assistant light state-tracking follow-up from Issue #371, and taking one more small cleanup pass on the generated deep-sleep control flow from Issue #356. It also synchronizes the visible release metadata and rebuilds the shipped frontend assets for today's RC12.4 cut.

Stability & Verification

  • OpenAI GPT-5 Request Compatibility (Issue #379): The OpenAI chat-completions path now sends max_completion_tokens for gpt-5* models while preserving max_tokens for older models, so GPT-5 layout generation works again without regressing the existing GPT-4/OpenAI flow.
  • Guition JC4832W535 v3 Package Alignment (Issue #340): The bundled 3.5" Guition hardware package now targets the documented JC4832W535 QSPI display model, includes the linked AXS15231 touchscreen configuration, and captures the working calibration/transform/rotation values needed for the board's v3 pinout.
  • Stable Device ID with Legacy Alias: Added a supported built-in guition_esp32_jc4832w535 device profile for new layouts while keeping the older misnamed internal id as a hidden compatibility alias so previously saved layouts continue to resolve the same hardware package.
  • LVGL Light State Tracking Completion (Issue #371): Light-backed LVGL sliders now push explicit lvgl.slider.update actions from the Home Assistant brightness_pct attribute, synced LVGL buttons/switches/checkboxes now update their checked state from HA with trigger_on_initial_state: true, and scaled slider ranges such as 0..255 now map cleanly to brightness_pct in both directions so the widgets track HA, each other, and boot-time state correctly.
  • Deep-Sleep Guard Consolidation (Issue #356): The generated deep_sleep_cycle script now performs the firmware-flash delay and stay-awake retry handling once at the top of the script before branching into the overnight until: or normal deep-sleep entry path, which keeps the RC12.3 behavior fix while removing duplicated guard blocks from the generated YAML.
  • Regression Coverage Expansion: Added focused tests for the GPT-5/OpenAI request payload branch and for surfacing the corrected Guition board id without exposing the legacy alias as a new supported device choice.

v1.0.0 RC12.3 - Deep Sleep Follow-Through

Release Date: April 12, 2026

This RC12.3 follow-up takes another pass at the remaining deep-sleep behavior from Issue #356. RC12.2 was too optimistic here: the overnight until: branch still dropped out when users chose Ultra Eco (Deep Sleep) and relied on the shared sleep-hours controls. This release fixes that mismatch, trims the misleading deep-sleep refresh bookkeeping in the generated script, and rebuilds the shipped assets for a clean RC12.3 cut.

Stability & Verification

  • Deep-Sleep Overnight Window Fix (Issue #356): Generated deep_sleep_cycle now uses the configured shared sleep window in Deep Sleep mode as well as Light Sleep mode, so users who set overnight hours and export Ultra Eco (Deep Sleep) once again get the deep_sleep.enter until: / time_id: ha_time branch at night.
  • Deep-Sleep Script Cleanup (Issue #356): manage_run_and_sleep no longer emits the unused interval and is_sleep_time bookkeeping in the epaper deep-sleep path, which makes the generated YAML match the real execution flow more closely.
  • Regression Coverage Expansion: Added focused generator tests for the Deep Sleep plus sleep-hours path and for omitting the unused refresh bookkeeping from the deep-sleep loop.

v1.0.0 RC12.2 - Widget State Accuracy & Release Polish

Release Date: April 11, 2026

This RC12.2 follow-up rolls the remaining Issue #356 polish into a fresh release cut, with a focus on making astronomy and weather widgets fail safely when Home Assistant data is missing or timezone-shifted, while keeping the RC12.x stability fixes and release metadata aligned for deployment.

Stability & Verification

  • Local-Time Sunrise/Sunset Rendering (Issue #356): sun_times widgets now convert Home Assistant ISO timestamps into local runtime time before formatting them, so sensor.sun_next_rising and sensor.sun_next_setting no longer show UTC hours as if they were already local.
  • Explicit Unknown Weather Fallbacks (Issue #356): Weather icon and forecast widgets now fall back to a visible unknown icon and -- text when no valid condition or value is available, instead of implying a real sunny or cloudy state.
  • Unknown-State Moon Phase Fallback (Issue #356): Moon-phase widgets now show an unknown-state icon when the selected entity is missing, invalid, or not a moon-phase source, rather than rendering a misleading real lunar phase.
  • Deep-Sleep Flow Revalidation (Issue #356): Rechecked the reported is_sleep_time, interval, and long-sleep-until-end-hour concerns against the generator output and locked that behavior in with regression coverage; no additional generator change was required because the long-sleep branch was already present.
  • Regression Coverage Expansion: Added focused tests for astronomy widget local-time handling, weather unknown-state exports/rendering, moon-phase invalid-entity behavior, and the existing deep-sleep overnight branch so the RC12.2 fixes stay pinned.
  • Release Metadata Refresh: Updated the package version, Home Assistant manifest version, visible header label, release notes heading, and rebuilt frontend assets for the RC12.2 release line.

v1.0.0 RC12.1 - OTA Rollback Diagnostics & LVGL Light Sync

Release Date: April 10, 2026

This RC12.1 follow-up tightens the LVGL light-control fix from Issue #371, adds generated diagnostics that make OTA rollback mismatches much easier to spot in reports like Issue #372, and folds in two additional YAML-generation fixes from Issue #376 and Issue #377.

Stability & Verification

  • LVGL Light Slider/Button Separation (Issue #371): Light-backed LVGL sliders now refresh only from their generated brightness_pct Home Assistant sensor instead of also listening to the light's binary on/off updates. This prevents a synced button toggle from forcing the slider back through stale 0/1 brightness values and resolves the button/slider feedback loop seen in the attached kitchen-display-ui.yaml.
  • Generated Layout Signatures for OTA Debugging (Issue #372): Generated YAML now includes a stable layout signature and summary in the header, and the startup script logs the same signature once per boot. If a user's device log shows a different signature than the YAML they attached, it is now immediately obvious that the device is running an older image or has rolled back after OTA.
  • Rollback Triage Hint in Boot Logs: The one-time startup diagnostics now include an explicit rollback hint so issue reports can distinguish "widget did not update" from "the new firmware never stayed booted."
  • LVGL Sensor Text Refresh Hooks (Issue #377): LVGL-backed sensor_text widgets now register their generated text_sensor IDs for on_value refresh wiring, including weather/text attribute variants, so live labels update when Home Assistant pushes new text values.
  • Generated YAML Header Deduplication (Issue #376): Repeated snippet save/update cycles no longer prepend multiple copies of the generated ESPHome header when reconciling manual YAML overrides, so the raw YAML editor stays stable across round trips.
  • Issue #356 Audit Confirmation: Rechecked the three items listed in Issue #356 against current generator code and regression tests; the scheduled page auto-switch guard, deep-sleep interval handling, and long-sleep-until-end-hour behavior are all already covered in RC12.1.
  • Issue #356 Follow-Up Widget Fixes: Sunrise and sunset widgets now convert ISO datetime values into local device/browser time instead of showing the raw UTC hour, weather widgets now fall back to an explicit unknown icon or -- temperatures when no condition/value is available, and moon-phase widgets now show an unknown-state icon instead of implying a real lunar phase when the entity is missing or invalid.
  • Home Assistant Panel Console Noise Mitigation: The embedded panel shell now suppresses additional benign Home Assistant transition abort variants and wrapped host-error shapes, which reduces Transition was skipped / invalid state unhandled rejection noise in the browser console without masking real editor failures.
  • Regression Coverage: Added focused generator coverage for the new header/log diagnostics, updated the LVGL slider regression coverage so light refresh hooks stay bound to the brightness attribute sensor, and hardened the panel/runtime rejection-filter tests for Home Assistant transition-abort noise.
  • Release Metadata Refresh: Updated the package metadata, Home Assistant manifest version, runtime GUI version label, release notes heading, and reb...
Read more

v1.0.0-rc.12.3

12 Apr 08:16

Choose a tag to compare

v1.0.0 RC12.3 - Deep Sleep Follow-Through

Release Date: April 12, 2026

This RC12.3 follow-up takes another pass at the remaining deep-sleep behavior from Issue #356. RC12.2 was too optimistic here: the overnight until: branch still dropped out when users chose Ultra Eco (Deep Sleep) and relied on the shared sleep-hours controls. This release fixes that mismatch, trims the misleading deep-sleep refresh bookkeeping in the generated script, and rebuilds the shipped assets for a clean RC12.3 cut.

Stability & Verification

  • Deep-Sleep Overnight Window Fix (Issue #356): Generated deep_sleep_cycle now uses the configured shared sleep window in Deep Sleep mode as well as Light Sleep mode, so users who set overnight hours and export Ultra Eco (Deep Sleep) once again get the deep_sleep.enter until: / time_id: ha_time branch at night.
  • Deep-Sleep Script Cleanup (Issue #356): manage_run_and_sleep no longer emits the unused interval and is_sleep_time bookkeeping in the epaper deep-sleep path, which makes the generated YAML match the real execution flow more closely.
  • Regression Coverage Expansion: Added focused generator tests for the Deep Sleep plus sleep-hours path and for omitting the unused refresh bookkeeping from the deep-sleep loop.
  • Release Metadata Refresh: Updated the package version, Home Assistant manifest version, visible header label, release notes heading, and rebuilt frontend assets for the RC12.3 release line.

v1.0.0 RC12.2 - Widget State Accuracy & Release Polish

Release Date: April 11, 2026

This RC12.2 follow-up rolls the remaining Issue #356 polish into a fresh release cut, with a focus on making astronomy and weather widgets fail safely when Home Assistant data is missing or timezone-shifted, while keeping the RC12.x stability fixes and release metadata aligned for deployment.

Stability & Verification

  • Local-Time Sunrise/Sunset Rendering (Issue #356): sun_times widgets now convert Home Assistant ISO timestamps into local runtime time before formatting them, so sensor.sun_next_rising and sensor.sun_next_setting no longer show UTC hours as if they were already local.
  • Explicit Unknown Weather Fallbacks (Issue #356): Weather icon and forecast widgets now fall back to a visible unknown icon and -- text when no valid condition or value is available, instead of implying a real sunny or cloudy state.
  • Unknown-State Moon Phase Fallback (Issue #356): Moon-phase widgets now show an unknown-state icon when the selected entity is missing, invalid, or not a moon-phase source, rather than rendering a misleading real lunar phase.
  • Deep-Sleep Flow Revalidation (Issue #356): Rechecked the reported is_sleep_time, interval, and long-sleep-until-end-hour concerns against the generator output and locked that behavior in with regression coverage; no additional generator change was required because the long-sleep branch was already present.
  • Regression Coverage Expansion: Added focused tests for astronomy widget local-time handling, weather unknown-state exports/rendering, moon-phase invalid-entity behavior, and the existing deep-sleep overnight branch so the RC12.2 fixes stay pinned.
  • Release Metadata Refresh: Updated the package version, Home Assistant manifest version, visible header label, release notes heading, and rebuilt frontend assets for the RC12.2 release line.

v1.0.0 RC12.1 - OTA Rollback Diagnostics & LVGL Light Sync

Release Date: April 10, 2026

This RC12.1 follow-up tightens the LVGL light-control fix from Issue #371, adds generated diagnostics that make OTA rollback mismatches much easier to spot in reports like Issue #372, and folds in two additional YAML-generation fixes from Issue #376 and Issue #377.

Stability & Verification

  • LVGL Light Slider/Button Separation (Issue #371): Light-backed LVGL sliders now refresh only from their generated brightness_pct Home Assistant sensor instead of also listening to the light's binary on/off updates. This prevents a synced button toggle from forcing the slider back through stale 0/1 brightness values and resolves the button/slider feedback loop seen in the attached kitchen-display-ui.yaml.
  • Generated Layout Signatures for OTA Debugging (Issue #372): Generated YAML now includes a stable layout signature and summary in the header, and the startup script logs the same signature once per boot. If a user's device log shows a different signature than the YAML they attached, it is now immediately obvious that the device is running an older image or has rolled back after OTA.
  • Rollback Triage Hint in Boot Logs: The one-time startup diagnostics now include an explicit rollback hint so issue reports can distinguish "widget did not update" from "the new firmware never stayed booted."
  • LVGL Sensor Text Refresh Hooks (Issue #377): LVGL-backed sensor_text widgets now register their generated text_sensor IDs for on_value refresh wiring, including weather/text attribute variants, so live labels update when Home Assistant pushes new text values.
  • Generated YAML Header Deduplication (Issue #376): Repeated snippet save/update cycles no longer prepend multiple copies of the generated ESPHome header when reconciling manual YAML overrides, so the raw YAML editor stays stable across round trips.
  • Issue #356 Audit Confirmation: Rechecked the three items listed in Issue #356 against current generator code and regression tests; the scheduled page auto-switch guard, deep-sleep interval handling, and long-sleep-until-end-hour behavior are all already covered in RC12.1.
  • Issue #356 Follow-Up Widget Fixes: Sunrise and sunset widgets now convert ISO datetime values into local device/browser time instead of showing the raw UTC hour, weather widgets now fall back to an explicit unknown icon or -- temperatures when no condition/value is available, and moon-phase widgets now show an unknown-state icon instead of implying a real lunar phase when the entity is missing or invalid.
  • Home Assistant Panel Console Noise Mitigation: The embedded panel shell now suppresses additional benign Home Assistant transition abort variants and wrapped host-error shapes, which reduces Transition was skipped / invalid state unhandled rejection noise in the browser console without masking real editor failures.
  • Regression Coverage: Added focused generator coverage for the new header/log diagnostics, updated the LVGL slider regression coverage so light refresh hooks stay bound to the brightness attribute sensor, and hardened the panel/runtime rejection-filter tests for Home Assistant transition-abort noise.
  • Release Metadata Refresh: Updated the package metadata, Home Assistant manifest version, runtime GUI version label, release notes heading, and rebuilt frontend assets for the RC12.1 release line.

v1.0.0 RC12 - LVGL Follow-Up & Release Sync

Release Date: April 7, 2026

This release is a focused RC12 follow-up that closes the remaining RC11 regressions reported after the RC11 rollout, especially around LVGL live updates and light-slider behavior, and synchronizes the shipped release metadata for the new build.

Stability & Verification

  • LVGL Light Slider Fix (Issue #371): light.* entities now use a dedicated Home Assistant brightness sensor for the slider value instead of mirroring binary on/off state, so toggling a light no longer forces the slider back through 1%, and moving the slider now behaves like a native dimmer by turning the light off at 0 and calling light.turn_on with brightness_pct otherwise.
  • LVGL Date & Time Refresh Fix (Issue #372): Date & Time widgets in LVGL mode now emit an explicit timed refresh loop so their ha_time-backed labels update on real devices instead of staying frozen after the initial render. Styled datetime widgets now refresh the actual child label that owns the live lambda instead of the wrapper container.
  • LVGL On-Board Sensor Bar Refresh Fix (Issue #372): The LVGL sensor bar now refreshes its live child labels and battery icon/text directly, covers local on-device values as well as Home Assistant-backed sensors, and uses the configured Wi-Fi source consistently in LVGL output instead of always hard-wiring wifi_signal_dbm.
  • Interval Section Merge Safety: Widget-owned interval: exports now merge cleanly when multiple features contribute timed updates, preventing duplicate top-level interval sections in generated YAML.
  • Regression Coverage for Issues #371 and #372: Added focused Vitest coverage for the LVGL light slider path, datetime refresh wiring, sensor-bar child refresh targets, and interval-section coexistence so the RC12 fixes stay locked in.
  • Release Metadata Refresh: Updated the package metadata, Home Assistant manifest version, runtime GUI version string, visible header label, and release notes heading for the RC12 release.

v1.0.0 RC11 - Shape Cleanup, New Widgets & Verification

Release Date: April 6, 2026

This release continues the shape-model cleanup so fills, borders, and lines behave more consistently across the editor and generated output, adds the new astronomy and energy widgets discussed in GitHub Issue #367, Issue #368, and https://github.com/koosoli/ESPHomeDesigner/discussions/219#discussioncomment-16442603 a...

Read more

v1.0.0-rc.12.2

11 Apr 08:28

Choose a tag to compare

v1.0.0 RC12.2 - Widget State Accuracy & Release Polish

Release Date: April 11, 2026

This RC12.2 follow-up rolls the remaining Issue #356 polish into a fresh release cut, with a focus on making astronomy and weather widgets fail safely when Home Assistant data is missing or timezone-shifted, while keeping the RC12.x stability fixes and release metadata aligned for deployment.

Stability & Verification

  • Local-Time Sunrise/Sunset Rendering (Issue #356): sun_times widgets now convert Home Assistant ISO timestamps into local runtime time before formatting them, so sensor.sun_next_rising and sensor.sun_next_setting no longer show UTC hours as if they were already local.
  • Explicit Unknown Weather Fallbacks (Issue #356): Weather icon and forecast widgets now fall back to a visible unknown icon and -- text when no valid condition or value is available, instead of implying a real sunny or cloudy state.
  • Unknown-State Moon Phase Fallback (Issue #356): Moon-phase widgets now show an unknown-state icon when the selected entity is missing, invalid, or not a moon-phase source, rather than rendering a misleading real lunar phase.
  • Deep-Sleep Flow Revalidation (Issue #356): Rechecked the reported is_sleep_time, interval, and long-sleep-until-end-hour concerns against the generator output and locked that behavior in with regression coverage; no additional generator change was required because the long-sleep branch was already present.
  • Regression Coverage Expansion: Added focused tests for astronomy widget local-time handling, weather unknown-state exports/rendering, moon-phase invalid-entity behavior, and the existing deep-sleep overnight branch so the RC12.2 fixes stay pinned.
  • Release Metadata Refresh: Updated the package version, Home Assistant manifest version, visible header label, release notes heading, and rebuilt frontend assets for the RC12.2 release line.

v1.0.0 RC12.1 - OTA Rollback Diagnostics & LVGL Light Sync

Release Date: April 10, 2026

This RC12.1 follow-up tightens the LVGL light-control fix from Issue #371, adds generated diagnostics that make OTA rollback mismatches much easier to spot in reports like Issue #372, and folds in two additional YAML-generation fixes from Issue #376 and Issue #377.

Stability & Verification

  • LVGL Light Slider/Button Separation (Issue #371): Light-backed LVGL sliders now refresh only from their generated brightness_pct Home Assistant sensor instead of also listening to the light's binary on/off updates. This prevents a synced button toggle from forcing the slider back through stale 0/1 brightness values and resolves the button/slider feedback loop seen in the attached kitchen-display-ui.yaml.
  • Generated Layout Signatures for OTA Debugging (Issue #372): Generated YAML now includes a stable layout signature and summary in the header, and the startup script logs the same signature once per boot. If a user's device log shows a different signature than the YAML they attached, it is now immediately obvious that the device is running an older image or has rolled back after OTA.
  • Rollback Triage Hint in Boot Logs: The one-time startup diagnostics now include an explicit rollback hint so issue reports can distinguish "widget did not update" from "the new firmware never stayed booted."
  • LVGL Sensor Text Refresh Hooks (Issue #377): LVGL-backed sensor_text widgets now register their generated text_sensor IDs for on_value refresh wiring, including weather/text attribute variants, so live labels update when Home Assistant pushes new text values.
  • Generated YAML Header Deduplication (Issue #376): Repeated snippet save/update cycles no longer prepend multiple copies of the generated ESPHome header when reconciling manual YAML overrides, so the raw YAML editor stays stable across round trips.
  • Issue #356 Audit Confirmation: Rechecked the three items listed in Issue #356 against current generator code and regression tests; the scheduled page auto-switch guard, deep-sleep interval handling, and long-sleep-until-end-hour behavior are all already covered in RC12.1.
  • Issue #356 Follow-Up Widget Fixes: Sunrise and sunset widgets now convert ISO datetime values into local device/browser time instead of showing the raw UTC hour, weather widgets now fall back to an explicit unknown icon or -- temperatures when no condition/value is available, and moon-phase widgets now show an unknown-state icon instead of implying a real lunar phase when the entity is missing or invalid.
  • Home Assistant Panel Console Noise Mitigation: The embedded panel shell now suppresses additional benign Home Assistant transition abort variants and wrapped host-error shapes, which reduces Transition was skipped / invalid state unhandled rejection noise in the browser console without masking real editor failures.
  • Regression Coverage: Added focused generator coverage for the new header/log diagnostics, updated the LVGL slider regression coverage so light refresh hooks stay bound to the brightness attribute sensor, and hardened the panel/runtime rejection-filter tests for Home Assistant transition-abort noise.
  • Release Metadata Refresh: Updated the package metadata, Home Assistant manifest version, runtime GUI version label, release notes heading, and rebuilt frontend assets for the RC12.1 release line.

v1.0.0 RC12 - LVGL Follow-Up & Release Sync

Release Date: April 7, 2026

This release is a focused RC12 follow-up that closes the remaining RC11 regressions reported after the RC11 rollout, especially around LVGL live updates and light-slider behavior, and synchronizes the shipped release metadata for the new build.

Stability & Verification

  • LVGL Light Slider Fix (Issue #371): light.* entities now use a dedicated Home Assistant brightness sensor for the slider value instead of mirroring binary on/off state, so toggling a light no longer forces the slider back through 1%, and moving the slider now behaves like a native dimmer by turning the light off at 0 and calling light.turn_on with brightness_pct otherwise.
  • LVGL Date & Time Refresh Fix (Issue #372): Date & Time widgets in LVGL mode now emit an explicit timed refresh loop so their ha_time-backed labels update on real devices instead of staying frozen after the initial render. Styled datetime widgets now refresh the actual child label that owns the live lambda instead of the wrapper container.
  • LVGL On-Board Sensor Bar Refresh Fix (Issue #372): The LVGL sensor bar now refreshes its live child labels and battery icon/text directly, covers local on-device values as well as Home Assistant-backed sensors, and uses the configured Wi-Fi source consistently in LVGL output instead of always hard-wiring wifi_signal_dbm.
  • Interval Section Merge Safety: Widget-owned interval: exports now merge cleanly when multiple features contribute timed updates, preventing duplicate top-level interval sections in generated YAML.
  • Regression Coverage for Issues #371 and #372: Added focused Vitest coverage for the LVGL light slider path, datetime refresh wiring, sensor-bar child refresh targets, and interval-section coexistence so the RC12 fixes stay locked in.
  • Release Metadata Refresh: Updated the package metadata, Home Assistant manifest version, runtime GUI version string, visible header label, and release notes heading for the RC12 release.

v1.0.0 RC11 - Shape Cleanup, New Widgets & Verification

Release Date: April 6, 2026

This release continues the shape-model cleanup so fills, borders, and lines behave more consistently across the editor and generated output, adds the new astronomy and energy widgets discussed in GitHub Issue #367, Issue #368, and https://github.com/koosoli/ESPHomeDesigner/discussions/219#discussioncomment-16442603 and rolls in the supporting stability and verification work for the RC11 line.

Release Highlights

  • Canonical Shape Color Model: Rectangle, circle, and rounded rectangle widgets now use explicit bg_color and border_color as their primary shape colors, while legacy color values are still accepted as compatibility fallbacks for existing layouts and imports.
  • Unified Shape Controls: Rectangle, circle, and rounded rectangle widgets now share the same visible shape-editing model: Fill, Fill Color, Border Thickness, and Border Color, plus shape-specific geometry such as Corner Radius.
  • Smarter Shape Border Defaults: When a fillable shape is filled and the border color has not been explicitly chosen, the border now defaults to the same color as the fill until the user overrides it.
  • Unified Default Border & Line Widths: Rectangle, circle, rounded rectangle, and line widgets now default to a consistent visible border or stroke weight in new layouts, while legacy imports continue to normalize toward the shared shape model.
  • Astronomy Widget Category: Added a dedicated Astronomy section in the widget palette for the new moon_phase and sun_times widgets, while keeping the existing weather icon in its current core location.
  • Moon Phase Widget (Issue #367): Added a dedicated moon_phase widget with Home Assistant moon-state icon mapping across editor preview, direct ESPHome export, LVGL export, OEPL export, and OpenDisplay export.
  • Sun Times Widget (Issue #368): Added a dedicated `sun_tim...
Read more

v1.0.0-rc.12.1

10 Apr 09:39

Choose a tag to compare

v1.0.0 RC12.1 - OTA Rollback Diagnostics & LVGL Light Sync

Release Date: April 10, 2026

This RC12.1 follow-up tightens the LVGL light-control fix from Issue #371, adds generated diagnostics that make OTA rollback mismatches much easier to spot in reports like Issue #372, and folds in two additional YAML-generation fixes from Issue #376 and Issue #377.

Stability & Verification

  • LVGL Light Slider/Button Separation (Issue #371): Light-backed LVGL sliders now refresh only from their generated brightness_pct Home Assistant sensor instead of also listening to the light's binary on/off updates. This prevents a synced button toggle from forcing the slider back through stale 0/1 brightness values and resolves the button/slider feedback loop seen in the attached kitchen-display-ui.yaml.
  • Generated Layout Signatures for OTA Debugging (Issue #372): Generated YAML now includes a stable layout signature and summary in the header, and the startup script logs the same signature once per boot. If a user's device log shows a different signature than the YAML they attached, it is now immediately obvious that the device is running an older image or has rolled back after OTA.
  • Rollback Triage Hint in Boot Logs: The one-time startup diagnostics now include an explicit rollback hint so issue reports can distinguish "widget did not update" from "the new firmware never stayed booted."
  • LVGL Sensor Text Refresh Hooks (Issue #377): LVGL-backed sensor_text widgets now register their generated text_sensor IDs for on_value refresh wiring, including weather/text attribute variants, so live labels update when Home Assistant pushes new text values.
  • Generated YAML Header Deduplication (Issue #376): Repeated snippet save/update cycles no longer prepend multiple copies of the generated ESPHome header when reconciling manual YAML overrides, so the raw YAML editor stays stable across round trips.
  • Issue #356 Audit Confirmation: Rechecked the three items listed in Issue #356 against current generator code and regression tests; the scheduled page auto-switch guard, deep-sleep interval handling, and long-sleep-until-end-hour behavior are all already covered in RC12.1.
  • Home Assistant Panel Console Noise Mitigation: The embedded panel shell now suppresses additional benign Home Assistant transition abort variants and wrapped host-error shapes, which reduces Transition was skipped / invalid state unhandled rejection noise in the browser console without masking real editor failures.
  • Regression Coverage: Added focused generator coverage for the new header/log diagnostics, updated the LVGL slider regression coverage so light refresh hooks stay bound to the brightness attribute sensor, and hardened the panel/runtime rejection-filter tests for Home Assistant transition-abort noise.
  • Release Metadata Refresh: Updated the package metadata, Home Assistant manifest version, runtime GUI version label, release notes heading, and rebuilt frontend assets for the RC12.1 release line.

v1.0.0 RC12 - LVGL Follow-Up & Release Sync

Release Date: April 7, 2026

This release is a focused RC12 follow-up that closes the remaining RC11 regressions reported after the RC11 rollout, especially around LVGL live updates and light-slider behavior, and synchronizes the shipped release metadata for the new build.

Stability & Verification

  • LVGL Light Slider Fix (Issue #371): light.* entities now use a dedicated Home Assistant brightness sensor for the slider value instead of mirroring binary on/off state, so toggling a light no longer forces the slider back through 1%, and moving the slider now behaves like a native dimmer by turning the light off at 0 and calling light.turn_on with brightness_pct otherwise.
  • LVGL Date & Time Refresh Fix (Issue #372): Date & Time widgets in LVGL mode now emit an explicit timed refresh loop so their ha_time-backed labels update on real devices instead of staying frozen after the initial render. Styled datetime widgets now refresh the actual child label that owns the live lambda instead of the wrapper container.
  • LVGL On-Board Sensor Bar Refresh Fix (Issue #372): The LVGL sensor bar now refreshes its live child labels and battery icon/text directly, covers local on-device values as well as Home Assistant-backed sensors, and uses the configured Wi-Fi source consistently in LVGL output instead of always hard-wiring wifi_signal_dbm.
  • Interval Section Merge Safety: Widget-owned interval: exports now merge cleanly when multiple features contribute timed updates, preventing duplicate top-level interval sections in generated YAML.
  • Regression Coverage for Issues #371 and #372: Added focused Vitest coverage for the LVGL light slider path, datetime refresh wiring, sensor-bar child refresh targets, and interval-section coexistence so the RC12 fixes stay locked in.
  • Release Metadata Refresh: Updated the package metadata, Home Assistant manifest version, runtime GUI version string, visible header label, and release notes heading for the RC12 release.

v1.0.0 RC11 - Shape Cleanup, New Widgets & Verification

Release Date: April 6, 2026

This release continues the shape-model cleanup so fills, borders, and lines behave more consistently across the editor and generated output, adds the new astronomy and energy widgets discussed in GitHub Issue #367, Issue #368, and https://github.com/koosoli/ESPHomeDesigner/discussions/219#discussioncomment-16442603 and rolls in the supporting stability and verification work for the RC11 line.

Release Highlights

  • Canonical Shape Color Model: Rectangle, circle, and rounded rectangle widgets now use explicit bg_color and border_color as their primary shape colors, while legacy color values are still accepted as compatibility fallbacks for existing layouts and imports.
  • Unified Shape Controls: Rectangle, circle, and rounded rectangle widgets now share the same visible shape-editing model: Fill, Fill Color, Border Thickness, and Border Color, plus shape-specific geometry such as Corner Radius.
  • Smarter Shape Border Defaults: When a fillable shape is filled and the border color has not been explicitly chosen, the border now defaults to the same color as the fill until the user overrides it.
  • Unified Default Border & Line Widths: Rectangle, circle, rounded rectangle, and line widgets now default to a consistent visible border or stroke weight in new layouts, while legacy imports continue to normalize toward the shared shape model.
  • Astronomy Widget Category: Added a dedicated Astronomy section in the widget palette for the new moon_phase and sun_times widgets, while keeping the existing weather icon in its current core location.
  • Moon Phase Widget (Issue #367): Added a dedicated moon_phase widget with Home Assistant moon-state icon mapping across editor preview, direct ESPHome export, LVGL export, OEPL export, and OpenDisplay export.
  • Sun Times Widget (Issue #368): Added a dedicated sun_times widget with independent Show Sunrise and Show Sunset toggles, native Home Assistant defaults for sensor.sun_next_rising / sensor.sun_next_setting, and support for sun.sun attributes like next_rising and next_setting.
  • Energy Flow Widget: Added a new energy_widget / Energy Flow widget for direct and lvgl projects with a fixed solar, home, grid, battery, and optional gas topology, sign-aware import/export and charge/discharge arrows, and visible bordered node boxes for the core energy slots.
  • Advanced Solar Breakdown: The new energy widget supports optional helper entities for Solar -> Home, Solar -> Grid, Solar -> Battery, and Autoconsumption %, while still deriving safe fallbacks for grid export and self-consumption when only the base net sensors are available.

Stability & Verification

  • Home Assistant Local Image Preview Fix (Issue #366): Fixed an HA-specific regression where local image previews could trigger authentication failures after the backend hardening pass. Image previews now load through the authenticated request path again, while common public image locations such as /local/... and /config/www/... continue to work without reopening arbitrary /config file reads.
  • ESPHome Image Transparency & LVGL Background YAML Fix (Issue #369): Color image components now emit ESPHome's current transparency option instead of the deprecated use_transparency flag, honoring the widget's configured transparency mode, and transparent LVGL template bars no longer generate invalid bg_color: transp output.
  • M5Paper GT911 ESPHome Compatibility Fix (Issue #370): The M5Paper preset no longer exports GPIO36 as a GT911 interrupt_pin on classic ESP32 builds where that pin is input-only and rejected by current ESPHome releases. Affected exports now fall back to polling with update_interval: 50ms, restoring successful YAML compilation on ESPHome 2026.3.2 and newer.
  • Scheduled Page Switching & Calendar Width Fixes (Issue #356): Scheduled page visibility changes no longer self-trigger the page-switch debounce before change_page_to runs, restoring automatic switching between time-windowed pages, and calendar event summaries now expand their on-device text width with wider calendar widgets instead of staying hard-capped at 25 characters.
  • Drop Shadow Fill & Group Border Editing Cleanup: Adding a drop shadow now preserv...
Read more

v1.0.0-rc.12

07 Apr 12:33

Choose a tag to compare

v1.0.0 RC12 - LVGL Follow-Up & Release Sync

Release Date: April 7, 2026

This release is a focused RC12 follow-up that closes the remaining RC11 regressions reported after the RC11 rollout, especially around LVGL live updates and light-slider behavior, and synchronizes the shipped release metadata for the new build.

Stability & Verification

  • LVGL Light Slider Fix (Issue #371): light.* entities now use a dedicated Home Assistant brightness sensor for the slider value instead of mirroring binary on/off state, so toggling a light no longer forces the slider back through 1%, and moving the slider now behaves like a native dimmer by turning the light off at 0 and calling light.turn_on with brightness_pct otherwise.
  • LVGL Date & Time Refresh Fix (Issue #372): Date & Time widgets in LVGL mode now emit an explicit timed refresh loop so their ha_time-backed labels update on real devices instead of staying frozen after the initial render. Styled datetime widgets now refresh the actual child label that owns the live lambda instead of the wrapper container.
  • LVGL On-Board Sensor Bar Refresh Fix (Issue #372): The LVGL sensor bar now refreshes its live child labels and battery icon/text directly, covers local on-device values as well as Home Assistant-backed sensors, and uses the configured Wi-Fi source consistently in LVGL output instead of always hard-wiring wifi_signal_dbm.
  • Interval Section Merge Safety: Widget-owned interval: exports now merge cleanly when multiple features contribute timed updates, preventing duplicate top-level interval sections in generated YAML.
  • Regression Coverage for Issues #371 and #372: Added focused Vitest coverage for the LVGL light slider path, datetime refresh wiring, sensor-bar child refresh targets, and interval-section coexistence so the RC12 fixes stay locked in.
  • Release Metadata Refresh: Updated the package metadata, Home Assistant manifest version, runtime GUI version string, visible header label, and release notes heading for the RC12 release.

v1.0.0 RC11 - Shape Cleanup, New Widgets & Verification

Release Date: April 6, 2026

This release continues the shape-model cleanup so fills, borders, and lines behave more consistently across the editor and generated output, adds the new astronomy and energy widgets discussed in GitHub Issue #367, Issue #368, and https://github.com/koosoli/ESPHomeDesigner/discussions/219#discussioncomment-16442603 and rolls in the supporting stability and verification work for the RC11 line.

Release Highlights

  • Canonical Shape Color Model: Rectangle, circle, and rounded rectangle widgets now use explicit bg_color and border_color as their primary shape colors, while legacy color values are still accepted as compatibility fallbacks for existing layouts and imports.
  • Unified Shape Controls: Rectangle, circle, and rounded rectangle widgets now share the same visible shape-editing model: Fill, Fill Color, Border Thickness, and Border Color, plus shape-specific geometry such as Corner Radius.
  • Smarter Shape Border Defaults: When a fillable shape is filled and the border color has not been explicitly chosen, the border now defaults to the same color as the fill until the user overrides it.
  • Unified Default Border & Line Widths: Rectangle, circle, rounded rectangle, and line widgets now default to a consistent visible border or stroke weight in new layouts, while legacy imports continue to normalize toward the shared shape model.
  • Astronomy Widget Category: Added a dedicated Astronomy section in the widget palette for the new moon_phase and sun_times widgets, while keeping the existing weather icon in its current core location.
  • Moon Phase Widget (Issue #367): Added a dedicated moon_phase widget with Home Assistant moon-state icon mapping across editor preview, direct ESPHome export, LVGL export, OEPL export, and OpenDisplay export.
  • Sun Times Widget (Issue #368): Added a dedicated sun_times widget with independent Show Sunrise and Show Sunset toggles, native Home Assistant defaults for sensor.sun_next_rising / sensor.sun_next_setting, and support for sun.sun attributes like next_rising and next_setting.
  • Energy Flow Widget: Added a new energy_widget / Energy Flow widget for direct and lvgl projects with a fixed solar, home, grid, battery, and optional gas topology, sign-aware import/export and charge/discharge arrows, and visible bordered node boxes for the core energy slots.
  • Advanced Solar Breakdown: The new energy widget supports optional helper entities for Solar -> Home, Solar -> Grid, Solar -> Battery, and Autoconsumption %, while still deriving safe fallbacks for grid export and self-consumption when only the base net sensors are available.

Stability & Verification

  • Home Assistant Local Image Preview Fix (Issue #366): Fixed an HA-specific regression where local image previews could trigger authentication failures after the backend hardening pass. Image previews now load through the authenticated request path again, while common public image locations such as /local/... and /config/www/... continue to work without reopening arbitrary /config file reads.
  • ESPHome Image Transparency & LVGL Background YAML Fix (Issue #369): Color image components now emit ESPHome's current transparency option instead of the deprecated use_transparency flag, honoring the widget's configured transparency mode, and transparent LVGL template bars no longer generate invalid bg_color: transp output.
  • M5Paper GT911 ESPHome Compatibility Fix (Issue #370): The M5Paper preset no longer exports GPIO36 as a GT911 interrupt_pin on classic ESP32 builds where that pin is input-only and rejected by current ESPHome releases. Affected exports now fall back to polling with update_interval: 50ms, restoring successful YAML compilation on ESPHome 2026.3.2 and newer.
  • Scheduled Page Switching & Calendar Width Fixes (Issue #356): Scheduled page visibility changes no longer self-trigger the page-switch debounce before change_page_to runs, restoring automatic switching between time-windowed pages, and calendar event summaries now expand their on-device text width with wider calendar widgets instead of staying hard-capped at 25 characters.
  • Drop Shadow Fill & Group Border Editing Cleanup: Adding a drop shadow now preserves existing opaque fills, forces transparent widget infills to white so the shadow remains visible, and grouped shadow selections can edit shared border width, border color, and corner settings without pushing those properties onto the invisible group wrapper.
  • Backward-Compatible Imports: YAML, C++ drawing, and OEPL parser paths continue to accept older shape definitions while normalizing imported shapes toward the new bg_color / border_color model.
  • Regression Coverage for Shape Cleanup: Updated focused tests and snapshots for the shared fillable-shape helpers, shape widgets, line defaults, parser round-trips, and widget-manager shadow behavior.
  • Regression Coverage for Issue #356: Added focused generator and calendar export tests so scheduled visibility auto-switching and width-scaled calendar summaries stay locked in.
  • Regression Coverage for Issue #369: Added focused test coverage for modern image component export plus transparent LVGL template-bar export so the invalid YAML patterns stay fixed.
  • Regression Coverage for Issue #370: Added targeted touchscreen generator coverage so classic ESP32 GT911 profiles with input-only pins keep using the polling fallback instead of emitting invalid output-mode interrupt pins.
  • Astronomy Widget Coverage: Added targeted tests for the new moon phase and sun times widgets so preview behavior and export wiring stay locked in.
  • Energy Widget Coverage & Round-Trip Support: Added direct-export, LVGL-export, preview, parser, and round-trip coverage for the new energy widget so its helper entities and derived flow labels stay stable across YAML import/export and frontend builds.
  • Release Metadata Refresh: Updated the package metadata, Home Assistant manifest version, runtime GUI version string, and visible header label for the RC11 release.

v1.0.0 RC10.1 - Visibility Hotfix & Release Sync

Release Date: April 2, 2026

This release is a focused RC10.1 follow-up for the work completed in this session. It fixes a direct-render conditional visibility regression where binary Home Assistant entities such as input_boolean could generate invalid std::string(...) comparisons and fail ESPHome compilation, and it synchronizes the shipped version metadata and frontend bundle for the RC10.1 package.

Stability & Verification

  • Conditional Visibility Compilation Fix (Issue #363): Direct-render widget visibility checks now treat binary Home Assistant domains such as input_boolean as boolean IDs instead of forcing them through string conversion, while text-style entities like input_select still use the generated _txt sensors for string comparison.
  • Regression Coverage: Added targeted Vitest coverage for the visibility-condition binary/text branching so the broken std::string(id(input_boolean...).state) pattern does not return.
  • Release Metadata Sync: Updated the package version, Home Assistant manifest version, GUI header label, runtime GUI version string, release notes heading, and committed frontend dist bundle so the shipped RC10.1 package stays internally consistent.

v1.0.0 RC10 - Release Prep, Persistence Fixes & Verification

Release Date: March 31, 2026

This release rolls the project forward to the RC10 line, includes the remaining persistence and dee...

Read more

v1.0.0-rc.10.1

02 Apr 09:47

Choose a tag to compare

v1.0.0-rc.10.1 Pre-release
Pre-release

v1.0.0 RC10.1 - Visibility Hotfix & Release Sync

Release Date: April 2, 2026

This release is a focused RC10.1 follow-up for the work completed in this session. It fixes a direct-render conditional visibility regression where binary Home Assistant entities such as input_boolean could generate invalid std::string(...) comparisons and fail ESPHome compilation, and it synchronizes the shipped version metadata and frontend bundle for the RC10.1 package.

Stability & Verification

  • Conditional Visibility Compilation Fix (Issue #363): Direct-render widget visibility checks now treat binary Home Assistant domains such as input_boolean as boolean IDs instead of forcing them through string conversion, while text-style entities like input_select still use the generated _txt sensors for string comparison.
  • Regression Coverage: Added targeted Vitest coverage for the visibility-condition binary/text branching so the broken std::string(id(input_boolean...).state) pattern does not return.
  • Release Metadata Sync: Updated the package version, Home Assistant manifest version, GUI header label, runtime GUI version string, release notes heading, and committed frontend dist bundle so the shipped RC10.1 package stays internally consistent.

v1.0.0 RC10 - Release Prep, Persistence Fixes & Verification

Release Date: March 31, 2026

This release rolls the project forward to the RC10 line, includes the remaining persistence and deep-sleep fixes that were still open from GitHub Issue #356, keeps the raw YAML editor override persistent across save/load, and refreshes the shipped release metadata so package/release automation stays aligned.

Release Highlights

  • Persistent Manual YAML Override: YAML edits made directly in the snippet editor now persist with the saved layout as a separate raw override instead of being silently lost on save/load.
  • Page Metadata Persistence: Per-page schedule and visibility metadata such as refresh_type, refresh_time, visible_from, visible_to, and layout now survive backend storage round-trips correctly.
  • Deep Sleep Script Cleanup: The generated deep-sleep flow now uses a single stay-awake guard around deep_sleep.enter, avoiding redundant logic while keeping retry behavior intact.
  • Persistent 12-Hour Datetime Mode (Discussion #359): The datetime widget now exposes a dedicated Clock Mode setting with 24 Hour and 12 Hour (AM/PM) options. Preview rendering plus OpenDisplay, OEPL, and LVGL exports all honor that saved setting, so users no longer need to manually reapply %I:%M %p after each edit or export.
  • Graph Duration Presets: Graph widgets now include a Duration Preset selector with common ranges like minutes, hours, days, and weeks, while still keeping the free-form duration field available for custom lookback windows.
  • Week-Aware Graph History Parsing: Shared graph duration parsing now supports week-based and decimal durations across canvas preview, direct export, LVGL export hooks, history helper generation, Home Assistant history fetching, grid inference, and smart axis labels. This means values like 1w and 2w work consistently without requiring users to translate everything into raw hours.
  • Optional HA State Sync for LVGL Buttons (Discussion #347): lvgl_button now has an explicit Sync Checked State from HA option for mirrorable binary entities such as switch, light, fan, and input_boolean. When enabled, the button becomes checkable, binds its checked state to the Home Assistant entity, and refreshes automatically when HA state changes, while the existing click action behavior remains intact.
  • Compilation Regression Coverage: The RC8.3 is_sleep_time scoping problem reported in Issue #339 remains covered by a dedicated generator regression so the broken return !is_sleep_time; pattern does not reappear in generated output.
  • Localized Weather Forecast Day Labels: The weather forecast widget now exposes an explicit day-language selector so editor previews and generated firmware/LVGL output stay aligned instead of mixing localized preview labels with English device labels, covering the reports in Issue #231 and Issue #348.
  • Graph History Helper Package: Advanced graph history mode now includes built-in Copy HA YAML and Download YAML actions that generate a starter Home Assistant helper package backed by sql.query. This makes the previously undocumented template/helper setup far easier to adopt for recorder-backed history graphs.
  • Graph & Sensor Bar Typography Completion (Issue #361): The graph and template_sensor_bar widgets now expose font_family, font_weight, and font_size consistently, and those settings are honored across browser preview, direct ESPHome export, and LVGL export.
  • Single-Page Navigation YAML Fix (Issue #362): Single-page projects no longer emit change_page_to scripts or dangling debounce references to last_page_switch_time, and LVGL nav bars now suppress prev/next actions when paging is unavailable.
  • Issue #356 Follow-Up Fixes: Direct-render shape_rect widgets now scope their rounded-corner helper lambdas per widget so repeated rounded rectangles no longer collide at compile time, the datetime canvas preview now matches device behavior by leaving narrow text visible instead of clipping it, generated startup scripts now include a one-time 5-second post-sync grace period before the first render so Home Assistant-backed sensors have time to populate, and touch-debounce globals are only emitted for layouts that actually use touch widgets.

Stability & Verification

  • Export Shape Stability: The new LVGL button sync path only adds checkable and state output when the feature is enabled, so existing button exports stay unchanged by default.
  • CI Lint Hardening: Nested workspace tmp directories are now ignored consistently by ESLint, preventing generated preview/build artifacts from showing up as false-positive source lint failures during release and pre-push validation.

v1.0.0 RC9.1 - Release Metadata & Deployment Follow-Up

Release Date: March 29, 2026

This follow-up release finishes the RC9 packaging and deployment work so Home Assistant, GitHub Releases, and the GitHub Pages editor all point at the same current build.

Maintenance

  • Removed stale debug-overlay test residue from the sidebar suite and kept coverage aligned with the quality gate.
  • Rebuilt the committed frontend bundle so the packaged Home Assistant panel assets and GitHub Pages deployment stay on the same RC9.1 output.

v1.0.0 RC9 - Home Assistant Reliability, Security Hardening & Quality Overhaul

Release Date: March 28, 2026

The main goals of this version are simple: make the editor behave more reliably inside Home Assistant, make saved layouts and custom hardware profiles load correctly, harden the backend surface, and continue the broader cleanup of the codebase.

New Features & Enhancements

  • Universal MQTT Integration (Issue #352): You can now use mqtt:your/topic/path directly in the main Entity field instead of managing a separate MQTT-only input. This makes MQTT widgets easier to set up, easier to understand, and more consistent across the editor.
  • Edit Custom Hardware Profiles (Issue #353): Imported custom hardware profiles can now be loaded back into the Custom Hardware form, edited, and saved again without starting from scratch.

Bug Fixes & Stability

  • Home Assistant Embedded Editor Reliability: The editor now behaves much more reliably when opened inside Home Assistant. Layouts, entities, saved designs, and hardware templates load more consistently, and the panel boot flow was cleaned up after several HA-specific auth and routing failures.
  • Custom Hardware Profile Loading: Layouts that reference saved custom hardware profiles now load correctly in Home Assistant. Custom hardware YAML packages are fetched through an authenticated backend route instead of relying on fragile direct static file access.
  • Graph History Preview Reliability: Graph previews in the editor now use Home Assistant's native history API in embedded mode. This makes layouts with history widgets much less likely to fail because of a custom proxy path.
  • LCD Navigation Debounce Follow-Up (Issue #349): Navigation timing was aligned more carefully for touch LCD devices, reducing bounce-back and accidental double-navigation on slower panels such as the Waveshare 7" ESP32-S3.
  • Deep Sleep Stay-Awake YAML Fix (Issue #354): Fixed a YAML generation issue that could produce invalid ESPHome output when Deep Sleep and Stay Awake were enabled together on e-paper devices.
  • Missing change_page_to Script (Issue #351): Fixed a compilation problem where some single-page designs could still reference the page-change script even though that script was only being generated for multi-page layouts.
  • Image Plugin Crash: Fixed an LVGL image handling problem that could break designs using custom images.
  • Hardware Touch Debounce: Improved touch debounce handling across interactive widgets to reduce accidental double taps.
  • Log Spam on Display Restart: Reduced repeated "Waiting for sync..." logging when a display was restarting but already had an active connection.
  • Battery Sensor Reliability: Improved battery widget handling for imported hardware and Home Assistant battery entities.
  • Image Rendering Optimization: Color image exports now use a faster rendering path that is more stable on high-resolution RGB displays.
  • **Ca...
Read more