Skip to content

v0.31.0

Choose a tag to compare

@github-actions github-actions released this 29 Jun 10:54
c130897

Added

  • A banner now nudges you to request a translation when your Home Assistant
    language isn't one Ambience ships yet. It opens a prefilled GitHub issue, and
    dismissing it is remembered per language (region variants such as pt-BR are
    treated separately), so you're never nagged twice for the same language.
  • Documentation help links throughout the panel: each settings tab, condition,
    and the "Apply on every match" toggle now shows a small (?) help icon —
    where it has explanatory text the popover ends with a "Read more" link to the
    matching online documentation page, and where it doesn't the (?) opens that
    page directly in a new tab.
  • A new AI tab in Settings (beta, off by default — turn it on in the
    integration's options: Settings → Devices & services → Ambience → Configure)
    lets you build and fix scenes by
    describing what you want to an AI. Download AI bundle exports a snapshot of your areas,
    entities, exposed actions and current config (presence/location data redacted)
    to hand to an AI; upload the config file it returns back into the same tab to
    preview and import it (new or updated scenes, with any new category created for
    you). Imports go through the normal save path, so they're undoable. A matching
    knowledge pack — a Claude skill, a Claude Code plugin, and a portable guide —
    teaches any AI the Ambience schema and how to read a diagnostic, and stays in
    sync with the integration automatically on each release.

Changed

  • Consolidated the WebSocket scope handling internally (one save dispatcher, a
    shared scope-selector schema, and a single "scope not found" error contract
    across the get / save / enable commands). The only user-visible effect: opening
    an area or floor that no longer exists now shows the same "Unknown area/floor"
    message as trying to save it did.
  • Download diagnostics has moved out of the Traces viewer into each
    category's menu, alongside Run / View traces / Simulate / Auto-triggers.
    It still downloads the same diagnostics bundle scoped to that one (scope,
    category).
  • Removed the "Set up an action to get started" banner. New installs now seed
    default actions, so the prompt no longer applied.
  • Scene-update activity is now logged to the Home Assistant logbook against each
    scope's switch, e.g. Lounge Ambience 'Lights/Daytime Cloudy', so you can
    filter the logbook by area (for area-scoped switches) to see only the activity
    relevant to that space. The devices the scene changes are attributed to it —
    each shows triggered by 'Lights/Daytime Cloudy' (Lounge Ambience). The
    sensor.ambience_scene_updates sensor has been removed — anything referencing
    it (dashboards, automations, logbook filters) must be updated.
  • Per-scope pause switches are now always created for every enabled scope. The
    Scope-level pause switch toggle in the Advanced settings has been removed.
    Installs that previously had the toggle off will see new switch entities and
    devices appear after upgrading. The pause-and-auto-resume behaviour of those
    switches is unchanged.

Fixed

  • The optional "set up Workday & Weather" hint and the "install Fado Light
    Fader" notice now reappear after you delete and recreate the Ambience
    integration. Previously, dismissing either one hid it for good in that browser
    — even on a brand-new install — because the dismissal wasn't tied to the
    install. Each dismissal is now remembered per install, so a fresh setup starts
    with a clean slate.
  • When a scene is skipped because its scope's pause switch is off, the trace
    timeline now says "Skipped — the scope's pause switch is off." It previously
    referred to a non-existent "category switch".
  • A negated group in a state condition (NOT (… AND …)) no longer loses its
    negation when you change the group's AND/OR operator — that previously dropped
    the NOT silently and inverted the condition's meaning.
  • A category add/edit that the server rejects now rolls back in the Settings
    panel instead of continuing to show the rejected change as if it had saved.
  • Scene shadowing / ordering hints for occupancy and people duration
    gates are now correct for the "held for less than" mode, and no longer relate
    two predicates that use different duration modes — either could surface a
    spurious "this scene can never win" warning or mis-order the scene list.
  • Clearing every sensor from an occupancy or lux condition now removes
    the condition, instead of leaving behind a no-op "any sensor" row.
  • The lux range min/max inputs now reject fractional values inline ("Bounds
    must be whole numbers.") instead of letting them through to a generic save
    error from the backend.
  • A people condition whose who is a present-but-empty list (who: []) is
    now rejected on save and on import / AI authoring, matching the editor —
    previously it slipped through and silently ran as "all persons". Omit who
    entirely to mean all tracked persons.

Removed

  • sensor.ambience_scene_updates — replaced by per-scope logbook entries on
    each scope's pause switch (see above).
  • The Scope-level pause switch setting — scope switches are now always on.

Security

  • The diagnostics download and the AI bundle now scrub more before they
    leave Home Assistant — both are meant to be safe to paste into a GitHub issue
    or an AI chat. Newly redacted: alarm/lock codes and other secrets in scene
    action parameters; sensitive exposed-action defaults (push tokens, message
    bodies, recipients); the rendered detail of a state condition that targets a
    person or device-tracker; the zone label of a multi-person "for duration"
    gate; and a person/device-tracker entity id referenced directly by a scene's
    conditions
    in the exported config (e.g. a state rule that tests where
    someone is, or an unavailable rule on a device-tracker) — previously the bare
    entity id slipped through the config dump even though its trace detail was
    already scrubbed.
  • The trace debug log now records only the names of a scene action's
    parameters, never their values, so secrets such as alarm/lock codes or push
    tokens can't leak into a log that gets pasted into a bug report. (Debug logging
    is off by default; the full values remain available via the admin-only trace
    view.)

Full Changelog: v0.30.0...v0.31.0