Skip to content

Releases: SlyBase/homeassistant-openmediavault

v2.1.2

16 Apr 23:53

Choose a tag to compare

[2.1.2] - 2026-04-17

Changed

  • Dependabot assignees and ignore rules (.github/dependabot.yml): Added slydlake as assignee for both pip and github-actions ecosystems so dependency PRs trigger notifications. Added ignore rules for pytest, pytest-cov, and pytest-asyncio which are transitively pinned by pytest-homeassistant-custom-component and must only be updated together with PHCC.
  • Missing Dependabot labels (GitHub): Created dependencies, python, and github-actions labels in the repository to match the label configuration in dependabot.yml.

Added

  • Dependency updates in release notes (.github/release.yml, .github/workflows/release.yml): Replaced the custom gh pr list step with GitHub's native auto-generated release notes (generateReleaseNotes). Merged PRs are now automatically categorized by label (Features, Bug Fixes, Dependencies) via .github/release.yml.

Full Changelog: v2.1.1...v2.1.2

v2.1.1

16 Apr 22:43

Choose a tag to compare

[2.1.1] - 2026-04-16

Fixed

  • Standalone device for unmapped filesystems (entity.py): Filesystems without a parent disk (e.g. mergerfs, FUSE mounts, NFS/CIFS shares) now get their own dedicated device in Home Assistant instead of being silently attached to the main OMV hub device. A new get_filesystem_device_identifier() and _build_standalone_filesystem_device_info() create a proper device with the filesystem label, type, and UUID. Disk-backed filesystems continue to map to their parent disk device as before.
  • Virtual filesystem size-based disk matching (coordinator.py): Virtual and network-backed filesystems (mergerfs, NFS, CIFS, SSHFS, overlay, and any FUSE mount) are no longer incorrectly matched to a physical disk via the 8% size tolerance fallback. Previously, a mergerfs pool whose aggregated size happened to be close to a physical disk's size would be silently attached to that disk device.
  • Standalone filesystem device naming (entity.py): Virtual filesystem devices now follow the same naming pattern as other devices — e.g. Mergerfs (mergerfs_test), NFS (share-name), CIFS (backup) instead of the generic Filesystem prefix.

v2.0.5

21 Mar 22:19

Choose a tag to compare

[2.0.5] - 2026-03-21

Fixed

  • CPU and memory sensors not updating (coordinator.py): _HWINFO_REFRESH_MULTIPLIER was set to 60, meaning CPU utilization and memory were only refreshed every 60 scan cycles. With a 10-second scan interval this resulted in updates only every ~10 minutes. The multiplier is now 1 so hwinfo refreshes on every scan cycle.
  • Memory used calculation (coordinator.py): Reverted an incorrect earlier change that computed memUsed as total − free. On systems with aggressive kernel disk caching (e.g. Raspberry Pi), memFree is near zero while large amounts of memory are reclaimable, causing values like 93 % instead of the correct ~28 %. The integration now uses the OMV API's own memUsed field (total − available), which excludes reclaimable cache and matches what the OMV GUI displays.

v2.0.4

21 Mar 18:32

Choose a tag to compare

[2.0.4] - 2026-03-21

Fixed

  • Memory usage percentage (coordinator.py): memUtilization from the OMV API is a fraction (0–1) but was incorrectly used directly as a percentage. Multiplied by 100 so that e.g. 0.168 is now correctly displayed as 16.8 %.
  • Memory used calculation (coordinator.py): memUsed is now calculated as memTotal − memFree (consistent with free -m and hypervisor views like Proxmox) instead of the OMV API's memUsed field, which only counts application memory and excludes kernel cache/buffers.

Added

  • "Memory total" sensor (sensor_types.py, translations): New sensor showing total RAM in MB.
  • "Memory used" sensor (sensor_types.py, translations): New sensor showing used RAM in MB (including kernel cache/buffers, consistent with free -m).

v2.0.3

19 Mar 21:27

Choose a tag to compare

[2.0.3] - 2026-03-19

