Skip to content

v1.12.0 — Per-Source Grouping & Custom Group Names

Choose a tag to compare

@KadenThomp36 KadenThomp36 released this 13 May 19:05

Closes #15.

New Features

  • Per-source grouping config. Each source entry can now declare its own grouping block that overrides the card-level grouping. Events from a source with its own override are grouped in isolation — they won't mix into buckets from other sources — and the per-source result is merged back into the global timeline by timestamp. Sources without an override fall through to the card-level config, so existing setups are unchanged.
  • Custom group summary names. grouping.group_name (card-level or per-source) replaces the auto-generated "N X events" text. Supports {count}, {label}, {source}, and {entity} placeholders.
  • Editor UI for both. The Grouping section gains a Group Name input with persistent helper text listing the placeholders. Each source row also gets a Grouping Override expansion panel built from ha-expansion-panel + ha-selector (the same primitives HA's own config editors use). Blank fields inherit the card-level value; a Clear override button drops the entire override. The panel's secondary line auto-updates between "Inherits the card-level Grouping config" and "Customized · N overrides".

Bug Fixes

  • group_by: entity now actually names groups by entity. Previously buildSummary checked label-agreement first, so a bucket of entity-grouped events that happened to share a category (e.g. all default) rendered as "5 default events" instead of the entity name.
  • Source-row Source type + Name fields render with visible chrome. They previously used raw <label> + ha-textfield / ha-select markup with inline flex: sizing; in recent HA frontend builds the textfield rendered without visible chrome. Both now use ha-selector.

Example

type: custom:chronicle-card
sources:
  - type: rest
    name: Frigate
    ws_params:
      type: frigate/events/get
      limit: 30
    grouping:
      window_seconds: 60
      min_group_size: 2
      group_by: category
      group_name: "{count} {label} detections"

  - type: history
    name: Doors
    entities: [binary_sensor.front_door, binary_sensor.back_door]
    grouping:
      group_by: entity
      group_name: "{entity} — {count} events"

grouping:
  # Card-level grouping still applies to any source that doesn't have its own.
  window_seconds: 120
  min_group_size: 3
  group_by: category

Pre-release history

Cumulative result of v1.12.0-rc.1 (logic) → rc.2 (editor UI) → rc.3 (rewrote Grouping Override with HA-native primitives) → rc.4 (fixed invisible source Source type + Name fields).