Skip to content

Instantly share code, notes, and snippets.

@ashleigh-hopkins
Created January 12, 2026 08:02
Show Gist options
  • Select an option

  • Save ashleigh-hopkins/44a1deb476645f833e2d77dd0780d9e7 to your computer and use it in GitHub Desktop.

Select an option

Save ashleigh-hopkins/44a1deb476645f833e2d77dd0780d9e7 to your computer and use it in GitHub Desktop.
Home Assistant Audi Connect Car Dashboard - Climate Control & Charging

Home Assistant Audi Connect Car Dashboard

A complete Home Assistant dashboard and automation setup for controlling an Audi EV's climate control and charging via the Audi Connect integration.

Features

  • Climate Control: Set desired cabin temperature and trigger HVAC preconditioning
  • Charging Control: Set target state of charge (SOC) percentage
  • Status Display: View doors, windows, locks, trunk status
  • Charging Graphs: Historical charging data visualization

Prerequisites

  1. Audi Connect Integration - Install from HACS: arjenvrh/audi_connect_ha
  2. Working Audi Connect account with your vehicle linked

Installation

1. Create Input Helpers

Add these to your configuration.yaml or create via UI (Settings → Devices & Services → Helpers):

# input_number.yaml (or in configuration.yaml under input_number:)
input_number:
  car_desired_temperature:
    name: Car Desired Temperature
    min: 16
    max: 30
    step: 0.5
    unit_of_measurement: "°C"
    icon: mdi:thermometer
    mode: slider

  car_desired_soc:
    name: Car Desired SOC
    min: 20
    max: 100
    step: 1
    icon: mdi:battery-charging
    mode: slider
# input_button.yaml (or in configuration.yaml under input_button:)
input_button:
  trigger_car_hvac:
    name: Trigger Car HVAC
    icon: mdi:hvac

2. Create Scripts

Add to your scripts.yaml:

enable_climate_control:
  alias: Enable Climate Control
  sequence:
    - action: audiconnect.start_climate_control
      data:
        vin: "YOUR_VIN_HERE"  # Replace with your vehicle's VIN
        climatisation_at_unlock: true
        glass_heating: true
        seat_fl: true
        seat_fr: true
        temp_c: "{{ states('input_number.car_desired_temperature') | float }}"

set_audi_charge:
  alias: Set Audi Charge
  sequence:
    - action: audiconnect.set_target_soc
      data:
        vin: "YOUR_VIN_HERE"  # Replace with your vehicle's VIN (lowercase)
        target_soc: "{{ states('input_number.car_desired_soc') | int }}"

3. Create Automations

Add to your automations.yaml:

- alias: Trigger Car HVAC when pressing button
  triggers:
    - trigger: state
      entity_id:
        - input_button.trigger_car_hvac
  actions:
    - action: script.enable_climate_control

- alias: Car set SOC when changing desired
  triggers:
    - trigger: state
      entity_id:
        - input_number.car_desired_soc
  actions:
    - action: script.set_audi_charge

4. Create the Dashboard

  1. Go to Settings → Dashboards → Add Dashboard
  2. Name it "Car" with icon mdi:car
  3. Open the new dashboard and click the 3-dot menu → Edit Dashboard
  4. Click the 3-dot menu → Raw Configuration Editor
  5. Paste the contents of dashboard.yaml
  6. Important: Replace all instances of your_car with your actual entity prefix (usually your license plate without spaces, e.g., ab12cde)

Entity Naming

The Audi Connect integration creates entities based on your vehicle's license plate. For example, if your license plate is "AB12 CDE", your entities will be named like:

  • sensor.ab12_cde_mileage
  • binary_sensor.ab12_cde_doors_trunk_status
  • etc.

In the dashboard YAML, replace your_car with your actual entity prefix.

Customization

Climate Options

The start_climate_control service supports these options:

  • climatisation_at_unlock: Start climate when car is unlocked
  • glass_heating: Enable windshield heating
  • seat_fl, seat_fr, seat_rl, seat_rr: Heated seats (front-left, front-right, rear-left, rear-right)
  • temp_c: Target temperature in Celsius

Dashboard Sections

The dashboard includes 4 sections:

  1. Climate - Temperature control and HVAC trigger
  2. Security - Door, window, lock, and trunk status
  3. General - Vehicle info (model, type, mileage)
  4. Charging - SOC control, charging power, and history graphs

