Skip to content

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 03 May 08:49

Homelable for Home Assistant — v0.1.2

The "scan that actually works on HA OS, and watching it work is fun" release.

✨ Highlights

🔍 Service detection on HA OS

python-nmap is just a wrapper around the nmap binary, and HA OS doesn't ship nmap. So before this release, every scan on a Home Assistant OS / Supervised install came back with hosts but no services. You'd see a Proxmox box show up with the right MAC vendor… and nothing else.

Homelable now detects when the binary is missing and falls back to a pure-Python TCP connect scan that:

  • probes every port in the curated homelab port list (~80 ports — Proxmox, ESXi, Mikrotik, Plex, *arr stack, MQTT, Postgres, Redis, …),
  • grabs SSH/FTP/SMTP/DB banners on connect,
  • sends a HEAD / probe to HTTP ports and parses the Server: header,
  • handles TLS ports with a permissive context (homelab self-signed certs are fine),
  • runs entirely on stdlib — zero new dependencies.

If you have nmap installed (HA Container with the binary, HA Core), you keep the full -sV nmap path with OS detection. The mode is logged once at startup so you know what you're getting.

⚡ Live progressive scan

Scans no longer freeze the panel for 60 seconds and then spit out the whole list at once.

  • Phase 1 (ping + ARP + reverse DNS) emits device_discovered per host as soon as it's identified. Ghost cards appear in the pending list with just an IP, pulsing.
  • Phase 2 (port scan + service fingerprinting) emits device_enriched per host as each one finishes. Services and hostnames pop in live.
  • mDNS-discovered devices land fully populated in one frame.

You can watch a /24 light up.

Under the hood: new homelable/scan/subscribe WS command, new discovering pending status, dispatcher-based fan-out, single Store save at scan end (no I/O hammering on a /24).

🧰 Internal

  • tcp_scanner.py — new module, ~180 LOC, stdlib only.
  • scanner.run_scan(..., on_event=callback) — optional async callback for live events.
  • coordinator._handle_scan_event — applies events to in-memory pending Store + broadcasts via async_dispatcher_send.
  • 93 backend tests (3 new for streaming + 13 new for the TCP fallback), 767 frontend tests (1 new reducer test).

🐛 Quick fix from v0.1.1

The Sidebar's "update available" badge now polls Pouzor/homelable-hacs (this repo) instead of the standalone homelable repo. HACS users no longer get nagged when the standalone ships unrelated features.

Install / upgrade

HACS → Homelable → Redownload → pick 0.1.2 → restart Home Assistant.

First-time install: add this repo as a custom repository in HACS (category: Integration), install Homelable, restart HA, then add the integration from Settings → Devices & services.