← Back to blog

How the AutoBrain × Home Assistant Integration Actually Works

AutoBrain Team · 6 September 2026 · Integrations · Part 1 →

Part 1 told you what was coming. This is the part most blog posts skip: how the integration actually behaves on your network, what the wire format looks like, why we made it local-first, and what you'll need on day one of the beta. Read Part 1 first.

The 30-second architecture

Every AutoBrain instance runs an embedded Home Assistant WebSocket client. It speaks directly to HA on your network — no cloud relay, no port forwarding, no API keys to copy between tabs. Only processed analytics leave the AutoBrain container; raw OBD2 telemetry, GPS data and identifying information never do.

[OBD2 adapter] → [AutoBrain service] → [processed entities] → [HA WebSocket] → [Lovelace]
                                        ↓
                                 [local SQLite cache]

What's on the wire (and what isn't)

Pushed: fuel L/100km rolling averages, cost per km, service countdown (km + days), fault-code summaries (not raw PIDs), trip-start/trip-end events.

NOT pushed: raw OBD2 PIDs, GPS coordinates, VIN, registration plate, service provider names, receipt contents, anything identifiable.

All entities are computed from the local SQLite cache first. The AI router is only consulted for enrichment (e.g. "explain this fault code in plain English") and only when the user opens the entity details card. If 9Router is unreachable, every sensor and binary sensor still updates.

Entities you'll see

AutoBrain registers a consistent set of Home Assistant entities per vehicle. Replace <vehicle> with your vehicle slug:

  • sensor.autobrain_<vehicle>_service_due_km
  • sensor.autobrain_<vehicle>_service_due_days
  • sensor.autobrain_<vehicle>_fuel_avg_l100km (rolling 30-day)
  • sensor.autobrain_<vehicle>_cost_per_km
  • sensor.autobrain_<vehicle>_monthly_spend
  • binary_sensor.autobrain_<vehicle>_trip_active
  • event.autobrain_<vehicle>_trip_completed (start, end, distance, fuel used)
  • event.autobrain_<vehicle>_service_alert (fires when due threshold crossed)

Installing it (beta flow)

  1. AutoBrain v1.5+ running and claimed
  2. Settings → Integrations → "Connect to Home Assistant" → get pairing code
  3. In HA, add the AutoBrain integration (HACS or manual), paste code, pick vehicles
  4. Entities appear in ~5 seconds. Custom Lovelace card installs as a single resource.

No port forwarding, no DNS, no cloud relay — same VLAN/VLAN-reachable works.

Sample Lovelace card

type: custom:auto-brain-card
vehicle: my_forester
entities:
  - sensor.autobrain_my_forester_service_due_km
  - sensor.autobrain_my_forester_fuel_avg_l100km
  - sensor.autobrain_my_forester_cost_per_km
title: "🚗 My Forester"
show_trip_events: true

Real automation (service due)

alias: "Forester: service approaching"
trigger:
  - platform: numeric_state
    entity_id: sensor.autobrain_my_forester_service_due_km
    below: 500
actions:
  - service: light.turn_on
    target:
      entity_id: light.office_desk_lamp
    data:
      color_name: orange
      brightness: 200
  - service: telegram_bot.send_message
    data:
      message: "🚗 Forester service due in {{ states('sensor.autobrain_my_forester_service_due_km') }} km"
  - service: calendar.create_event
    target:
      entity_id: calendar.mechanic
    data:
      summary: "Service the Forester"
      start_date_time: "{{ now().strftime('%Y-%m-%d') }}T09:00:00"
      end_date_time: "{{ now().strftime('%Y-%m-%d') }}T10:00:00"

What the beta includes

  • Single AutoBrain instance → single HA
  • Up to 5 vehicles
  • All WebSocket entities + Lovelace card + 2 reference automations

What's coming after beta

  • Multi-tenant (one HA, multiple AutoBrain instances)
  • MQTT bridge mode
  • Backfill > 90 days
  • Fleet dashboards

Join the beta

The closed beta opens in October 2026. The first 100 sign-ups get early Phase 2 HACS access + a private Discord channel for beta feedback. Join the waitlist →

Back to Part 1: AutoBrain is coming to Home Assistant