Build

  • GitHub Actions Node-24 migration (.github/workflows/ci.yml, .github/workflows/release.yml): actions/checkout auf v6, actions/setup-python auf v6 und codecov/codecov-action auf v5 angehoben, damit die Workflows nicht mehr auf das abgekündigte Node-20-Runtime angewiesen sind. Der Test-Job nutzt für Codecov jetzt OIDC auf Pushes und nicht-geforkten PRs; Fork-PRs bleiben wegen bekannter GitHub- und Codecov-Einschränkungen beim tokenlosen Pfad.
  • Release automation (.github/workflows/ci.yml, .github/workflows/release.yml): Versions-Tags wie v2.0.4 triggern jetzt ebenfalls die CI. Nur wenn lint, test und hacs erfolgreich sind, ruft die CI den Release-Workflow als wiederverwendbaren Workflow auf. Der Release-Workflow normalisiert den übergebenen Tag, checkt genau diesen Tag aus und veröffentlicht das ZIP-Asset deterministisch für denselben Release-Tag statt sich auf den Event-Ref des manuellen oder UI-basierten Starts zu verlassen.
  • Release notes from changelog (.github/workflows/release.yml, CHANGELOG.md): Der Release-Workflow extrahiert jetzt den vollständigen Abschnitt der veröffentlichten Version direkt aus CHANGELOG.md und übergibt ihn per body_path an den GitHub Release. Fehlt der Versionsabschnitt, bricht der Workflow explizit ab, damit kein Release mit leeren oder generischen Notes veröffentlicht wird.
  • Dependabot (.github/dependabot.yml): Neue Konfiguration für automatische Dependency-Update-PRs. Python-Pakete in Gruppen test-dependencies und dev-tools, GitHub Actions in github-actions. Wöchentlicher Zeitplan montags 09:00 Europe/Berlin mit open-pull-requests-limit: 5. Kein Auto-Merge — PRs müssen manuell gemergt werden.
  • Dependabot compatibility guardrails (.github/dependabot.yml): Inkompatible Sprünge auf pytest>=9, pytest-asyncio>=1, pytest-cov>=7, pytest-homeassistant-custom-component>=0.13.247 und pycares>=5 werden bis zu einer späteren Home-Assistant-Anhebung ignoriert. Der aktuelle Repo-Stand bleibt damit auf der validierten HA-2025.5-/PHCC-0.13.246-Kombination.
  • Platform baseline (pyproject.toml, .github/workflows/ci.yml, custom_components/omv/manifest.json, hacs.json): Mindestversionen auf Python >=3.13.2 und Home Assistant >=2025.5.0 angehoben. Der Test-Stack folgt jetzt der stabilen Home-Assistant-2025.5-Linie mit pytest-homeassistant-custom-component==0.13.246, homeassistant==2025.5.3, pytest==8.3.5, pytest-asyncio==0.26.0, pytest-cov==6.0.0 und pycares==4.11.0.
  • Test bootstrap compatibility (pyproject.toml): pycares==4.11.0 direkt gepinnt, weil homeassistant==2025.5.3 aktuell aiodns==3.4.0 zieht und diese Kombination unter Python 3.13 mit pycares 5.x bereits beim pytest-Plugin-Import scheitert.
  • Packaging (pyproject.toml): Setuptools-Build-Konfiguration ergänzt, damit pip install -e ".[test]" nicht mehr an einer versehentlichen Flat-Layout-Autodiscovery von reports und custom_components scheitert.

Fixed

  • aiohttp graceful shutdown (custom_components/omv/omv_api.py): OMVAPI.async_close() wartet nach await session.close() einen Event-Loop-Tick mit await asyncio.sleep(0), damit aiohttp seine verzögerten Transport-Cleanup-Callbacks noch innerhalb des aktiven Loops ausführen kann. Das reduziert plattform- und versionsabhängige Teardown-Fehler mit _run_safe_shutdown_loop und macht den Shutdown robuster auch ohne reine Abhängigkeit von neueren Test-Pins.

Security

  • CI-Härtung (.github/workflows/ci.yml): hacs/action@main durch den unveränderlichen Release-Commit d556e736723344f83838d08488c983a15381059a der HACS-Action 22.5.0 ersetzt. Ein mutierbarer main-Ref erlaubt Supply-Chain-Angriffe, bei denen kompromittierter Upstream-Code in der CI ausgeführt werden kann, und der zwischenzeitlich getestete Ref hacs/action@v2 existiert im Upstream-Repository nicht (OWASP A01/A08).