Repository navigation
Releases: GuiPoM/ha-sentinel
Release list
v0.8.0b1 — ConfigSubentry par device (beta)
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
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
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
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
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
v0.6.3 - Fix: AppsProvider real-time Supervisor data
Fix
- Use
get_supervisor_client(hass).addons.list()instead of cachedget_addons_list()\n-get_addons_list()returns stale coordinator cache - could showerrorfor 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
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_loadedseverity is nowwarninginstead ofok\n- User-disabled integrations (disabled_by = USER) excluded from monitoring
v0.6.1 — Fix: not_loaded severity + user-disabled integrations
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
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.reloadrestarts 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
v0.5.4 - Code quality refactor
- Remove dead code:
_listeners,get_items_by_provider,update_excluded,update_extra\n- Fixfailure_countnever incrementing in integrations provider - Fix tautological
not_loadedguard in_on_entry_changed\n- Fix early return bypassing_extraopt-in priority - Fix
_async_cleanup_orphaned_entitiesnaming +@callbackdecorator - Fix
_get_device_sourcenon-deterministic set ordering - Fix
DeviceInfoimported from deprecatedhelpers.entitypath - 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