Skip to content

Releases: jl0906/SmartHomeAssistant

0.8.0

Choose a tag to compare

@jl0906 jl0906 released this 26 Jul 09:59
ee2282b

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

Choose a tag to compare

@jl0906 jl0906 released this 25 Jul 15:31
ee2282b

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, and choose branches.
  • Pairing of a motion-driven timer.start automation with the single timer.finished automation 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_trigger sequences 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_rules storage 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

Choose a tag to compare

@jl0906 jl0906 released this 22 Jul 20:05
6a1ac05

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_on as 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_rule WebSocket 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

Choose a tag to compare

@jl0906 jl0906 released this 22 Jul 17:46
69567fb

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

Choose a tag to compare

@jl0906 jl0906 released this 22 Jul 10:07
be2e539

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_emulate classification 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

Choose a tag to compare

@jl0906 jl0906 released this 21 Jul 11:31
239ea04

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 v030 registration.
  • 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.x versions remain visible.
  • The 0.3.0 roadmap now places vacation simulation in 0.4.0.

0.2.1

Choose a tag to compare

@jl0906 jl0906 released this 19 Jul 23:38
e1fef6b

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

0.2.0 Pre-release
Pre-release

Choose a tag to compare

@jl0906 jl0906 released this 19 Jul 18:30
409f589

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.yml workflow 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

0.1.0 Pre-release
Pre-release

Choose a tag to compare

@jl0906 jl0906 released this 19 Jul 15:42
7f92082

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.