Skip to content

Releases: cgonfer/velair

Velair 1.2.0

Choose a tag to compare

@cgonfer cgonfer released this 15 Jul 21:40
545b098

Velair 1.2.0

Velair 1.2.0 introduces Environmental Comfort monitoring and complete Celsius and Fahrenheit support, together with clearer Home Assistant entities, automation events, Zone overview improvements, and a safer portability and temperature-migration workflow.

✨ Added

  • Automation events for cancelled Adaptive Preconditioning plans and persisted complete, partial, or invalid learning observations.
  • Automation events when Room Assist is enabled or disabled.
  • Environmental Comfort monitoring per managed climate, with human temperature/humidity conditions, independent CO2 air quality, and explicit reading quality.
  • A dedicated Comfort tab and Lovelace view with a responsive temperature/humidity map, smooth metric-specific color scales, contrasting markers, and a separate CO2 scale.
  • comfort_assessment_changed automation events with environmental condition, air quality, data quality, data issues, and current metric context.
  • Persistent per-climate Home Assistant sensors for environmental condition, CO2 air quality, zone overrides, Adaptive Preconditioning start time, and Room Assist state.

🚀 Improved

  • Spanish localization now uses more natural, consistent terminology across setup, Comfort, Room Assist, Adaptive Preconditioning, portability, and temperature migration.
  • Celsius and Fahrenheit installations now receive physically equivalent schedule, template, Comfort, Room Assist, and Adaptive Preconditioning defaults, with units shown alongside temperature-related inputs.
  • Thermal configuration and learning data now preserve values in the recorded Home Assistant unit instead of silently reinterpreting them when the unit changes.
  • Settings now shows Home Assistant's detected temperature unit as a read-only value and provides an explicit stored-data migration when a later unit change requires one.
  • Portable export model v3 declares its temperature unit, converts selected imports when needed, and accepts older unitless backups as Celsius with a visible warning.
  • Export remains available while scheduling is stopped for a temperature-unit decision, allowing users to keep a reference copy before migrating or resetting.
  • Stored schedules that cannot be validated while a climate is unavailable are checked when its exact range and temperature step return, with incompatible targets identified for review.
  • Reset recreates schedules, templates, Comfort, Room Assist, and Adaptive Preconditioning defaults for Home Assistant's currently selected temperature unit.
  • boost_ended automation events now describe whether Velair will restore the active schedule, the previous climate state, or nothing.
  • Home Assistant sensors now have clearer responsibilities: scheduler status no longer duplicates upcoming-event history, while active target sensors include early-start preconditioning context and follow each climate's temperature unit.
  • Home Assistant entities now expose user-facing scheduler and zone states without polling or duplicating raw temperature, humidity, or CO2 readings.
  • Room Assist live status now separates the room-to-scheduled temperature gap from the climate setpoint offset, including signed heating/cooling corrections and zero-offset holding without implying physical HVAC activity.
  • Zone overview now adapts to each card's available width, presents a clearer current-state summary, groups temperatures and Room Assist setpoints into compact separated details, and keeps Room Assist, Comfort, air-quality, and data signals clearly identified across desktop and mobile without duplicating no-readings warnings.
  • Lovelace cards can filter the Comfort view to selected thermostats without changing stored schedules or scheduler behavior.
  • Comfort Lovelace cards can hide configuration, temperature, humidity, or CO2 graphs independently for more focused dashboards.
  • Documentation now includes dedicated user and developer guides for Environmental Comfort plus complete payload examples for automation events.
  • Documentation now includes dedicated Celsius/Fahrenheit setup, migration, backup, and recovery guidance for users and developers.
  • Comfort configuration now shows the effective automatic source or not-monitored state under each sensor selector and labels CO2 attention and poor thresholds clearly.
  • Humidity monitoring can be disabled independently per climate without removing its saved sensor or thresholds.