Screenshots

The dashboard provides a clean overview with:

  • Horizontal button stack for temperature and HVAC control
  • Multi-sensor cards for security status
  • Statistics graphs for charging history

Troubleshooting

  • Entities not found: Make sure you've replaced your_car with your actual entity prefix
  • Climate control not working: Verify your VIN is correct in the scripts
  • No data in graphs: The statistics cards need historical data to display - wait 24 hours after setup

License

MIT - Feel free to use and modify as needed!

# Automations for Car Dashboard
# Add these to your automations.yaml file
- alias: Trigger Car HVAC when pressing button
description: Starts climate control when the HVAC button is pressed
triggers:
- trigger: state
entity_id:
- input_button.trigger_car_hvac
conditions: []
actions:
- action: script.enable_climate_control
mode: single
- alias: Car set SOC when changing desired
description: Updates target SOC when the slider value changes
triggers:
- trigger: state
entity_id:
- input_number.car_desired_soc
conditions: []
actions:
- action: script.set_audi_charge
mode: single
views:
- title: Car
path: car
type: sections
sections:
- type: grid
cards:
- type: tile
entity: climate.your_car_climatisation
name: Car HVAC
- type: horizontal-stack
cards:
- type: tile
entity: input_number.car_desired_temperature
name: Desired Temp
- type: tile
entity: input_button.trigger_car_hvac
name: Trigger HVAC
title: Climate
- type: grid
cards:
- type: tile
entity: binary_sensor.your_car_doors_trunk_status
name: Doors Status
- type: tile
entity: binary_sensor.your_car_windows_status
name: Windows Status
- type: tile
entity: lock.your_car_door_lock
name: Lock
- type: tile
entity: binary_sensor.your_car_trunk_status
name: Trunk
title: Security
- type: grid
cards:
- type: tile
entity: sensor.your_car_car_type
name: Car Type
- type: tile
entity: sensor.your_car_mileage
name: Mileage
- type: tile
entity: sensor.your_car_model
name: Model
title: General
- type: grid
cards:
- type: horizontal-stack
cards:
- type: tile
entity: input_number.car_desired_soc
name: Desired SOC
- type: tile
entity: sensor.your_car_state_of_charge
name: Current SOC
- type: tile
entity: sensor.your_car_charging_power
name: Charging Power
- type: tile
entity: sensor.your_car_charging_rate
name: Charge Rate
- type: statistic
entity: sensor.your_car_state_of_charge
period:
calendar:
period: day
stat_type: max
name: SOC (Max Today)
- type: statistic
entity: sensor.your_car_charging_power
period:
calendar:
period: day
stat_type: max
name: Max Charging Power (Today)
- type: statistics-graph
entities:
- sensor.your_car_state_of_charge
days_to_show: 7
stat_types:
- max
chart_type: bar
title: SOC History (Week)
- type: statistics-graph
entities:
- sensor.your_car_charging_power
days_to_show: 7
stat_types:
- max
chart_type: bar
title: Charging Power History (Week)
title: Charging
# Input Helpers for Car Dashboard
# Add these to your configuration.yaml or create via UI (Settings → Devices & Services → Helpers)
input_number:
car_desired_temperature:
name: Car Desired Temperature
min: 16
max: 30
step: 0.5
unit_of_measurement: "°C"
icon: mdi:thermometer
mode: slider
car_desired_soc:
name: Car Desired SOC
min: 20
max: 100
step: 1
icon: mdi:battery-charging
mode: slider
input_button:
trigger_car_hvac:
name: Trigger Car HVAC
icon: mdi:hvac
# Add these scripts to your scripts.yaml file
enable_climate_control:
alias: Enable Climate Control
description: Start climate control with configured temperature and options
sequence:
- action: audiconnect.start_climate_control
data:
vin: "YOUR_VIN_HERE" # Replace with your vehicle's VIN
climatisation_at_unlock: true
glass_heating: true
seat_fl: true # Front left heated seat
seat_fr: true # Front right heated seat
temp_c: "{{ states('input_number.car_desired_temperature') | float }}"
set_audi_charge:
alias: Set Audi Charge
description: Set target state of charge percentage
sequence:
- action: audiconnect.set_target_soc
data:
vin: "your_vin_here" # Replace with your vehicle's VIN (lowercase)
target_soc: "{{ states('input_number.car_desired_soc') | int }}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment