Releases: Geek-MD/Homebridge_Monitor
Releases · Geek-MD/Homebridge_Monitor
v0.4.5
v0.4.5 - 2026-05-14
Added
- Node.js update sensor (
update.<name>_nodejs_update): reports whether a newer version of Node.js is available on the Homebridge host. Data is sourced fromGET /api/status/nodejs(Homebridge Config UI X Swagger API).installed_versionreflects thecurrentVersionfield;latest_versionreflectslatestVersion.- Extra state attributes expose
npm_version,architecture, andinstall_pathfrom the same endpoint. - A persistent notification is automatically created in Home Assistant whenever a Node.js update is detected, and dismissed once the host is up to date.
- The entity is translated in all five supported languages (en, es, de, fr, pt).
v0.4.4
v0.4.4 - 2026-05-10
Added
- Persistent update notifications: whenever any of the three update sensors becomes active (Homebridge core, Homebridge UI, or plugins), Home Assistant automatically creates a persistent notification in the notifications panel.
- Each notification includes the installed and latest version numbers and a direct [Open integration] link that takes the user to the Homebridge Monitor integration page, where the corresponding diagnostic update button can be pressed.
- Notifications are automatically dismissed when the update sensor returns to off (i.e., after the update has been applied and the coordinator picks up the new version).
- Each config entry gets its own set of three notification IDs (
homebridge_monitor_{entry_id}_hb_update,…_ui_update,…_plugins_update), so multiple Homebridge instances are handled independently. - All notifications are dismissed when the config entry is unloaded.
v0.4.3
v0.4.3 - 2026-05-06
Added
- Reauthenticate button (
button.<name>_reauthenticate) and domain service (homebridge_monitor.reauthenticate): pressing the button (or calling the service) forces an immediate token renewal without waiting for the next poll cycle.- If the cached JWT is still valid (HTTP 200 on
GET /api/auth/check) → forces a lightweightPOST /api/auth/refreshto obtain a fresh token; falls back to full login on refresh failure. - If the JWT has expired (HTTP 401) or is absent → performs a full
POST /api/auth/login. - Network errors during the validity check → attempts refresh first, then falls back to full login.
- If the cached JWT is still valid (HTTP 200 on
v0.4.2 - 2026-05-06
Changed
update_pluginsservice now accepts an optionalpluginsfield: pass a list of plugin names (e.g.homebridge-eveatmo) to update only those specific plugins. When the field is omitted the service continues to update every plugin that currently has a pending update (previous behaviour is fully preserved). The field is exposed in Home Assistant's Developer Tools → Actions UI with a multi-value text selector. Service schema,services.yaml,strings.json, and all five translation files (en, es, de, fr, pt) have been updated accordingly.
v0.4.1 - 2026-05-06
Fixed
- HTTP 415 on plugin update POSTs:
_async_request()was sending POST requests without a body orContent-Typeheader. The Homebridge Config UI X API requiresContent-Type: application/json, so an empty JSON object ({}) is now sent as the request body, which also causesaiohttpto set the correct header automatically. - HTTP 404 for scoped plugin updates: plugin names like
@homebridge-plugins/homebridge-ewelinkcontain a/that was being used literally in the URL path (e.g./api/plugins/update/@homebridge-plugins/homebridge-ewelink), causing the server to resolve a non-existent route. Plugin names are now URL-encoded withurllib.parse.quote(name, safe="")before being appended to the path, producing the correct/api/plugins/update/%40homebridge-plugins%2Fhomebridge-ewelink.
v0.4.0
v0.4.0 - 2026-05-06
Added
- Proactive token validation (
GET /api/auth/check): at the start of every poll cycle the coordinator checks whether the cached JWT is still accepted by Homebridge before making any authenticated requests. - Token refresh (
POST /api/auth/refresh): when/api/auth/checkreturns HTTP 401, the coordinator attempts a lightweight token refresh before falling back to a full credential re-login. This eliminates unnecessary re-logins caused by normal JWT expiry (~8 h). API_PATH_AUTH_CHECKandAPI_PATH_AUTH_REFRESHconstants added toconst.py.- Update Homebridge Core button (
button.<name>_update_homebridge_core) and domain service (homebridge_monitor.update_homebridge_core) re-added after being temporarily removed in v0.3.3. - Update Homebridge UI button (
button.<name>_update_homebridge_ui) and domain service (homebridge_monitor.update_homebridge_ui) re-added after being temporarily removed in v0.3.3.
Changed
_async_update_data(): the inline token-presence check and post-fetch re-auth block are replaced by a single call to_async_ensure_fresh_token()._async_request(): on HTTP 401 from a plugin update POST, tries_async_refresh_token()before falling back to a full login.
v0.3.3 - 2026-05-06
Changed
- Single update action: removed the "Update Homebridge Core" and "Update Homebridge UI" buttons and their corresponding domain services (
update_homebridge_core,update_homebridge_ui). The sole remaining update action is the Update Plugins button (button.homebridge_update_homebridge_plugins) and service (homebridge_monitor.update_plugins), which covers all packages with pending updates. - Correct HTTP method for plugin updates: the
POST /api/plugins/update/{pluginName}endpoint (confirmed via the Homebridge Config UI X Swagger spec) is now used instead of PUT. This endpoint acceptshomebridge,homebridge-config-ui-x, or any plugin name and queues the update asynchronously. - Removed
API_PATH_UPDATE_HOMEBRIDGEconstant fromconst.py(no longer needed).
v0.3.2 - 2026-05-06
Fixed
- Homebridge core update HTTP 404:
API_PATH_UPDATE_HOMEBRIDGEwas set to/api/update/homebridge, which is not a valid Homebridge Config UI X endpoint and always returned HTTP 404. The correct path is/api/plugins/update/homebridge, consistent with how UI and plugin updates are performed (PUT /api/plugins/update/<package-name>).
v0.3.1
v0.3.1 - 2026-05-05
Fixed
- Homebridge core update failure:
async_update_homebridge_corewas sendingPOST /api/update/homebridgeinstead of the correctPUT /api/update/homebridgerequired by the Homebridge Config UI X REST API. This caused the button to always log aWARNINGand never trigger the update.
Added
- Domain-level services (
homebridge_monitor.update_homebridge_core,homebridge_monitor.update_homebridge_ui,homebridge_monitor.update_plugins): the three update actions are now registered as first-class Home Assistant services under thehomebridge_monitordomain and appear in Developer Tools → Actions without needing to locate thebutton.pressaction manually.- Services are registered when the first config entry is loaded and removed when the last one is unloaded.
- Service descriptions are defined in
services.yamland translated in all supported languages (en, es, de, fr, pt).
- Richer logging throughout the integration: every significant step now emits a structured
DEBUG(orWARNINGon failure) log entry with full context – URL, HTTP method, response status, token lifecycle events, version numbers, and plugin update details – making it much easier to diagnose connectivity or authentication issues from the Home Assistant log.
v0.3.0
v0.3.0 - 2026-05-05
Added
- Diagnostic button – Update Homebridge Core (
button.homebridge_update_homebridge_core): pressing this button (or calling thebutton.pressservice on it) sendsPOST /api/update/homebridgeto Homebridge and writes anINFOlog entry to the Home Assistant log confirming the update was initiated (or aWARNINGon failure). - Diagnostic button – Update Homebridge UI (
button.homebridge_update_homebridge_ui): triggersPUT /api/plugins/update/homebridge-config-ui-xand logs the result. - Diagnostic button – Update Plugins (
button.homebridge_update_homebridge_plugins): triggersPUT /api/plugins/update/<name>for every plugin that currently has a pending update (as reported by the coordinator) and logs which plugins were updated. - All three buttons belong to the Diagnostic entity category and are grouped under the Homebridge device in the Diagnostics section of the HA UI.
- Token auto-refresh: if the stored JWT has expired when a button is pressed, the coordinator re-authenticates automatically before retrying the request.
- Translations for the three new button entities in all supported languages (en, es, de, fr, pt).
v0.2.2
v0.2.2 - 2026-05-05
Fixed
- Untranslated
reauth_successfulmessage: the abort message shown after a successful re-authentication was appearing as the raw keyreauth_successfulin the UI. The translation is now properly defined instrings.jsonand all language files (en, es, fr, de, pt). - Untranslated entity names: the binary sensor and update entity names ("Connectivity", "Homebridge Update", "Homebridge UI Update", "Plugins Update") were hardcoded in English and not translatable. They now use Home Assistant's
translation_keymechanism and are fully translated in all supported languages.
v0.2.1
v0.2.1 - 2026-05-05
Fixed
- KeyError on migration: when upgrading from v0.1.x (which stored no
username/passwordin the config entry) to v0.2.x,async_setup_entryraisedKeyError: 'username'and the integration failed to load. This release addsasync_migrate_entry(VERSION 1 → 2) which fills in empty credential placeholders so the entry can be loaded again. - Reauth notification: if credentials are missing or empty after migration,
async_setup_entrynow callsentry.async_start_reauth()and returnsFalse. Home Assistant automatically shows a persistent "Action required" notification in the integrations panel with a direct link to the credential re-entry form – no manual deletion and re-setup required.
Changed
- Config entry schema bumped to VERSION 2 to track the addition of credentials.
- Options flow now includes
usernameandpasswordfields so credentials can be updated at any time from the integration's Configure menu, without going through a full reauth. - Reauth flow (
async_step_reauth_confirm) added toFlowHandler: validates connectivity and credentials before saving, and reloads the entry on success.
v0.2.0
v0.2.0 - 2026-05-05
Added
- Homebridge REST API authentication: the config flow now asks for a username and password, which are stored in the config entry and used to obtain a JWT access token from the Homebridge API (
POST /api/auth/login). Credentials are validated during setup. - Update sensor – Homebridge (
update.homebridge_homebridge_update): reports whether a Homebridge core update is available, showing the installed and latest versions. Data is sourced fromGET /api/status/homebridge-version. - Update sensor – Homebridge UI (
update.homebridge_homebridge_ui_update): reports whether a Homebridge UI (homebridge-config-ui-x) update is available. Data is sourced fromGET /api/plugins. - Update sensor – Plugins (
update.homebridge_plugins_update): reports whether any installed Homebridge plugin has an update available. The sensor state is on when one or more plugins are outdated; theplugins_with_updatesattribute lists each plugin name together with its installed and latest version. - Token refresh: the coordinator automatically re-authenticates when it receives an HTTP 401 response, so the integration keeps working when the JWT access token expires.
Changed
- Coordinator now returns a structured
HomebridgeDatatyped dictionary instead of a plainbool; the connectivity binary sensor readsdata["connected"]. - Config flow initial step extended with
usernameandpasswordfields. Aninvalid_autherror is shown when the supplied credentials are rejected by Homebridge.
v0.1.1
v0.1.1 - 2026-05-04
Changed
- Options flow now allows editing the Homebridge host (IP address or hostname) and port in addition to the scan interval. Connectivity is validated before saving, and the entry title, unique ID, and stored data are updated automatically.