Best VMS for Home Assistant
How to wire mixed-brand cameras into Home Assistant via MQTT and webhooks.
The best VMS for Home Assistant is one that publishes events to MQTT, exposes camera streams via RTSP/WebRTC, and runs on the same hardware as your Home Assistant host or alongside it. Banalytics meets all three: it ships an MQTT v3/v5 server, exposes WebRTC live streams, and runs on Windows, Linux x86_64, or Linux ARM64 — including Raspberry Pi. This guide explains the integration pattern.
What a Home Assistant VMS needs
- MQTT publishing — Home Assistant subscribes to topics for binary_sensors, switches, and automations.
- Camera streaming — RTSP for the
generic_cameraintegration or WebRTC for low-latency dashboards. - Object detection — AI-classified events (person, vehicle, package) for relevant automations rather than every motion blip.
- Snapshots and clips — HTTP URLs that Home Assistant can fetch and attach to notifications.
- Runs on the same OS family — Home Assistant OS, Supervised, Container, or Core on Linux/ARM.
How Banalytics integrates with Home Assistant
- Install the Banalytics agent on the same host or on a separate edge device. See install on Windows; on Linux ARM64 use the
linux-arm64-1.0.0.tar.gzarchive. - Add cameras (ONVIF/RTSP/USB) in the Banalytics console. Configure motion detection or YOLO object classification per camera. See YOLO detection.
- Enable the Banalytics MQTT server, or point Banalytics at your existing broker via the MQTT v5 connector.
- In the Banalytics event manager, attach a MQTT set state action to motion and YOLO events, publishing to
banalytics/<site>/<camera>/event. - In Home Assistant, configure
mqttsensors/binary_sensors with state_topic pointing at the same topics. Use the Banalytics RTSP URL or WebRTC URL in yourcamera:integration. - Attach Home Assistant automations to those binary_sensors (turn on lights, send notifications, run scripts).
Example MQTT event from Banalytics
A YOLO-classified event published by Banalytics looks like this on MQTT:
topic: banalytics/warehouse-a/cam-loading-dock/event
payload: {
"ts": "2026-06-02T10:14:33Z",
"camera": "cam-loading-dock",
"type": "object_detected",
"class": "person",
"confidence": 0.91,
"zone": "loading-dock",
"snapshot": "https://<agent>/snapshots/2026-06-02T10-14-33.jpg"
}
Home Assistant subscribes to the topic via an mqtt binary_sensor and triggers an automation when class == "person" and confidence > 0.8.
How Banalytics compares to other Home Assistant-friendly options
| Option | Strength | Best for |
|---|---|---|
| Banalytics | Cameras + MQTT + Modbus + dashboards + AI + multi-site, one agent | Mixed homelab and multi-site setups, industrial sensors alongside cameras |
| Frigate | Real-time AI detection in Docker, native HA integration | Single-site, AI-first NVR, deep Home Assistant binding |
| Shinobi | Self-hosted, plugin-based | Tinkerers comfortable with Node.js/MariaDB |
| MotionEye / Motion | Very lightweight | 1–2 cameras on a small Pi |
| Direct RTSP | No middleware; HA pulls RTSP directly | One camera, no recording or alerts |
For a head-to-head with Frigate (the closest direct alternative) see Banalytics vs Frigate.
Hardware that runs both Home Assistant and Banalytics
- Raspberry Pi 4/5 (4–8 GB) — runs HA OS or Container; Banalytics ARM64 archive runs alongside. Good for 2–4 cameras at 1080p.
- Mini-PC (Intel N100/N305) — runs HA Supervised plus Banalytics; comfortable with 6–10 cameras and CPU-only YOLO.
- NUC / NAS (Intel i3/i5) — many cameras, longer retention, YOLO at higher resolution.
- For an Intel iGPU box, OpenVINO-accelerated YOLO is possible. For NVIDIA, CUDA-accelerated YOLO is supported.
Plug into Home Assistant in under an hour
Banalytics speaks MQTT natively. No glue scripts.