🛠️ Fixed

  • Fixed Zone overview signal chips overlapping when several indicators are shown by wrapping complete chips onto additional rows.
  • Fixed Fahrenheit installations receiving Celsius-based schedule blocks, built-in templates, Comfort thresholds, Room Assist limits, and Adaptive Preconditioning parameters.
  • Fixed mixed Celsius/Fahrenheit room and outdoor sensors being compared without conversion, including Room Assist, Comfort, and Adaptive Preconditioning paths.
  • Fixed climate logbook entries always labelling target temperatures as Celsius.
  • Fixed temperature-unit changes and portable imports reinterpreting stored schedules, overrides, thresholds, and Adaptive Preconditioning learning values by using explicit conversion, safe target-step alignment, scheduler locking, and recoverable atomic persistence.
  • Fixed published legacy Celsius-only data being treated as Fahrenheit on existing Fahrenheit installations; Velair now stops safely and directs the user to create fresh unit-aware defaults.
  • Fixed partially completed reset, migration, or import operations resuming the scheduler before runtime recovery succeeds.
  • Removed obsolete per-climate Velair sensors from the Home Assistant entity registry when that climate is no longer managed.
  • Fixed Comfort live assessments not refreshing when a tracked value changed inside the same environmental condition.
  • Fixed Comfort enabling so previously selected sensors are kept instead of being replaced by defaults.
  • Improved Comfort rows so unavailable-reading warnings are visible without expanding the climate.
  • Fixed Comfort selector alignment when some sensors show selected entity IDs.
  • Fixed Comfort climate rows so their typography, spacing, and collapsed-row layout match Preconditioning and Room Assist.
  • Improved Comfort configuration by grouping each metric with its source and only showing thresholds when that metric has an available source.
  • Fixed a Home Assistant thread-safety error when an active Adaptive Preconditioning learning session observed temperature changes.

🧭 Notes

  • Existing Fahrenheit installations upgrading from a pre-1.2.0 release may contain legacy Celsius-only Velair data. Velair stops scheduling safely and asks the user to export a reference copy and reset Velair so schedules, templates, Comfort, Room Assist, and Adaptive Preconditioning defaults are recreated in Fahrenheit.
  • For temperature-unit changes made after installing 1.2.0, use the migration action only when all stored Velair temperatures still use the previous Home Assistant unit. The Settings explanation shows the conversion direction before anything is changed.
  • Climate firmware, supported HVAC modes, compressor or valve logic, temperature ranges, and temperature steps still apply because Velair works through Home Assistant's standard climate services.

📸 Screenshots

✨ New: Environmental Comfort

A responsive Comfort view for monitoring temperature, humidity, CO2, air quality, and data freshness.

Velair Environmental Comfort view

🚀 Improved: Zone overview

A clearer overview of each zone’s current activity, temperatures, Room Assist state, comfort, air quality, and sensor data.

Velair Zone overview enhancements

🚀 Improved: Room Assist

Room Assist now explains the room-to-target difference separately from the offset applied to the thermostat.

Velair Room Assist enhancements

Velair 1.1.0

Choose a tag to compare

@cgonfer cgonfer released this 06 Jul 18:27
208af7c

Velair 1.1.0 is here.

After several weeks of work, testing, feedback, and many small refinements, this release brings a big step forward for Velair: Adaptive Preconditioning, Room Assist, and optional climate controls are now part of the stable release.

I am really happy to make this available for real Home Assistant installations. The goal is still the same: keep climate scheduling local, understandable, and useful, while giving users enough flexibility to adapt it to how their homes actually work.

Adaptive Preconditioning helps Velair start heating or cooling before a scheduled block so the room is closer to the target temperature when the block begins. Room Assist makes it possible to use a separate room temperature sensor while still controlling the real climate.* entity, which is especially useful for TRVs or devices whose built-in temperature reading does not represent the actual room. Optional climate controls add support for things like fan mode, presets, swing modes, and humidity when the climate entity supports them.

Everything continues to work locally inside Home Assistant. Velair does not send schedules, climate history, room sensor data, outdoor sensor data, or learning data to external services.

Thank you to everyone who tested the beta, asked questions, reported edge cases, and helped shape this release.

✨ Added

  • Adaptive Preconditioning per managed climate, with independent local learning for heating and cooling.
  • A dedicated Preconditioning tab to enable the feature, tune limits, inspect learning status, view live predictions, reset settings, and reset heat or cool learning independently.
  • Optional outdoor temperature sensor context for Adaptive Preconditioning, used locally when comparing similar historical observations.
  • Export and safe import of preconditioning settings and collected learning observations, matched by exact climate entity IDs.
  • A Preconditioning Lovelace view.
  • Room Assist for using a separate room temperature sensor while Velair still controls the real climate.* entity.
  • A dedicated Room Assist tab with per-climate setup, refresh delay, maximum assist delta, and live temperature-scale status.
  • Room Assist Lovelace cards, including options to hide the on/off switch, sensor picker, maximum assist delta, refresh delay, or live status for compact dashboards.
  • velair.enable_room_sensor_assist and velair.disable_room_sensor_assist services for automation-driven room sensor control.
  • Automation events when Room Assist applies or restores an assisted target.
  • Optional climate controls in schedule blocks, templates, boosts, and velair.set_temperature, including fan mode, preset mode, swing mode, horizontal swing mode, and target humidity when supported by the climate entity.
  • A velair.cancel_boost service to end an active boost early and return to the appropriate scheduled or previous climate state.

