Repository navigation
v0.6.0
Release Notes
v0.6.0
Note
This is a major release with significant architectural improvements, new widgets, and hardware support.
馃帀 Major Features
Layout Manager
- Multi-Device Support: Manage multiple e-ink devices from a single interface
- Export/Import Layouts: Save and share your dashboard designs as files
- Switch between devices seamlessly with persistent configurations
Completely Redesigned UI
- Fresh Modern Interface: Complete visual overhaul - easier on the eyes
- Light Mode: New light theme for users who prefer a brighter workspace
- Canvas Controls: Zoom in/out and recenter the canvas for precise editing
Template-Free Workflow
- No More Templates Required: The generator now produces a complete, standalone configuration
- Simply paste the generated YAML below ESPHome's auto-generated sections
- Makes setup child's play - no manual template merging needed
New Widgets
-
Quote / RSS Feed Widget: Display inspirational quotes or RSS feed content
- RSS feed URL configuration with popular default (BrainyQuote)
- Optional author display, random quote selection
- Configurable refresh interval (15min to 24h)
- Word wrap, italic styling, full font customization
- Zero configuration: No
configuration.yamlentries or Home Assistant sensors needed - Note: Functional but formatting not fully respected - unfinished feature
-
QR Code Widget: Generate QR codes directly on your e-ink display
- Configurable content string (URLs, text, etc.)
- Four error correction levels (LOW, MEDIUM, QUARTILE, HIGH)
- Auto-scaling to fit widget dimensions
-
Weather Forecast Widget: Multi-day weather forecast display
- Shows upcoming weather conditions with dynamic icons
- Integrates with Home Assistant weather entities
- Note: Requires a weather entity configured in Home Assistant
-
Vertical Lines: Draw vertical lines (untested)
馃摫 New Hardware Support
reTerminal E1002 - Color E-Ink Display
- Full color e-paper support for the Seeed Studio reTerminal E1002
- Color rendering for all widgets and shapes
- Same easy workflow as E1001 - just select your device type
TRMNL (ESP32-C3)
- New device support: TRMNL e-paper hardware now fully supported
- Dedicated hardware template (
trmnl_lambda.yaml) - Correct SPI and battery sensor configurations
- Proper busy_pin logic
Warning
Experimental Feature: Online Image (remote URLs) widget is an initial implementation and may be buggy or broken. Use at your own discretion.
馃敡 Architecture Overhaul
-
Modular Frontend Architecture: Complete refactor of the monolithic
editor.js(276KB) into a modular system:yaml_export.js- Clean YAML generation with per-widget handlingyaml_import.js- Robust YAML parsing and importcanvas.js- Canvas rendering and interactionstate.js- Centralized application state managementproperties.js- Widget property panel generationwidget_factory.js- Standardized widget creationkeyboard.js- Keyboard shortcuts handling- Improved maintainability and extensibility
-
Feature-Based Widget System: Backend now uses a
features/directory with:- Per-widget
schema.jsonfor property definitions - Per-widget
render.jsfor canvas preview rendering - Standardized widget registration and discovery
- Per-widget
馃悰 Bug Fixes
Widget Rendering
- Line Widget: Fixed length synchronization between canvas preview and e-ink display
- Line Widget: Fixed drag resize functionality
- Rectangle Border: Corrected
border-boxpositioning discrepancy between canvas and e-ink - Weather Forecast: Fixed positioning at correct X/Y coordinates
- Graph Grid Lines: Fixed
x_gridvalues not generating correctly in YAML
Sensor & Entity Handling
- Sensor ID Generation: Fixed sensor ID stripping for
battery_icon,sensor_text,progress_bar, andweather_iconwidgets- Correctly strips
sensor.andweather.prefixes when generating ESPHomeid()references
- Correctly strips
- Quote/RSS Widget: Added WiFi connection check and startup delay for reliable fetching
Font System
- Italic Font Support: Fixed italic fonts not being correctly referenced in lambda code
- Text widgets now use
_italicsuffix (e.g.,font_roboto_900_100_italic) when italic is enabled - Quote RSS widget correctly references italic font IDs
- Text widgets now use
- Font Validation: Fixed
font_roboto_400_24validation warning in battery_icon widget - Italic Persistence: Fixed
italicproperty not persisting forsensor_textanddatetimewidgets after YAML update
Device Settings & Persistence
- Device Name Sync: Fixed device name changes not persisting in Device Settings modal and Manage Layouts list
- Device Settings Modal: Fixed settings reverting upon re-opening
YAML Generation
- Duplicate SPI Removal: Fixed duplicate SPI configuration in generated YAML
- YAML Duplicate Fixes: Various fixes for duplicate section generation
馃攧 Technical Improvements
- Frontend Feature Registry: Dynamic widget type discovery and registration
- Schema-Driven Properties: Widget properties now defined in JSON schemas
- Improved Error Handling: Better error messages and AppState.notify integration
- Code Organization: Clear separation between core, UI, IO, and utility modules
v0.5.0
Warning
BREAKING CHANGE: This version requires the latest hardware template.
Global settings have been moved to the template.
You MUST update your reterminal_e1001_lambda.yaml (or equivalent) to the latest version for these features to work.
Old templates will cause compilation errors or ignore your power settings.
馃帀 Major Features
- Page Management:
- Drag & Drop Reordering: You can now reorder pages in the sidebar by dragging them.
- Persistent Page Names: Custom page names are now saved in the YAML and restored upon import.
- New Power Management UI: Complete redesign with radio buttons for clear, mutually exclusive power modes:
- Standard (Always On) - Auto-refresh based on page intervals
- Night Mode - Screen off during specified hours for energy savings
- Manual Refresh Only - Updates only via button or Home Assistant trigger
- Deep Sleep (Battery Saver) - Device offline between updates for maximum power savings
- Deep Sleep Support: Full ESPHome deep sleep implementation with configurable intervals (default: 600s)
- Smart Text Optimization: Automatically strips unused characters from large static fonts to save massive amounts of RAM, preventing compilation crashes. Dynamic text (sensors) remains untouched.
馃悰 Bug Fixes
Settings & Persistence
- Device Settings Persistence: Fixed all device settings (power mode, sleep times, deep sleep interval) not saving and jumping back to defaults on restart.
- Page Refresh Rates: Fixed page refresh intervals not persisting and resetting when updating layout from YAML.
- Power Management Settings: Fixed settings resetting to "Standard" mode when updating layout from YAML.
YAML Generation
- Script Generation: Fixed wrong script generated for deep sleep mode (was using auto-refresh loop instead of simple sleep).
- Display Lambda: Fixed missing COLOR_ON/COLOR_OFF definitions causing compilation errors.
- Sensor Text Widget: Fixed value-only mode (no label) missing critical YAML sections (button:, font:, script:, globals:).
- Refresh Intervals: Fixed page refresh intervals < 60 seconds being filtered out.
- No-Refresh Window: Fixed invalid conditions generated when window not configured (0-0 case).
- Manual Refresh Mode: Fixed manual refresh showing unnecessary page interval logic (now minimal script only).
Widget Improvements
- Line Widget: Fixed lines not rendering straight on e-paper (right side was ~10px lower).
- Image Widget: Fixed missing path property in UI and drag functionality not working.
- Battery Icon: Fixed percentage text not centering underneath battery symbol when icon is enlarged.
- Sensor Text Alignment: Added separate alignment options for label and value (e.g., label left, value right) with WYSIWYG canvas preview.
- DateTime Widget: Verified alignment options working correctly.
- Progress Bar Widget: Verified alignment options working correctly.
Font System
- Google Fonts: Fonts now work correctly - all fonts pre-defined in template (Template-Only approach).
- Font Selection: Verified font dropdown shows all 15 supported families.
- Font Persistence: Fixed font selections (Family, Weight, Size) for Sensor Text widgets not persisting through YAML updates.
馃敡 Technical Improvements
- Frontend/Backend Parity: Both generators now produce identical output.
- Robust Import:
applyImportedLayout()now merges settings instead of overwriting, preserving user preferences. - Smart Parsing: The YAML parser now intelligently extracts page names and refresh rates from comments and code logic.
- YAML Highlighting: Selecting a widget on the canvas now automatically highlights its corresponding YAML definition in the snippet box.
v0.4.6.1
- Critical Bug Fix: Fixed JavaScript error
ReferenceError: isTextSensor is not definedin snippet generator that prevented YAML generation and caused compilation errors.
v0.4.6
- Number Sensor Fix: Fixed a bug where number sensors were interpreted as text sensors, causing them to show gibberish or fail to compile.
- Graph Improvements: X and Y information are now automatically added if the user adds min/max information or time information in the widget settings.
- Graph Persistence: Fixed a bug where graph minimum/maximum values and duration were not saving to YAML. These values would reset when "Update Layout from YAML" was pressed.
- Known Bugs:
- Puppet widget is still unstable.
- Straight lines are not perfectly straight.
- Visible conditions are not fully tested and might fail to compile.
v0.4.5
- Min/Max Visibility: Added support for numeric range conditions (Min/Max) with AND/OR logic for widget visibility. Perfect for progress bars (e.g.,
0 < value < 100). - Boot Stability: Updated the default hardware template (
reterminal_e1001_lambda.yaml) to remove the immediate display update fromon_boot, preventing boot loops on heavy layouts. - WiFi Sensor: Added
wifi_signal_dbto the default hardware template (diagnostic entity). - GUI Updates: Added "Update Layout from YAML" button to the editor for easier round-trip editing.
- Graph Widget Fixes: Fixed persistence of
min_value,max_value,min_range, andmax_rangeproperties. - Editor Fixes: Fixed CSS regression and ensured fullscreen editing works correctly.
- Text Sensor Persistence: Fixed "Is Text Sensor?" checkbox state not saving to backend.
- Puppet Widget Fixes: Fixed Puppet/Online Image widgets not saving to backend, added automatic
http_requestdependency, and fixed URL corruption in parser. - Puppet Stability: Added
on_errorhandler and conditional page updates to prevent crashes and unnecessary refreshes. - Conditional Visibility: Fixed C++ compilation error when using conditional visibility with numeric sensors (removed invalid
atofcheck).
v0.4.4
- Text Sensor Support: Added "Is Text Sensor?" checkbox to
sensor_textwidget to correctly format string states (fixesNaNissue). - Entity Picker Limit: Increased the entity fetch limit from 1000 to 5000 to support larger Home Assistant installations.
- Default Template Fixes: Updated
reterminal_e1001_lambda.yamlto match default dashboard entity IDs (sensor_reterminal_e1001_...) and device name. - Canvas Responsiveness: Improved canvas scaling and centering on smaller screens.
v0.4.3
New Features
- Copy/Paste: Added support for copying and pasting widgets using
Ctrl+CandCtrl+V. Pasted widgets are automatically offset for visibility. - Undo/Redo: Implemented Undo (
Ctrl+Z) and Redo (Ctrl+YorCtrl+Shift+Z) functionality for widget operations (move, resize, add, delete, property changes). - Fullscreen YAML Editing: The fullscreen YAML view is now editable and includes an "Update Layout from YAML" button to apply changes directly.
- Sidebar Visibility Control: Added a configuration option to show or hide the integration in the Home Assistant sidebar.
- Canvas Responsiveness: The editor canvas now dynamically scales and centers to fit smaller screens, ensuring the entire layout is visible without scrolling.
Bug Fixes
- Ghost Pages: Fixed an issue where deleted pages would persist in the generated YAML snippet.
- Undo/Redo Stability: Fixed issues where Undo would jump back multiple steps or become unresponsive due to duplicate history states or missing drag state capture.
- Graph Persistence: Fixed
Continuous: truesetting not saving correctly. - Page Jump: Fixed editor jumping to the first page after layout updates.
- Weather Text Color: Fixed weather widget text color reverting to black.
v0.4.2
- Graph Widget: Added automated sensor info (min/max) based on Home Assistant entity attributes.
- Circle Widget: Enforced 1:1 aspect ratio during resize to prevent distortion.
- Manifest: Version bump.