Releases: SlyBase/homeassistant-openmediavault
Releases · SlyBase/homeassistant-openmediavault
v2.1.2
[2.1.2] - 2026-04-17
Changed
- Dependabot assignees and ignore rules (
.github/dependabot.yml): Addedslydlakeas assignee for bothpipandgithub-actionsecosystems so dependency PRs trigger notifications. Added ignore rules forpytest,pytest-cov, andpytest-asynciowhich are transitively pinned bypytest-homeassistant-custom-componentand must only be updated together with PHCC. - Missing Dependabot labels (GitHub): Created
dependencies,python, andgithub-actionslabels in the repository to match the label configuration independabot.yml.
Added
- Dependency updates in release notes (
.github/release.yml,.github/workflows/release.yml): Replaced the customgh pr liststep 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
[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 newget_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 genericFilesystemprefix.
v2.0.5
[2.0.5] - 2026-03-21
Fixed
- CPU and memory sensors not updating (
coordinator.py):_HWINFO_REFRESH_MULTIPLIERwas set to60, 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 now1so hwinfo refreshes on every scan cycle. - Memory used calculation (
coordinator.py): Reverted an incorrect earlier change that computedmemUsedastotal − free. On systems with aggressive kernel disk caching (e.g. Raspberry Pi),memFreeis 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 ownmemUsedfield (total − available), which excludes reclaimable cache and matches what the OMV GUI displays.
v2.0.4
[2.0.4] - 2026-03-21
Fixed
- Memory usage percentage (
coordinator.py):memUtilizationfrom the OMV API is a fraction (0–1) but was incorrectly used directly as a percentage. Multiplied by 100 so that e.g.0.168is now correctly displayed as16.8 %. - Memory used calculation (
coordinator.py):memUsedis now calculated asmemTotal − memFree(consistent withfree -mand hypervisor views like Proxmox) instead of the OMV API'smemUsedfield, 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 withfree -m).
v2.0.3
[2.0.3] - 2026-03-19
Build
- GitHub Actions Node-24 migration (
.github/workflows/ci.yml,.github/workflows/release.yml):actions/checkoutaufv6,actions/setup-pythonaufv6undcodecov/codecov-actionaufv5angehoben, 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 wiev2.0.4triggern jetzt ebenfalls die CI. Nur wennlint,testundhacserfolgreich 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 ausCHANGELOG.mdund übergibt ihn perbody_pathan 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 Gruppentest-dependenciesunddev-tools, GitHub Actions ingithub-actions. Wöchentlicher Zeitplan montags 09:00 Europe/Berlin mitopen-pull-requests-limit: 5. Kein Auto-Merge — PRs müssen manuell gemergt werden. - Dependabot compatibility guardrails (
.github/dependabot.yml): Inkompatible Sprünge aufpytest>=9,pytest-asyncio>=1,pytest-cov>=7,pytest-homeassistant-custom-component>=0.13.247undpycares>=5werden 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.2und Home Assistant>=2025.5.0angehoben. Der Test-Stack folgt jetzt der stabilen Home-Assistant-2025.5-Linie mitpytest-homeassistant-custom-component==0.13.246,homeassistant==2025.5.3,pytest==8.3.5,pytest-asyncio==0.26.0,pytest-cov==6.0.0undpycares==4.11.0. - Test bootstrap compatibility (
pyproject.toml):pycares==4.11.0direkt gepinnt, weilhomeassistant==2025.5.3aktuellaiodns==3.4.0zieht und diese Kombination unter Python 3.13 mitpycares 5.xbereits beim pytest-Plugin-Import scheitert. - Packaging (
pyproject.toml): Setuptools-Build-Konfiguration ergänzt, damitpip install -e ".[test]"nicht mehr an einer versehentlichen Flat-Layout-Autodiscovery vonreportsundcustom_componentsscheitert.
Fixed
- aiohttp graceful shutdown (
custom_components/omv/omv_api.py):OMVAPI.async_close()wartet nachawait session.close()einen Event-Loop-Tick mitawait 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_loopund macht den Shutdown robuster auch ohne reine Abhängigkeit von neueren Test-Pins.
Security
- CI-Härtung (
.github/workflows/ci.yml):hacs/action@maindurch den unveränderlichen Release-Commitd556e736723344f83838d08488c983a15381059ader HACS-Action22.5.0ersetzt. Ein mutierbarermain-Ref erlaubt Supply-Chain-Angriffe, bei denen kompromittierter Upstream-Code in der CI ausgeführt werden kann, und der zwischenzeitlich getestete Refhacs/action@v2existiert im Upstream-Repository nicht (OWASP A01/A08).