🚀 Improved

  • Next events now show both the scheduled block time and the calculated preconditioning start while keeping target temperature and mode visible.
  • Adaptive Preconditioning predictions now scale learned thermal behavior by the current temperature delta, so small and large future gaps can be estimated from learned room behavior.
  • Partial preconditioning observations now act as conservative lower bounds without becoming permanent fake completion times.
  • Heat and cool learning histories are stored separately so seasonal use in one direction does not evict data from the other.
  • Adaptive Preconditioning live predictions include optional calculation details for sample counts, partial lower bounds, intermediate estimates, rounding, and final lead time.
  • heat_cool scheduled blocks are classified into the effective heating or cooling preconditioning direction based on the current temperature delta.
  • Room Assist can run on normal scheduled blocks and on blocks that Adaptive Preconditioning has started early.
  • Room Assist aligns assisted targets with each climate entity's supported temperature step and ignores smaller movements.
  • Room Assist keeps monitoring after the room reaches target, so assistance can start again if the room drifts away during the same block.
  • Today's timeline opens near the current time on narrow screens and keeps useful block labels visible while scrolling.
  • Overview tables, Next events, Active boosts, Today's timeline, and Zone overview now have more consistent spacing, sticky behavior, and mobile alignment.
  • Optional climate controls in schedule and template blocks now use a cleaner icon-only button style.
  • Lovelace card editor options now adapt to the selected card view, only showing thermostat ordering, filtering, first weekday, or Room Assist visibility options where they apply.
  • Lovelace cards can limit zone-based views to selected thermostats without changing stored schedules or scheduler behavior.
  • Settings now highlights climates with Adaptive Preconditioning or Room Assist enabled.
  • Import/export panels now keep independent heights on larger screens.
  • Velair now respects Home Assistant's 12-hour or 24-hour time format preference across date/time labels and schedule timeline text.
  • Documentation now includes dedicated user and developer guides for Adaptive Preconditioning and Room Assist.

🛠️ Fixed

  • Fixed Preconditioning and Room Assist Lovelace cards not persisting climate-specific setting changes made from dashboard cards.
  • Fixed Room Sensor Assist not reacting to room sensor changes when the active schedule block had not created an assisted target yet.
  • Fixed Room Sensor Assist recalculating against the previous schedule block while Adaptive Preconditioning or an active assisted runtime target had already started a future block early.
  • Fixed Room Sensor Assist showing or recalculating against a schedule block that had already been removed.
  • Fixed Room Assist live status not refreshing when the climate target temperature changes.
  • Fixed Room Assist showing a later assist recalculation time instead of the original Adaptive Preconditioning start time.
  • Fixed Room Assist offset help tooltips creating unnecessary horizontal scroll near the edge of the live temperature scale.
  • Fixed Room Assist temperature scale labels so close temperature markers remain readable without overlapping.
  • Fixed Room Assist live temperature markers so overlapping marker colors match the visible label order.
  • Fixed Room Assist and Adaptive Preconditioning losing the active early-start target after schedule edits that reused the same block time.
  • Fixed Adaptive Preconditioning events that should already have started so they apply immediately and remain visible in Next events until the scheduled target time.
  • Fixed heat_cool scheduled blocks using Adaptive Preconditioning but not appearing under the effective Heat or Cool learning section in the Preconditioning tab.
  • Fixed the schedule template selector staying on the last applied template instead of returning to the placeholder.
  • Fixed templates saved from the schedule editor losing optional climate controls such as fan mode, preset, swing, or humidity.
  • Fixed a Home Assistant thread-safety warning that could happen when Adaptive Preconditioning recalculated plans after temperature changes.
  • Fixed several mobile layout issues in Next events, Today's timeline, empty timeline rows, sticky headers, Preconditioning, Room Assist, and optional climate controls.
  • Fixed boost end and renewal behavior so Velair restores the expected climate state.
  • Automation events now also cover direct velair.set_temperature actions and automatic pause endings.

🧭 Notes

  • Adaptive Preconditioning needs real observations before learned predictions become useful. Early behavior uses the configured initial model until enough completed local samples exist.
  • Room Assist depends on Home Assistant state updates from the selected room sensor and managed climate entity. If those entities do not publish useful updates, Velair cannot infer intermediate room movement.
  • Device firmware, valve logic, compressor protection, supported HVAC modes, and min/max climate limits still apply because Velair works through Home Assistant's standard climate services.

v1.1.0-beta.2: feat: add adaptive preconditioning beta

Choose a tag to compare

@cgonfer cgonfer released this 30 Jun 13:52

Velair 1.1.0-beta.2

Beta 2 Update

  • Fixed a Home Assistant thread-safety warning that could happen when Adaptive Preconditioning recalculated plans after temperature changes.

This beta introduces Adaptive Preconditioning, a new local-first way for Velair to start heating or cooling before a scheduled block so the room is closer to the target temperature when the block begins.

