🏠🚗 Home Assistant Vehicle Integration für EVCC (ab Release 0.207.0) #22676
Replies: 18 comments 58 replies
🚗📱 Home Assistant Vehicle Integration: Der ultimative Guide für EVCC🚗📱 Home Assistant Vehicle Integration: Der ultimative Guide für EVCC🎯 Was ist das Home Assistant Vehicle?Das Home Assistant Vehicle ist eine revolutionäre Integration, die jedes Fahrzeug, das in Home Assistant funktioniert, automatisch auch in EVCC verfügbar macht. Statt separate Integrationen zu pflegen, nutzt EVCC Home Assistant als intelligenten Proxy. 🌟 Warum Home Assistant Vehicle verwenden?1. API-Effizienz & Ressourcenschonung 💡Besonders wichtig bei:
2. Maximale Fahrzeug-Kompatibilität 🚙Mit einer Integration alle Fahrzeuge abdecken:
3. Scripts = Unbegrenzte Flexibilität 🔧# Beispiel: Intelligentes Laden mit Konditionen
script:
smart_charging_start:
sequence:
# Nur laden wenn günstiger Strom
- condition: numeric_state
entity_id: sensor.electricity_price
below: 0.15
# Fahrzeug aufwecken
- service: car.wake_up
# Klimatisierung an (Winter)
- condition: numeric_state
entity_id: weather.home
attribute: temperature
below: 5
- service: car.climate_on
# Ladelimit setzen basierend auf nächster Fahrt
- service: car.set_charge_limit
data:
percentage: >
{% if states('calendar.next_trip') == 'on' %}80{% else %}60{% endif %}
# Laden starten
- service: car.charge_start
# Notification senden
- service: notify.mobile_app
data:
message: "🔋 Smart Charging gestartet - Limit: {{ states('number.car_charge_limit') }}%"🛠️ Praktische ImplementierungMercedes EQS Beispiel (Vollausstattung)Home Assistant Configuration# WICHTIG: mbapi2020 wird über die UI installiert, NICHT über configuration.yaml!
# 1. HACS → Integrations → mbapi2020 installieren
# 2. Home Assistant neu starten
# 3. Einstellungen → Geräte & Dienste → Integration hinzufügen → Mercedes me
# 4. Anmeldedaten eingeben → Fahrzeug wird automatisch erkannt
# 5. Integration ist Push-basiert - kein scan_interval nötig!
# Automatisch verfügbare Entities nach UI-Setup:
# sensor.eqs_580_state_of_charge # SoC: 0-100%
# sensor.eqs_580_range_electric # Range: km
# sensor.eqs_580_charging_status # Status: charging/connected/disconnected
# number.eqs_580_max_soc # Charge Limit: 50-100%
# sensor.eqs_580_odometer # Odometer: km
# climate.eqs_580_thermostat # Climate: on/off (falls verfügbar)
# sensor.eqs_580_charging_end_time # Finish Time: ISO timestamp (falls verfügbar)
# lock.eqs_580_lock # Door Lock
# switch.eqs_580_charging # Charging Switch
# device_tracker.eqs_580_device_tracker # Location trackingEVCC Configurationvehicles:
- name: mercedes_eqs
title: "Mercedes EQS 580 4MATIC"
type: homeassistant
uri: http://homeassistant.local:8123
token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...."
sensors:
soc: sensor.eqs_580_state_of_charge # REQUIRED
range: sensor.eqs_580_range_electric # optional
status: sensor.eqs_580_charging_status # optional
limitSoc: number.eqs_580_max_soc # optional
odometer: sensor.eqs_580_odometer # optional
climater: climate.eqs_580_thermostat # optional (falls verfügbar)
finishTime: sensor.eqs_580_charging_end_time # optional (falls verfügbar)
services:
start_charging: script.eqs_start_charging # optional
stop_charging: script.eqs_stop_charging # optional
wakeup: script.eqs_wakeup # optional
capacity: 107.8 # kWh (EQS 580)Erweiterte Scripts# scripts.yaml
script:
eqs_start_charging:
alias: "EQS: Laden starten (erweitert)"
sequence:
# Sicherheitscheck: Ist Fahrzeug zu Hause?
- condition: state
entity_id: device_tracker.eqs_580_device_tracker
state: "home"
# Türen entriegeln falls nötig (für Ladekabel)
- service: lock.unlock
target:
entity_id: lock.eqs_580_lock
# Kurz warten
- delay: "00:00:03"
# Klimatisierung aktivieren (Vorkonditionierung)
- service: climate.turn_on
target:
entity_id: climate.eqs_580_thermostat
data:
temperature: 21
# Ladelimit intelligent setzen
- service: number.set_value
target:
entity_id: number.eqs_580_max_soc
data:
value: >
{% set next_trip = states('calendar.car_trips') %}
{% if next_trip == 'on' %}90{% else %}80{% endif %}
# Schnellladeprogramm aktivieren
- service: mbapi2020.charge_program_configure
target:
entity_id: sensor.eqs_580_charge_programs
data:
program: 2 # 0=Standard, 2=Home, 3=Work
max_soc: >
{{ states('number.eqs_580_max_soc') | int }}
# Laden starten
- service: switch.turn_on
target:
entity_id: switch.eqs_580_charging
# Erfolgsbenachrichtigung
- service: notify.mobile_app_iphone
data:
title: "🔋 EQS Laden gestartet"
message: >
Limit: {{ states('number.eqs_580_max_soc') }}%
Aktuell: {{ states('sensor.eqs_580_state_of_charge') }}%
Geschätzte Dauer: {{ states('sensor.eqs_580_charging_time_left') }}
data:
actions:
- action: "STOP_CHARGING"
title: "Laden stoppen"
# Türen wieder verriegeln
- delay: "00:00:05"
- service: lock.lock
target:
entity_id: lock.eqs_580_lock
eqs_stop_charging:
alias: "EQS: Laden stoppen (sicher)"
sequence:
# Laden stoppen
- service: switch.turn_off
target:
entity_id: switch.eqs_580_charging
# Klimatisierung ausschalten (Energiesparen)
- service: climate.turn_off
target:
entity_id: climate.eqs_580_thermostat
# Endbenachrichtigung mit Details
- service: notify.mobile_app_iphone
data:
title: "⏹️ EQS Laden gestoppt"
message: >
Finaler SoC: {{ states('sensor.eqs_580_state_of_charge') }}%
Reichweite: {{ states('sensor.eqs_580_range_electric') }} km
Geladene Energie: {{ states('sensor.eqs_580_charged_energy') }} kWh
eqs_wakeup:
alias: "EQS: Aufwecken & Status prüfen"
sequence:
# Fahrzeug "anpingen" (sanftes Aufwecken)
- service: mbapi2020.doors_unlock
target:
entity_id: lock.eqs_580_lock
- delay: "00:00:01"
- service: mbapi2020.doors_lock
target:
entity_id: lock.eqs_580_lock
# Kurze Klimatisierung (weckt zuverlässig auf, falls verfügbar)
- service: climate.turn_on
target:
entity_id: climate.eqs_580_thermostat
data:
temperature: 20
- delay: "00:00:10"
- service: climate.turn_off
target:
entity_id: climate.eqs_580_thermostat🔗 Integration mit HA Companion App NotificationsKombiniere das Vehicle mit dem Messaging ohne Cloud via HA Companion App: EVCC Notification Setup# evcc.yaml
messaging:
events:
start:
title: "🔋 Laden gestartet"
msg: "{{ .vehicleTitle }} lädt mit {{ .chargedPower | printf "%.1f" }}kW"
stop:
title: "⏹️ Laden beendet"
msg: "{{ .vehicleTitle }}: {{ .chargedEnergy | printf "%.1f" }}kWh geladen, SoC: {{ .vehicleSoc | printf "%.0f" }}%"
connect:
title: "🔌 Fahrzeug verbunden"
msg: "{{ .vehicleTitle }} ist bereit zum Laden (SoC: {{ .vehicleSoc | printf "%.0f" }}%)"
disconnect:
title: "🚗 Fahrzeug getrennt"
msg: "{{ .vehicleTitle }} wurde getrennt"
services:
- type: shoutrrr
uri: generic+http://homeassistant.local:8123/api/webhook/evcc_notify?title={{ .title | urlquery }}&message={{ .msg | urlquery }}Home Assistant Webhook Automation# automations.yaml
automation:
- alias: "EVCC Notifications via Companion App"
trigger:
platform: webhook
webhook_id: evcc_notify
action:
- service: notify.mobile_app_iphone
data:
title: "{{ trigger.query.title }}"
message: "{{ trigger.query.message }}"
data:
tag: "evcc"
group: "EVCC Updates"
icon_url: "https://evcc.io/icon.png"
actions:
- action: "OPEN_EVCC"
title: "EVCC öffnen"
uri: "http://evcc.local:7070"🚀 Erweiterte Use Cases1. Multi-Fahrzeug Setup# Verschiedene Fahrzeuge, eine Integration
vehicles:
- name: family_tesla_y
type: homeassistant
sensors:
soc: sensor.tesla_model_y_battery_level
# ...
- name: company_eqs
type: homeassistant
sensors:
soc: sensor.eqs_580_state_of_charge
# ...
- name: weekend_i4
type: homeassistant
sensors:
soc: sensor.bmw_i4_state_of_charge
# ...2. Conditional Charging Scriptsscript:
smart_charge_family_car:
sequence:
# Nur laden wenn:
# - Strompreis < 15ct
# - SoC < 80%
# - Kein Urlaub geplant
- condition: and
conditions:
- condition: numeric_state
entity_id: sensor.electricity_price_ct
below: 15
- condition: numeric_state
entity_id: sensor.tesla_model_y_battery_level
below: 80
- condition: state
entity_id: calendar.family_vacation
state: "off"
- service: script.tesla_start_charging3. Seasonal Adjustmentsscript:
winter_preconditioning:
sequence:
- condition: numeric_state
entity_id: weather.home
attribute: temperature
below: 5
# 30 Min vor Abfahrt vorheizen
- service: climate.turn_on
target:
entity_id: climate.car_climate
data:
temperature: 22
- delay: "00:30:00"
- service: script.start_charging_if_needed📊 Monitoring & AnalyticsDashboard Integration# dashboard.yaml
type: vertical-stack
cards:
- type: entities
title: "🚗 Fahrzeug Status"
entities:
- entity: sensor.eqs_580_state_of_charge
name: "SoC"
icon: mdi:battery
- entity: sensor.eqs_580_range_electric
name: "Reichweite"
icon: mdi:map-marker-distance
- entity: sensor.eqs_580_charging_status
name: "Status"
icon: mdi:ev-station
- type: button
name: "Laden starten"
tap_action:
action: call-service
service: script.eqs_start_charging
- type: history-graph
entities:
- sensor.eqs_580_state_of_charge
hours_to_show: 168 # 1 Woche🔧 Troubleshooting GuideHäufige Probleme & Lösungen1. "missing soc sensor"# Prüfen ob Sensor existiert
curl -H "Authorization: Bearer TOKEN" \
http://ha:8123/api/states/sensor.car_soc
# Sensor-Namen in HA Developer Tools überprüfen2. "ErrNotAvailable" / Sensor unavailable# Automation für Sensor-Recovery
automation:
- alias: "Car Sensor Recovery"
trigger:
platform: state
entity_id: sensor.car_soc
to: "unavailable"
for: "00:05:00"
action:
- service: script.car_wakeup
- delay: "00:01:00"
- service: homeassistant.update_entity
target:
entity_id: sensor.car_soc3. Scripts schlagen fehl# Robust Script mit Retry-Logik
script:
robust_charge_start:
sequence:
- repeat:
while:
- condition: template
value_template: "{{ repeat.index <= 3 }}"
- condition: template
value_template: "{{ states('switch.car_charging') != 'on' }}"
sequence:
- service: switch.turn_on
target:
entity_id: switch.car_charging
- delay: "00:00:10"
# Fallback Notification bei Fehlschlag
- condition: template
value_template: "{{ states('switch.car_charging') != 'on' }}"
- service: notify.admin
data:
message: "⚠️ Laden konnte nicht gestartet werden!"🎯 Best Practices1. API Rate Limiting# WICHTIG: mbapi2020 ist Push-basiert - KEINE scan_interval nötig!
# Die Integration aktualisiert automatisch bei Fahrzeug-Aktivität
# Für andere Integrationen (falls Pull-basiert):
sensor:
- platform: other_car_integration
scan_interval: 300 # 5 Minuten (nicht öfter!)2. Conditional Updates# Nur für Pull-basierte Integrationen relevant!
# mbapi2020 ist Push-basiert und aktualisiert automatisch
automation:
- alias: "Update non-push car data when needed"
trigger:
- platform: state
entity_id: binary_sensor.car_charging
to: "on"
- platform: time_pattern
minutes: "/30" # Alle 30 Min wenn nicht lädt
condition:
# Nur bei Pull-basierten Integrationen
- condition: template
value_template: "{{ 'pull_based_integration' in integration_registry }}"
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.car_charging
state: "on"
- condition: numeric_state
entity_id: sensor.car_soc
below: 90 # Nur updaten wenn nicht voll
action:
- service: homeassistant.update_entity
target:
entity_id: sensor.car_soc3. Error Handlingscript:
safe_car_operation:
sequence:
- service: script.car_wake_up
- wait_template: "{{ states('sensor.car_status') != 'unavailable' }}"
timeout: "00:02:00"
continue_on_timeout: false
- service: script.actual_car_command🚀 FazitDas Home Assistant Vehicle revolutioniert die Fahrzeug-Integration in EVCC: ✅ Effizienz: 50% weniger API-Calls Setup-Zeit: 15-30 Minuten Die Zukunft des Smart Charging ist Home Assistant + EVCC! 🚗⚡📱 |
|
Diese Integration löst das Problem mit dem Taycan und der fehlenden online Integration, vielen Dank dafür. Eine Sache ist mir aufgefallen die Codestelle Line 211 in dfd6dd7 könnte noch einige Probleme bereiten, da die Werte nicht standardisiert sind. Beispiel:
Alle Strings da dieser Codestelle zu supporten könnte sehr schwierig werden. |
|
Ich lese hier interessehalber mit, verstehe aber das Ganze kaum. Wie gesagt, nur Interesse, ich habe Ioniq5 und Daheimladen Wallbox, das funktioniert default mit Evcc top. |
|
Für die Leute mit einem BMW, falls wer Unterstützung benötigt. Ich habe mir einen Template Sensor erstellt, der sich aus 3 Faktoren zusammensetzt, a) wird geladen (oder nicht), b) ist das Auto eingesteckt (oder nicht) und c) noch die Abfrage ob das Auto zuhause ist - ich möchte ja den Status nicht setzen, wenn ich unterwegs mal lade. Vielleicht hilft es wem. |
|
Meine Smart #1 Integration hat folgende Werte für den Ladestatus: Wenn er verunden ist und nicht läd springt der status auf 1 und nicht wie erwartet auf 2 Ich habe einen Helfer "Sensor Template" mit dem Namen Smart Ladestatus erstellt. scheint zu funktionieren |
|
Hat schon jemand Erfahrungen mit der Nutzung mit Skoda über die MySkoda HACS Integration gemacht? Man muss wahrscheinlich den Ladestatus über ein Template selbstständig konfigurieren, allerdings ist die MySkoda Integration nicht wirklich responsiv. |
|
Hallo zusammen, (offenbar ist deutsche Sprache hier ok, wenn nicht, dann kann ich das auch gerne noch mal ins englische übersetzen.) Wir laden bei uns einen Citroen mit Cloud-Anbindung und einen Dacia Spring, der aber nicht die App-Option hat und m. W. daher auch nicht der Ladestand des Fahrzeuges abgefragt werden kann. Aktuell wird meine Wallbox (openWB) durch evcc "fremdgesteuert", was dazu führt, dass ich in der openWB-Integration von Home-Assistant nicht mehr sehe, welches Fahrzeug angesteckt ist. Ich sehe nur, dass das Ladekabel eingesteckt ist oder nicht und welche Ladeleistung vorhanden ist.
Daher habe ich noch die Stellantis-Integration in Home-Assistant am laufen. Sie ist jedoch sehr launisch und sehr unzuverlässig, genau wie die App. Abfragen des SoC kommen -- wenn überhaupt -- nur schleppend. Von Aufwecken oder gar Vorklimatisierung möchte ich noch nicht einmal sprechen! Irgendwie scheint evcc das besser im Griff zu haben. Eventuell liegt es ja nur daran, dass mit dem Einstecken des Ladekabels sowohl das Fahrzeug wie auch evcc aufgeweckt werden und wenn evcc dann den SoC des Fahrzeugs in der Stellantis-Cloud abfragt, einen plausiblen Wert erhält, während die Stellantis-Integration nicht aufgeweckt wird und daher das Zeitfenster zur erfolgreichen Abfrage verpasst? Wenn evcc einmal den Start-Wert des SoC hat, ist es für evcc latürnich einfach, den aktuellen SoC anhand der geladenen Energie einigermaßen korrekt zu berechnen. Und diese Genaukeit wäre ja auch vollkommen ausreichend für meine niederen Zwecke. Wenn ich also diese beiden Fliegen (erstens: Zugriff auf die Ladedaten durch HA um sie in Skripten oder Automationen nutzen zu können und zweitens: Zugriff auf den SoC des Dacia) mit einer Klappe schlagen würde, wäre das genial. Daher die Frage, ob es hier bereits Infos dazu gibt? |
|
Bei mir wird hyundai_kia_connect_api in HACS nicht gefunden |
|
Es wäre hilfreich zu wissen, wann von EVCC welcher Service aufgerufen wird :-) Wird z.B. Wakeup bereits bei der Fahrzeug-Autokonfig genutzt? Danke! |
|
Hallo zusammen, |
|
Guten Tag, da ja EVCC aktuell die VW Verbindung verloren hat bin ich nun auch bei dem Thema hier angekommen. Leider wurde aber das Fahrzeug nicht wie gewohnt selbstständig von EVCC erkannt. Ist das möglicherweise der Fehler oder was muss ich für die automatische Erkennung einstellen? |
|
Hallo! Das mit dem HA vehicle und EVCC hat die letzen Wochen ohne Probleme funktioniert. Seit 2 Tagen habe ich aber folgendes Problem: Wenn ich CURL mit dem Token mache funktioniert es problemlos. Hat irgendjemand eine Idee? |
|
Ist das mit diesem Long Lived Token in HA eigentlich noch aktuell? In der aktuelle Version von evcc wird nach Username/Passwort gefragt, wenn man HA autorisiert. |
|
Hallo in die Runde! Meine Annahme: „start_charging / stop_charging werden IMMER ausgelöst, wenn Laden startet oder endet“ Bin mir micht sichher ob meine Annahme wirklich richtig ist, vermute eher nicht. hier meine evcc.yaml Beste Grüße |





Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
🏠🚗 Home Assistant Vehicle Integration für EVCC
Complete custom vehicle configuration for Home Assistant Vehicle
Custom vehicle configuration for Home Assistant
Warum Home Assistant Vehicle?
🎯 Hauptvorteile
1. API-Calls sparen & Effizienz steigern
2. Maximale Fahrzeug-Kompatibilität
3. Flexibilität durch Scripts
4. Nahtlose Smartphone-Benachrichtigungen 📱
🌟 Beispiel: Mercedes EQS Integration
Home Assistant Integration
Home Assistant Scripts
⚙️ EVCC Konfiguration
Vollständige Vehicle-Konfiguration
📊 Sensor-Werte im Detail
Erwartete Sensor-Werte
0-100(Zahl)68,85.50-999(Zahl)234,456,45.6charging,connected,disconnected0-100(Zahl)80,9023456.7,50000on,true,heat,cool1640995200,2021-12-31T23:00:00ZStatus-Mapping (automatisch)
EVCC wandelt Home Assistant Status-Werte automatisch um:
StatusC (lädt):
charging,on,true,activeStatusB (verbunden, bereit):
connected,ready,pluggedStatusA (nicht verbunden/verfügbar):
disconnected,off,none,unavailable,unknown,notreadyforcharging🔧 Home Assistant Setup
1. Langzeit-Access-Token erstellen
2. Fahrzeug-Integration installieren
Je nach Fahrzeug entsprechende Integration installieren:
Mercedes (mbapi2020):
mbapi2020suchen und installierenAndere Fahrzeuge:
bmw_connected_drive(über HACS)volkswagencarnetoderaudiconnect(über HACS)tesla_custom(über HACS)hyundai_kia_connect_api(über HACS)3. Scripts erstellen
Scripts in
scripts.yamloder über UI erstellen (siehe Beispiel oben).🚀 Warum Scripts statt direkte Services?
✅ Vorteile von Scripts
1. Größtmögliche Anpassung
2. Erweiterte Logik möglich
3. Fehlerbehandlung & Retry-Logik
4. Multi-Service Kombinationen
🧪 Testing & Debugging
EVCC CLI Tests
Home Assistant Tests
🔍 Troubleshooting
Häufige Probleme
❌ "missing soc sensor"
❌ "ErrNotAvailable"
unknownoderunavailable❌ Service-Aufrufe funktionieren nicht
Debug-Logs aktivieren
💡 Erweiterte Beispiele
Intelligente Klimatisierung
SoC-abhängiges Laden
🎉 Fazit
Das Home Assistant Vehicle bringt alle Fahrzeuge nach EVCC - einfach, effizient und erweiterbar!
Setup-Zeit: ~15 Minuten
Wartungsaufwand: Minimal
Flexibilität: Maximal
Viel Erfolg mit deiner smarten Ladelösung! 🚗⚡
All reactions