Skip to content

Releases: GuiPoM/ha-sentinel

v0.8.0b1 — ConfigSubentry par device (beta)

Choose a tag to compare

@GuiPoM GuiPoM released this 10 Jun 07:15

v0.8.0b1 — Beta

Breaking changes — voir les notes complètes ci-dessous avant de mettre à jour.

Nouveautés

  • Architecture ConfigSubentry par device : chaque appareil surveillé est maintenant une sous-entrée indépendante de Sentinel. Ajout via le bouton + sur la page de l'intégration.
  • Entités rattachées au device physique : les entités de surveillance d'un appareil apparaissent désormais directement dans la page de l'appareil HA (plus sous le device virtuel "Sentinel").
  • Config par device : grace period override, flag ignored (exclu mais conservé dans la liste), note libre.
  • Auto-discovery opt-in : option enable_device_discovery dans les paramètres globaux (désactivée par défaut).
  • Nettoyage automatique : les subentries dont le device n'existe plus dans HA sont supprimées silencieusement au démarrage.

Breaking changes

  • ignored_device_sources et ignored_device_ids supprimés — les appareils doivent être configurés via le bouton +.
  • Les entity_id des entités devices changent (rattachement au device source).
  • Migration automatique v1 vers v2 au premier démarrage.

Refs

Closes #19

v0.7.3b1 (beta)

v0.7.3b1 (beta) Pre-release
Pre-release

Choose a tag to compare

@GuiPoM GuiPoM released this 26 May 13:19

v0.7.3b1 — Beta