It is intended for real-world testing before the stable release. The feature learns from each enabled climate locally inside Home Assistant and does not send calibration data outside your installation.

✨ Added

  • Adaptive Preconditioning per climate, with independent learning for heating and cooling.
  • A dedicated Preconditioning tab to enable the feature, tune its limits, inspect learning status, and reset settings or calibration when needed.
  • Optional outdoor temperature sensor support, used as local context when comparing previous observations.
  • Export and safe import of preconditioning settings and collected measurements, matched by exact climate entity IDs.
  • A Preconditioning Lovelace view, plus support for limiting Lovelace cards to selected thermostats.
  • New automation events when a preconditioning plan changes, including the calculated start time, lead time, direction, temperatures, model source, and learning context.
  • A velair.cancel_boost service to end an active boost early and return to the appropriate scheduled or previous climate state.

🚀 Improved

  • Next events now show both the scheduled block time and the calculated preconditioning start while keeping target temperature and mode visible.
  • Today's timeline opens near the current time on narrow screens and keeps useful block labels visible while scrolling.
  • Overview tables and cards have more consistent spacing, sticky behavior, and mobile alignment.
  • Settings now shows which climates have preconditioning enabled.
  • The Preconditioning UI is clearer on narrow screens, in the panel, and inside Lovelace dashboard columns.
  • Import/export panels now keep independent heights on larger screens.

🛠️ Fixed

  • Fixed a Home Assistant thread-safety warning that could happen when Adaptive Preconditioning recalculated plans after temperature changes.
  • Updated frontend bundles are less likely to remain hidden behind stale Home Assistant sidebar cache behavior.
  • Fixed several mobile layout issues in Next events, Today's timeline, empty timeline rows, and sticky headers.
  • Ending or renewing a boost now preserves the expected climate state for restoration.
  • Automation events now also cover direct velair.set_temperature actions and automatic pause endings.

🧪 Beta Notes

  • Adaptive Preconditioning needs real observations before it becomes useful; early behavior may rely on the configured initial model until enough completed samples exist.
  • For best results, enable it only on climates where Velair is expected to manage the schedule.
  • Please validate timing in your own rooms before relying on it for important comfort periods.

v1.1.0-beta.1: feat: add adaptive preconditioning beta

Choose a tag to compare

@cgonfer cgonfer released this 28 Jun 10:48

Velair 1.1.0-beta.1

This beta introduces Adaptive Preconditioning, a new local-first way for Velair to start heating or cooling before a scheduled block so the room is closer to the target temperature when the block begins.

It is intended for real-world testing before the stable release. The feature learns from each enabled climate locally inside Home Assistant and does not send calibration data outside your installation.

✨ Added

  • Adaptive Preconditioning per climate, with independent learning for heating and cooling.
  • A dedicated Preconditioning tab to enable the feature, tune its limits, inspect learning status, and reset settings or calibration when needed.
  • Optional outdoor temperature sensor support, used as local context when comparing previous observations.
  • Export and safe import of preconditioning settings and collected measurements, matched by exact climate entity IDs.
  • A Preconditioning Lovelace view, plus support for limiting Lovelace cards to selected thermostats.
  • New automation events when a preconditioning plan changes, including the calculated start time, lead time, direction, temperatures, model source, and learning context.
  • A velair.cancel_boost service to end an active boost early and return to the appropriate scheduled or previous climate state.

🚀 Improved

  • Next events now show both the scheduled block time and the calculated preconditioning start while keeping target temperature and mode visible.
  • Today's timeline opens near the current time on narrow screens and keeps useful block labels visible while scrolling.
  • Overview tables and cards have more consistent spacing, sticky behavior, and mobile alignment.
  • Settings now shows which climates have preconditioning enabled.
  • The Preconditioning UI is clearer on narrow screens, in the panel, and inside Lovelace dashboard columns.
  • Import/export panels now keep independent heights on larger screens.

🛠️ Fixed

  • Updated frontend bundles are less likely to remain hidden behind stale Home Assistant sidebar cache behavior.
  • Fixed several mobile layout issues in Next events, Today's timeline, empty timeline rows, and sticky headers.
  • Ending or renewing a boost now preserves the expected climate state for restoration.
  • Automation events now also cover direct velair.set_temperature actions and automatic pause endings.

🧪 Beta Notes

  • Adaptive Preconditioning needs real observations before it becomes useful; early behavior may rely on the configured initial model until enough completed samples exist.
  • For best results, enable it only on climates where Velair is expected to manage the schedule.
  • Please validate timing in your own rooms before relying on it for important comfort periods.

Velair 1.0.0 - Initial Release

Choose a tag to compare

@cgonfer cgonfer released this 14 Jun 16:13
v1.0.0

Add GitHub Actions for HACS validation and releases