Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 03 May 12:22

Homelable for Home Assistant — v0.2.0

The "scans actually find services on every install" release.

✨ The change

Phase 2 service detection now runs through a pure-Python TCP connect scan. The nmap path is gone.

Why: diagnostic logging in v0.1.3 confirmed that on HA OS, python-nmap would call the binary, the binary would run, and nm.all_hosts() would come back empty for every host — so every discovered device landed in the pending list with zero services. Even users with a working nmap binary in the container hit this. Switching scanning backends fixes it deterministically.

What you gain:

  • Service detection works on every install — HA OS, Container, Core, dev container, doesn't matter.
  • No external binary, no XML parsing, no root requirement, no capability headaches.
  • Faster startup (no shutil.which("nmap") probe, no python-nmap import).

What you lose:

  • nmap's -sV version probe (replaced by HEAD probe + passive banner grab on connect — different but functional).
  • nmap OS detection (which only worked as root, which HA never runs as, so in practice: nothing).

The pending-list shape, the WS event protocol, the streaming UX — all unchanged.

🧰 Internal

  • Removed: _nmap_scan_single, _extract_os, _mock_scan, _NMAP_* flags, mode-detection log, python-nmap requirement.
  • Renamed: _nmap_scan_scan_target.
  • discovery_source value: tcp (was nmap).
  • 93/93 backend tests, 767/767 frontend tests, ruff clean. ~150 lines deleted, ~50 added.

Install / upgrade

HACS → Homelable → Redownload → pick 0.2.0 → restart Home Assistant. Run a scan; services should populate live as each host enriches.

If you've been on v0.1.3+ with the [trace] debug logs, those are gone too — back to a clean log.