Getting Started Cameras & Video Detection & Recording Automation & Events Actions Integration & Connectivity Network & Discovery AI & Remote Control MQTT Modbus ZeroMQ System & Administration Comparisons Use Cases Troubleshooting About & Legal
Home / Documentation / Best VMS for Home Assistant: integration pattern with MQTT and WebRTC
Knowledge base Integration guide 5 min read

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_camera integration 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

  1. 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.gz archive.
  2. Add cameras (ONVIF/RTSP/USB) in the Banalytics console. Configure motion detection or YOLO object classification per camera. See YOLO detection.
  3. Enable the Banalytics MQTT server, or point Banalytics at your existing broker via the MQTT v5 connector.
  4. In the Banalytics event manager, attach a MQTT set state action to motion and YOLO events, publishing to banalytics/<site>/<camera>/event.
  5. In Home Assistant, configure mqtt sensors/binary_sensors with state_topic pointing at the same topics. Use the Banalytics RTSP URL or WebRTC URL in your camera: integration.
  6. 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

OptionStrengthBest for
BanalyticsCameras + MQTT + Modbus + dashboards + AI + multi-site, one agentMixed homelab and multi-site setups, industrial sensors alongside cameras
FrigateReal-time AI detection in Docker, native HA integrationSingle-site, AI-first NVR, deep Home Assistant binding
ShinobiSelf-hosted, plugin-basedTinkerers comfortable with Node.js/MariaDB
MotionEye / MotionVery lightweight1–2 cameras on a small Pi
Direct RTSPNo middleware; HA pulls RTSP directlyOne 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.