Releases: jl0906/SmartHomeAssistant
Releases · jl0906/SmartHomeAssistant
Release list
0.8.0
Changelog 0.8.0
Local, explainable room learning for households with no, some, or many
motion/presence sensors.
Added
- New Learning sidebar page, independent from global light control.
- Opt-in learning globally and separately for each room.
- Per-room selection of observed lights and optional motion, presence, and
illuminance context. - Automatic room capability profiles: manual/sensorless, partly automated,
and sensor-rich. - Compact local observations containing time bucket, weekday/weekend, sun
phase, optional brightness, lux, and motion context. - Best-effort source classification for user, automation, unknown, and
SmartHomeAssistant-owned actions. - Explainable half-hour light patterns with observation count, confidence,
maturity, and generated Home Assistant automation preview. - Suggestion decisions for accept, ignore, and permanent exclusion.
- Dedicated bounded learning store with at most 2,000 observations.
- Administrator-only WebSocket commands for all learning configuration,
decisions, and data deletion. - Learning diagnostics containing only aggregated public runtime status.
Safety
- Learning is disabled by default and never enables global light control.
- SmartHomeAssistant-owned actions are discarded before storage and never
increase confidence. - Events identified as automation actions are stored as context but excluded
from user-pattern generation. - Version 0.8.0 observes and recommends only; accepted suggestions are kept as
reviewed automation drafts and are not executed autonomously. - Sensorless rooms can learn timing and brightness, but learned turn-off
suggestions cannot be accepted for automatic use without an occupancy signal. - No cloud service, external AI, or network connection is used.
Changed
- Sidebar frontend component advanced to release-specific
v080. - Config entry minor version increased to 8.
- Existing 0.7.0 rooms, imports, automation rules, control rules, and backups
migrate additively.
0.7.0
Changelog 0.7.0
Advanced YAML light-automation import for nested actions, paired timer workflows, adaptive profiles, and sequential master/slave motion rules.
Added
- New advanced automation analyzer with a JSON-safe intermediate representation.
- Recursive discovery of supported service actions inside nested
if,then,else, andchoosebranches. - Pairing of a motion-driven
timer.startautomation with the singletimer.finishedautomation that switches off the same lights. - New Advanced YAML bundles cards and a dedicated review/import popup.
- Transactional import of multiple source automations into one SmartHomeAssistant room configuration.
- Trigger-specific motion-to-illuminance mappings.
- Structured sun-elevation lux profiles with automatic toggle and manual helper fallback.
- Structured illuminance-to-brightness profiles with automatic toggle and manual helper fallback.
- Conversion of source ownership-marker helpers into SmartHomeAssistant's internal managed-light ownership.
- Support for one-sided daily time conditions such as
after: 05:00:00. - Recognition of supported
wait_for_triggersequences as a standalone managed automation rule. - One-use temporary grants where the first motion sensor authorizes a second motion sensor for a fixed window.
- Separate switch-on and switch-off transition values.
- Separate inactivity switch-off delay and maximum on-time.
single-style sequence protection and restartable timer-room behavior.- New administrator-only WebSocket imports for advanced bundles and sequences.
- Additive
automation_rulesstorage and advanced room-profile fields. - Import records with multiple source IDs, entities, names, enabled states, and raw backup configurations.
- Undo that removes the generated rule, restores the previous room, and re-enables every source disabled by the import.
- Regression tests based on the hallway adaptive-light pair and bedroom-to-hallway night-light sequence.
Safety
- Source YAML files are never edited, rewritten, or deleted.
- Templates are never executed; only recognized entities, helpers, numeric branches, and fixed durations are extracted.
- Advanced imports require stable automation IDs, valid entities, a valid target area, and an unambiguous structural match.
- Timer bundles require exactly one matching off automation and identical on/off light targets.
- Keep originals stores the replacement disabled to prevent duplicate control.
- Disable originals is applied only after the imported configuration validates and is stored successfully.
- Failed multi-source operations roll back the room/rule and re-enable sources changed during the transaction.
- Temporary sequence grants and timers are discarded after restart.
- The master sensor in a sequence never switches the light directly; only the target presence sensor can consume its grant.
Changed
- Sidebar frontend component advanced to release-specific
v070. - Config entry minor version increased to 7.
- Room runtime now supports trigger-based lux selection, adaptive structured profiles, distinct transitions, maximum on-time, and timer-expiry switch-off.
- The Automations page suppresses misleading generic import suggestions when an advanced bundle or sequence has been recognized.
- Learning moved to 0.8.0 and vacation simulation moved to 0.9.0.
0.6.0
Changelog 0.6.0
Import and guided conversion of Home Assistant automations into SmartHomeAssistant control rules.
Added
- Independent control-automation analysis alongside the existing room-light analysis.
- New Control automations filter and counters on the Automations page.
- Separate Import as control rule action without preventing a room import from the same source.
- Direct recognition of
automation.turn_off→ fixed delay →automation.turn_onas a temporary disable rule. - Direct recognition of the inverse sequence as a temporary enable rule.
- Conversion of simple entity-state prerequisites on light automations into continuous state requirements.
- Guided control-rule setup for recognizable templates, complex state triggers, additional actions, and multiple automation targets.
- Suggestions for template-referenced source entities and recognizable previous-event time windows.
- Automatic target-room suggestion when a controlled Home Assistant automation resolves to one configured room.
- Editable five-step import popup for source, state, effect, target room, duration, conditions, priority, observation mode, and enabled state.
- Separate room-import and control-rule-import records for the same source automation.
- Administrator-only
smart_home_assistant/import_control_ruleWebSocket command. - Activity entries for imported and undone control rules.
- Undo support that removes the imported control rule and re-enables a source disabled by the import.
- Repository tests for direct enable/disable sequences, state prerequisites, previous-event templates, multiple targets, API exposure, and release metadata.
Safety
- Control-rule imports can keep or disable the original automation; manually managed YAML is never edited or deleted.
- Keeping the original stores the imported control rule disabled to avoid duplicate behavior.
- Partial imports require explicit confirmation before unsupported source behavior is omitted.
- Blueprints, missing stable IDs, ambiguous sources, multiple time windows, and non-direct targets are not silently translated.
- Every imported rule passes the normal control-rule entity, room, conflict, priority, override, and cycle validation.
- Failed storage operations remove the incomplete imported rule and re-enable a source disabled during the transaction.
- Source backups remain excluded from diagnostics and ordinary frontend responses.
Changed
- Sidebar frontend component advanced to release-specific
v060. - Config entry minor version increased to 6.
- The Automations page can classify one source as both a room automation and a control automation.
0.5.0
Changelog 0.5.0
Master/dependency control rules for advanced light behavior.
Added
- New Control rules page and five-step guided setup wizard with effect-specific fields.
- Previous-event grants with configurable duration and one-time or unlimited use.
- Continuous entity-state requirements.
- Temporary blocks and temporary room-rule enable/disable effects.
- Temporary overrides for brightness, switch-off delay, transition, and selected room lights.
- Multiple room requirement modes: all grants required or any grant sufficient.
- Up to ten additional exact-state conditions per rule, combined with all/any logic.
- Five readable priority levels with deterministic conflict resolution.
- Observation mode that records intended effects without changing runtime control.
- Entity-state and SmartHomeAssistant-room sources.
- Active-effect cards with expiration and remaining-use information.
- Manual clearing of all short-lived effects.
- Activity entries for granted, consumed, expired, rejected, blocked, and shadow-mode decisions.
- Control-source discovery for binary sensors, helpers, people, trackers, switches, sensors, locks, covers, and selected state domains.
Safety
- Direct and indirect room-to-room cycles are rejected before saving.
- Target rooms must already be configured.
- Override lights must already belong to the target room.
- A normal previous-event grant cannot reuse the target room's own active presence trigger.
- Equal-priority block/disable effects win over enable effects.
- Conflicting equal-priority override fields are rejected before saving or re-enabling a rule.
- Disabled rules are fully revalidated before they can be enabled, preventing dormant cycles from becoming active.
- Temporary effects are intentionally not restored after restart.
- Temporary effects are cleared after configuration changes and when global light control is disabled.
- Existing room, import, and YAML-emulation data remains backward compatible.
Changed
- Sidebar frontend component advanced to release-specific
v050. - Config entry minor version increased to 5.
- Activity history limit increased to 200 entries.
- Roadmap moved learning and vacation simulation behind the dependency foundation.
0.4.0
Changelog 0.4.0
Guided conversion of complex YAML light automations.
Added
- A setup popup for light automations that are not directly importable but can be reproduced with SmartHomeAssistant's room controller.
- Manual mapping of target room, lights, motion/presence sensors, illuminance sensor, lux threshold, switch-off delay, transition, and day/evening/night brightness.
- Optional activation of the generated SmartHomeAssistant room rule.
- Choice to keep the original YAML automation or disable it after a successful conversion.
- Clear preview that templates, notifications, branches, and other unsupported side effects are not copied.
- Dedicated
can_emulateclassification and activity-log entry for guided conversions. - Transactional rollback if room storage or import backup creation fails.
Safety
- The popup is only offered for unsupported light automations with a stable automation ID and without a blueprint.
- Manually managed YAML files are never edited or deleted.
- The original automation is disabled only after the selected replacement configuration validates successfully.
- Previous room settings and the complete source configuration are backed up for undo.
- The generated room configuration remains subject to all existing entity, range, duplicate-light, and room validation rules.
0.3.0
Changelog 0.3.0
Automation discovery and safe import release.
Added
- New Automations page in the SmartHomeAssistant sidebar.
- Discovery of all loaded Home Assistant automation entities.
- Display of automation state, mode, last execution, source type, blueprint status, and sanitized source configuration.
- Conservative analysis of direct motion/presence-driven light automations.
- Extraction of lights, presence sensors, lux conditions, daily time windows, brightness, transitions, and switch-off delays.
- Full, partial, unsupported, and non-light classifications.
- Explicit confirmation before partially supported behavior is omitted.
- Conflict detection between existing Home Assistant automations and configured SmartHomeAssistant rooms.
- Import into a selected SmartHomeAssistant room.
- Optional source behavior: keep, disable, or delete.
- Automatic deletion restricted to stable automation IDs in the standard
automations.yaml. - Full local backup before any requested deletion.
- Undo for kept or disabled imports.
- Restoration of deleted Home Assistant automations and prior room settings.
- Full Home Assistant automation reload after deletion and restoration.
- Recovery path for deletions that completed before final import confirmation.
- Import, deletion, rollback, undo, and restoration entries in the activity log.
- Configurable light transition duration.
- Optional daily room-control activity window.
- Additional diagnostics for automation analysis and safe import metadata.
Safety
- Automation discovery is read-only until an administrator explicitly starts an import.
- Complex templates, blueprints, control-flow actions, indirect light targets, and ambiguous sequences are rejected instead of approximated.
- Original source configurations are excluded from diagnostics and frontend payloads.
- Frontend previews redact obvious credential keys.
- Failed imports restore the previous room configuration and re-enable a source disabled during the failed transaction.
- Failed source deletion rolls back the pending SmartHomeAssistant import.
- A completed source deletion never discards its backup when finalization is interrupted.
- Existing room configurations can only be replaced after explicit confirmation.
Changed
- Sidebar frontend component advanced to the release-specific
v030registration. - Config entry minor version increased to 3.
- The manifest now declares the Home Assistant automation integration as a dependency.
- The GitHub release badge includes pre-releases so early
0.xversions remain visible. - The 0.3.0 roadmap now places vacation simulation in 0.4.0.
0.2.1
Changelog 0.2.1
Corrective release for the 0.2 frontend rollout.
Fixed
- Replaced the old sidebar panel registration during integration setup instead of retaining the already registered 0.1 panel.
- Assigned the 0.2.1 frontend its own web-component name so an already loaded 0.1 component cannot block registration.
- Assigned the bundled JavaScript a release-specific static URL.
- Disabled static cache headers for the bundled panel file.
- Removed hard-coded 0.2 labels from the panel and now display the backend release version.
- Added consistency tests for manifest, backend version, frontend component name, panel registration, and cache settings.
Included
- All reliable room-based light-control functionality introduced for 0.2.0.
0.2.0
Changelog 0.2.0
First active light-control release.
Added
- Safe, local, room-based light-control engine.
- Individual room configuration in the sidebar panel.
- Selection of multiple lights and multiple motion/presence sensors per room.
- Optional illuminance sensor and configurable lux threshold.
- Separate day, evening, and night brightness profiles.
- Configurable day, evening, and night start times.
- Configurable switch-off delay.
- Configurable manual-override duration.
- Global light-control switch, disabled by default.
- Individual room switches, disabled by default.
- Runtime overview with pending switch-off timers, manual overrides, and managed lights.
- Activity view for decisions, actions, configuration changes, and errors.
- Persistent room settings using Home Assistant's storage helper.
- GitHub-ready README with release, validation, HACS, Home Assistant, license, and stars badges.
- HACS installation button using the My Home Assistant redirect.
- Combined
.github/workflows/validate.ymlworkflow for Hassfest and HACS validation. - Bundled custom-integration brand assets.
Safety
- Only lights switched on by SmartHomeAssistant are eligible for automatic switch-off.
- Lights already on before a trigger are preserved.
- Manual and external changes start a room-level override.
- New presence cancels pending switch-off timers.
- All configured presence sensors must be inactive before switch-off.
- Duplicate light assignment across rooms is rejected.
- Global and room control remain disabled after upgrade until explicitly enabled.
Changed
- Sidebar panel is no longer read-only.
- Discovery payload now reports active light-control capability and brightness support.
- Config entry minor version increased to 2.
- Minimum documented Home Assistant version remains 2026.7.0.
0.1.0
Changelog 0.1.0
Initial read-only foundation release.
Added
- UI Config Flow with a single integration instance.
- Administrator-only SmartHomeAssistant sidebar panel.
- Live discovery of areas, lights, motion sensors, occupancy sensors, and illuminance sensors.
- Entity-first and device-second area resolution.
- Room readiness classification.
- Visibility of unassigned, unavailable, disabled, and hidden entities.
- Manual rescan action.
- German and English translations.
- Diagnostics support.