New: automatic HA label assignment to binary_sensor entities (#29)

Sentinel now automatically assigns HA labels to all its binary_sensor entities when they are created:

Label Entities
sentinel All Sentinel binary_sensor entities
sentinel_integration Integration health entities only
sentinel_device Device health entities only
sentinel_app Application health entities only

Labels are useful for organizing entities in the HA UI, filtering in dashboards, and grouping in conditions:

# Example: condition checking if any device sensor is on
condition: template
value_template: >
  {{ label_entities('sentinel_device') | select('is_state', 'on') | list | count > 0 }}

Note: label_entities() cannot be used in entity_id of a state trigger — use the sentinel_item_changed event trigger for per-item automation logic.

See the README for full details.

Beta — do not use in production. Will be promoted to v0.7.3 stable after validation.

v0.7.2

Choose a tag to compare

@GuiPoM GuiPoM released this 26 May 08:38

v0.7.2

Bug fixes

#22 — Stale HealthItem when an integration is disabled at runtime
When an integration was disabled from the HA UI while Sentinel was running, _on_entry_changed returned immediately without cleaning up _items. The entry stayed tracked as a problem indefinitely. Fixed.

#23 — No notification when reason changes without health state flip
When an integration stayed in an error state but its reason changed (e.g. timeout → network error), no notification was fired. Dashboards and automations saw a stale failure cause until the next health flip. Fixed.

#24 — reset_failure_count did not fire the bus event
After calling sentinel.reset_failure_count, the counter was reset in memory but sentinel_item_changed was never fired. Dashboards and automations did not reflect the reset until the next state change. Fixed.

v0.7.1

Choose a tag to compare

@GuiPoM GuiPoM released this 16 May 20:10

v0.7.1

Fix: apps provider — real-time state

Uses addon_info(slug) per add-on for real-time state from the Supervisor's in-memory AppState. EVENT_SUPERVISOR_EVENT as opportunistic rescan trigger, periodic poll as fallback.

Note: a Supervisor bug causes manual stops with non-zero exit code to report error instead of stopped. Upstream issue filed: home-assistant/supervisor#6840

Fix: devices from disabled integrations (issue #13)

Devices whose config entries are all disabled in HA are no longer monitored. Disabling/re-enabling an integration is handled in real-time via EVENT_ENTITY_REGISTRY_UPDATED — no restart required.

Fix: sentinel.reload renamed to sentinel.reload_item

Avoids conflict with HA's reload_all which was causing:
required key not provided @ data['item_id']

Breaking change: update any automation using sentinel.reload to sentinel.reload_item.

UX: config exclusion fields clarified

Descriptions updated to make clear what each exclusion field covers:

  • Excluded integrations: only the integration state is excluded — devices still monitored
  • Ignored device sources: only devices excluded — integration state still monitored
  • Ignored devices: specific devices excluded regardless of source

v0.7.0 — Config flow refactor

Choose a tag to compare

@GuiPoM GuiPoM released this 12 May 22:36

v0.7.0 - Config flow refactor + applications poll interval

Breaking change

Setup no longer shows a form - the integration is created directly with sensible defaults. All settings are available via the Configure button after setup.

Config flow refactored

  • Single options screen with 7 fields in logical order
  • Dropdowns instead of checkbox lists for integrations and device sources
  • Device sources computed dynamically from your device registry
  • Terminology: add-ons → applications (add-ons) throughout UI and documentation

New option

  • Application poll interval (30-300s, default 60s) - how often Sentinel queries the Supervisor

Removed

  • Extra integrations option removed - auto-discovered system entries are never relevant to monitor

v0.6.3 — Fix: AppsProvider real-time Supervisor data

Choose a tag to compare

@GuiPoM GuiPoM released this 12 May 21:15

v0.6.3 - Fix: AppsProvider real-time Supervisor data

Fix

  • Use get_supervisor_client(hass).addons.list() instead of cached get_addons_list()\n- get_addons_list() returns stale coordinator cache - could show error for add-ons that are actually running normally
  • The live Supervisor API always reflects the current real state

v0.6.2 — Fix: AppsProvider correct API + not_loaded severity

Choose a tag to compare

@GuiPoM GuiPoM released this 12 May 20:39

v0.6.2 - Fix: AppsProvider correct API usage

Fixes

is_hassio correct import
Was incorrectly imported from homeassistant.components.hassio - now correctly imported from homeassistant.helpers.hassio which checks hass.config.components. This was causing the Apps provider to silently skip setup on HA OS installations.

Use get_addons_list instead of get_addons_info
get_addons_list returns list[dict] directly from the hassio coordinator cache - lighter, simpler, and always available when the coordinator is loaded.

Also includes (from master)

  • not_loaded severity is now warning instead of ok\n- User-disabled integrations (disabled_by = USER) excluded from monitoring

v0.6.1 — Fix: not_loaded severity + user-disabled integrations

Choose a tag to compare

@GuiPoM GuiPoM released this 12 May 20:05

v0.6.1 - Fix: not_loaded severity and user-disabled integrations

Fixes

not_loaded severity is now warning (not ok)
An integration in not_loaded state without disabled_by should be running but isn't - severity is now warning instead of ok. This fixes the inconsistency where the binary_sensor was on=True (problem) but severity=ok (green icon).

User-disabled integrations excluded from monitoring
Integrations explicitly disabled by the user (disabled_by = USER) are no longer monitored by Sentinel - they are intentionally off and not actionable.

v0.6.0 — AppsProvider: HA OS add-on monitoring

Choose a tag to compare

@GuiPoM GuiPoM released this 12 May 18:17

v0.6.0 - AppsProvider: HA OS add-on monitoring

New: AppsProvider

  • Monitor HA OS add-ons via the Supervisor API
  • Polls get_addons_info() every 60s (hassio coordinator cache)
  • Silently skipped on non-HA OS installations
  • sentinel.reload restarts the add-on via the Supervisor API

Add-on states

State Severity
started ok
error error - Docker failure
unknown warning - initial or post-uninstall state
stopped ok by default (intentional stop)
startup ignored (transient)

New option (Settings -> Sentinel -> Configure)

  • Watch stopped add-ons - when enabled, stopped add-ons are reported as warnings

Event sentinel_item_changed:

  • item_type: "addon" for add-ons (vs "integration" or "device")
  • item_id = add-on slug

v0.5.4 — Code quality refactor

Choose a tag to compare

@GuiPoM GuiPoM released this 11 May 22:38

v0.5.4 - Code quality refactor

  • Remove dead code: _listeners, get_items_by_provider, update_excluded, update_extra\n- Fix failure_count never incrementing in integrations provider
  • Fix tautological not_loaded guard in _on_entry_changed\n- Fix early return bypassing _extra opt-in priority
  • Fix _async_cleanup_orphaned_entities naming + @callback decorator
  • Fix _get_device_source non-deterministic set ordering
  • Fix DeviceInfo imported from deprecated helpers.entity path
  • Remove dead VERSION = "0.1.0" constant
  • Extract shared sentinel_device_info() helper
  • Initialize CONF_IGNORED_DEVICE_* in initial setup options
  • Ruff linting: all checks pass clean