Home Assistant Integration

Native integration. No broker required.

Car 2 Home ships a first-class Home Assistant integration that turns your car into a real participant in your smart home, not just another data feed. It works either as a native Home Assistant component (installed via HACS, talking directly to the app over a WebSocket) or as a standard MQTT client. Both paths are supported; pick whichever fits your setup.

What makes the native path special is that it goes beyond exposing sensors. Your car publishes events on the Home Assistant event bus, trip started, trip ended, DTC found, harsh acceleration, ECU online, which means you can write automations that react to moments, not just to numbers crossing thresholds.


Two paths, same result

Home Assistant integration

A custom Home Assistant integration installed via HACS. Home Assistant generates a 6-digit pairing code that you type into the app. No tokens to manage, no broker to install. Communication is bidirectional over WebSocket: Home Assistant receives every sensor and event from the car through the app, and can change settings like sync mode and trigger other actions, as long as the app is connected.

MQTT (any broker)

If you already run Mosquitto, EMQX, HiveMQ or any other broker, or if you want the data to flow into Home Assistant or other tools like Node-RED, openHAB, ioBroker, etc., Car 2 Home publishes the same sensors with full Home Assistant MQTT auto-discovery. The difference is that the MQTT path carries continuous state, not events: things like trip_started or dtc_found only exist in the native integration.


How to install

  1. 1. Install via HACS

    Open HACS in Home Assistant, add Car 2 Home from the integrations list, and restart Home Assistant. (If you don't have HACS yet, install it from hacs.xyz first.)

  2. 2. Add the integration

    Go to Settings → Devices & Services → Add Integration in Home Assistant and search for "Car 2 Home". Home Assistant will generate a pairing code.

  3. 3. Pair with the 6-digit code

    Enter your public Home Assistant URL and the pairing code in the app at Settings → Home Assistant → Integration and you're done!

  4. 4. Choose a sync mode

    "Online" mode streams telemetry in real time while you're driving. "Wi-Fi only" mode buffers data on the app while you're away and flushes the moment your phone joins a Wi-Fi network: useful when you don't have a public URL for Home Assistant or want to save mobile data.


What you get

Each vehicle in your garage becomes a device in Home Assistant with its own set of entities. Names follow the pattern car2home_{manufacturer}_{model}_{sensor}, so multiple vehicles never collide. Entities use Home Assistant's RestoreSensor semantics: they keep their last known value across restarts and never go unavailable just because the engine turned off.

  • Standard OBD-II sensors: speed, RPM, coolant, fuel level, throttle position, lambda, and the rest of the SAE J1979 catalog supported by your car.
  • Manufacturer/model-specific sensors: extended PIDs that vary by brand and model, discovered automatically.
  • Calculated sensors: fuel rate, rolling fuel economy (10/50/100 km windows), wheel horsepower, estimated range, trip distance.
  • Location: altitude, accuracy and a device_tracker entity for the vehicle.
  • TPMS: per-wheel pressure, temperature, sensor ID.
  • Diagnostic state: MIL on/off, DTC count, freeze frame, adapter voltage, ECU online/offline, status of the connection to Home Assistant or MQTT.
  • Driving behavior: live Safe Score and Eco Score, harsh-event counters, monthly history.

Events on the Home Assistant event bus

These are what set the native integration apart. Your automations can listen to discrete moments instead of polling state.

  • car2home_trip_started: fires the moment a trip begins (engine start + movement). Payload includes vehicle id and start location.
  • car2home_trip_ended: fires when a trip ends, with full trip summary: distance, duration, average / max speed, fuel used, parking address.
  • car2home_dtc_found: a new diagnostic trouble code was detected. Payload includes the code, description, and severity.
  • car2home_harsh_event: hard acceleration, hard braking, or hard cornering detected. Useful for safe-driving notifications, especially with new drivers.
  • car2home_ecu_online / car2home_ecu_offline: fires whenever the connection to the ECU comes up or drops, so you can tell "car is being driven right now" apart from "car is parked".

Example automations

A few ideas to spark yours. The full setup blocks live in the Guides section.

  • Open the garage and turn on the porch lights when you pull into your street (geofence + trip_started).
  • Notify the family with the parking address and a map link the moment a trip ends.
  • Alert on Telegram when a new DTC is detected, with the code, description and severity.
  • Pre-cool the house at the moment you leave the office (geofence work + trip_started).
Step-by-step guide

Compatibility & requirements

  • Home Assistant 2024.12 or later.
  • Works with Nabu Casa Cloud, Cloudflare Tunnel, Tailscale, or any reverse proxy you already trust.
  • Multi-vehicle: every car in your garage shows up as its own Home Assistant device, with independent entities and history.
  • Tokens are stored in iOS Keychain / Android Keystore, never in app preferences.

What about Matter / Apple Home / Google Home / SmartThings?

We're actively working on a Matterbridge plugin that exports Car 2 Home sensors as Matter devices, so they show up natively in Apple Home, Google Home, SmartThings and Alexa, without any Home Assistant in the middle. Stay tuned.