I made an integration of the DaheimLaden Wallbox for myself using the HA Modbus integration. I control the wallbox via EVCC from a different IP address, (it could be done by HA or by EVCC, but I don’t need to control it via HA).
Note: The modbus server just allows one connection, because of this I installed the HACS modbusproxy add-on to query the values from the Modbus). If you don’t need that, you don’t need the modbus proxy.
It is still working but I cannot say for sure until now if it’s working wihtout any issues. It needs some more testing:
Added this to the configuration.yaml:
# Modbus TCP
modbus:
- name: "DaheimLader"
type: tcp
host: 10.10.20.16
port: 502
timeout: 60
sensors:
- name: "DaheimLader Status"
address: 0000
scan_interval: 30
data_type: uint16
unique_id: daheimLader_charging_station_state
- name: "DaheimLader Status Ladekabel"
address: 0002
scan_interval: 30
data_type: uint16
unique_id: daheimLader_cable_state
- name: "DaheimLader Fehlercode"
address: 0004
scan_interval: 30
data_type: uint16
unique_id: daheimlader_fault_code
- name: "DaheimLader Ladeleistung"
unit_of_measurement: W
address: 0012
scan_interval: 30
data_type: uint32
unique_id: daheimlader_active_power
device_class: energy
state_class: measurement
- name: "DaheimLader Zählerstand"
address: 0028
scan_interval: 30
data_type: uint32
unique_id: daheimLader_energy_meter
device_class: energy
state_class: total_increasing
unit_of_measurement: kWh
- name: "DaheimLader geladene Energie"
unit_of_measurement: kWh
address: 0072
scan_interval: 30
data_type: uint16
unique_id: daheimLader_charged_energy
device_class: energy
state_class: total
- name: "DaheimLader Ladedauer"
unit_of_measurement: s
address: 0078
scan_interval: 30
data_type: uint32
unique_id: daheimlader_charging_time
device_class: duration
state_class: measurement
- name: "DaheimLader Modus"
address: 0093
scan_interval: 30
data_type: uint16
unique_id: daheimlader_charge_control
- name: "DaheimLader Ladeleistung L1"
unit_of_measurement: W
address: 0016
scan_interval: 30
data_type: uint32
unique_id: daheimLader_l1_charging_power
device_class: power
state_class: measurement
- name: "DaheimLader Ladeleistung L2"
unit_of_measurement: W
address: 0020
scan_interval: 30
data_type: uint32
unique_id: daheimLader_l2_active_power
device_class: power
state_class: measurement
- name: "DaheimLader Ladeleistung L3"
unit_of_measurement: W
address: 0024
scan_interval: 30
data_type: uint32
unique_id: daheimlader_l3_active_power
device_class: power
sensor: !include daheimlader.yaml
I created a daheimladen.yaml to make the results more readable and to scale the values:
- platform: template
sensors:
daheimlader_charging_station_state:
friendly_name: "DaheimLader Status"
unique_id: daheimlader_charging_station_state_text
value_template: >-
{% if states('sensor.daheimlader_charging_station_state') == '1' %}
Bereit
{% elif states('sensor.daheimlader_charging_station_state') == '2' %}
Verbunden
{% elif states('sensor.daheimlader_charging_station_state') == '3' %}
Laden startet
{% elif states('sensor.daheimlader_charging_station_state') == '4' %}
Lädt
{% elif states('sensor.daheimlader_charging_station_state') == '5' %}
Start fehlgeschlagen
{% elif states('sensor.daheimlader_charging_station_state') == '6' %}
Laden beendet
{% elif states('sensor.daheimlader_charging_station_state') == '7' %}
Systemfehler
{% elif states('sensor.daheimlader_charging_station_state') == '8' %}
Ladetimer
{% elif states('sensor.daheimlader_charging_station_state') == '9' %}
Firmware Upgrade
{% elif states('sensor.daheimlader_charging_station_state') == '10' %}
Eingeschaltet
{% elif states('sensor.daheimlader_charging_station_state') == '31' %}
Blockiert
{% else %}
Unbekannt
{% endif %}
daheimlader_cable_state:
friendly_name: "DaheimLader Status Ladekabel"
unique_id: daheimlader_cable_state_text
value_template: >-
{% if states('sensor.daheimlader_cable_state') == '0' %}
Nicht verbunden
{% elif states('sensor.daheimlader_cable_state') == '1' %}
Verbunden
{% else %}
Unbekannt
{% endif %}
daheimlader_fault_code:
friendly_name: "DaheimLader Fehlercode"
unique_id: daheimlader_fault_code_text
value_template: >-
{% if states('sensor.daheimlader_fault_code') == '0' %}
kein Fehler
{% elif states('sensor.daheimlader_fault_code') == '11' %}
CP-Kontroll Wert
{% elif states('sensor.daheimlader_fault_code') == '13' %}
Unterspannung
{% elif states('sensor.daheimlader_fault_code') == '14' %}
Überspannung
{% elif states('sensor.daheimlader_fault_code') == '15' %}
Temperatur zu hoch
{% elif states('sensor.daheimlader_fault_code') == '16' %}
Zählerwert
{% elif states('sensor.daheimlader_fault_code') == '17' %}
Leckage
{% elif states('sensor.daheimlader_fault_code') == '18' %}
Output Short
{% elif states('sensor.daheimlader_fault_code') == '19' %}
Überstrom
{% elif states('sensor.daheimlader_fault_code') == '21' %}
Fahrzeug
{% elif states('sensor.daheimlader_fault_code') == '22' %}
Fahrzeug nicht erkannt
{% elif states('sensor.daheimlader_fault_code') == '23' %}
Relais
{% elif states('sensor.daheimlader_fault_code') == '24' %}
Leckage, Gerät prüfen
{% elif states('sensor.daheimlader_fault_code') == '25' %}
PE-Fehler
{% elif states('sensor.daheimlader_fault_code') == '26' %}
Start / Stopp Ladefehler
{% else %}
Unbekannt
{% endif %}
daheimlader_charge_control:
friendly_name: "DaheimLader Modus"
unique_id: daheimlader_charge_control_text
value_template: >-
{% if states('sensor.daheimlader_modus') == '0' %}
Plug % Charge
{% elif states('sensor.daheimlader_modus') == '1' %}
RFID / OCPP Start+Stopp
{% elif states('sensor.daheimlader_modus') == '2' %}
Ladestation gesperrt
{% else %}
Unbekannt
{% endif %}
daheimlader_energy_meter_scaled:
friendly_name: "DaheimLader Zählerstand"
value_template: "{{ states('sensor.daheimLader_energy_meter') | float / 10 }}"
unit_of_measurement: kWh
device_class: energy
unique_id: daheimlader_energy_meter_scaled
daheimlader_charged_energy_scaled:
friendly_name: "DaheimLader geladen Energie"
value_template: "{{ states('sensor.daheimLader_charged_energy') | float / 10 }}"
unit_of_measurement: kWh
device_class: energy
unique_id: daheimlader_charged_energy_scaled
It looks like this now:
and my power flow card, using powerflow card plus looks like this:
If you have any questions, don’t hestiate to contact me.