v0.1.2
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 theServer: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_discoveredper 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_enrichedper 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 viaasync_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.