
Verwandle dein Smart Home mit dynamischen Strompreisen! In diesem Video zeigen wir dir, wie du mit Home Assistant und EVCC nicht nur die aktuellen Strompreise ausliest, sondern auch visualisierst und clever damit rechnest. Spare bares Geld und optimiere deinen Energieverbrauch – jetzt reinschauen und profitieren! Plus: Erfahre alles über eine exklusive Bonusautomatisierung, die dir noch mehr Effizienz bringt! 💡🔌💸
Wenn du mehr über EVCC kennenlernen willst, dann findest du hier weitere nützliche Informationen.
Aus meiner Sicht ist EVCC nicht nur eine Managementsoftware für eure Wallbox und Elektroauto. Mit EVCC könnt ihr unabhängig von der Schnittstelle eures Wechselrichters, Batteriespeichers, dynamischen Stromanbieter etc… auf aufbereiteten Daten agieren und diese für tolle Automatisierungen und Visualisierungen in Home Assistant nutzen.
Ich möchte euch heute einen allgemeinen Amazon-Link teilen, über den ihr eine Vielzahl von Produkten entdecken könnt. Egal, ob ihr nach Smart Home-Geräten, Gadgets oder anderen nützlichen Artikeln sucht, Amazon hat für jeden etwas zu bieten.
Wenn ihr über diesen Link einkauft, unterstützt ihr meinen Kanal, ohne dass es für euch zusätzliche Kosten verursacht. Das hilft mir, weiterhin spannende Inhalte für euch zu erstellen!
Hier ist der Link zu Amazon: https://amzn.to/3KsGngK
Um die Inhalte besser verstehen zu können, empfehle ich euch folgende Videos ebenfalls anzuschauen:
Links , in denen ihr weitere Informationen findet:
Restful Sensor in der Configuration.yaml
sensor:
- platform: rest
name: EVCC Tariff Forecast
unique_id: evcc_tariff_forecast
resource: http://192.168.101.3:7070/api/tariff/grid
value_template: "{{value_json.result.rates[0].price}}"
json_attributes:
- result
scan_interval: 60
Template Helfer : sensor.evcc_tibber_forecast_max_value_today
{{state_attr('sensor.evcc_tariff_forecast', 'result')['rates'] | selectattr('start', 'ge', now().strftime('%Y-%m-%dT00:00:00%z')) | selectattr('start','lt', now().strftime('%Y-%m-%dT23:59:59%z')) | map(attribute='price') | max }}
Template Helfer: evcc_tibber_forecast_min_value_today
{{state_attr('sensor.evcc_tariff_forecast', 'result')['rates'] | selectattr('start', 'ge', now().strftime('%Y-%m-%dT00:00:00%z')) | selectattr('start','lt', now().strftime('%Y-%m-%dT23:59:59%z')) | map(attribute='price') | min }}
Template Helfer: evcc_tibber_forecast_max_value_tomorrow
{{state_attr('sensor.evcc_tariff_forecast', 'result')['rates'] | selectattr('start', 'ge', (now() + timedelta(days=1)).strftime('%Y-%m-%dT00:00:00%z')) | selectattr('start','lt',(now() + timedelta(days=1)).strftime('%Y-%m-%dT23:59:59%z')) | map(attribute='price') | max | default(0) }}
Template Helfer: evcc_tibber_forecast_min_value_tomorrow
{{state_attr('sensor.evcc_tariff_forecast', 'result')['rates'] | selectattr('start', 'ge', (now() + timedelta(days=1)).strftime('%Y-%m-%dT00:00:00%z')) | selectattr('start','lt',(now() + timedelta(days=1)).strftime('%Y-%m-%dT23:59:59%z')) | map(attribute='price') | min| default(0) }}
Für die Visualisierung habe ich die Apex Chart Card aus dem Video ein wenig optimiert. Hier findet ihr die optimierte Variante als Code Beispiel ( die nötigen MQTT Sensoren aus EVCC findet ihr weiter unten ) :
Weitere Infos zum Umgang mit der Apex Chart Card, habe ich in diesem Video erklärt:
type: custom:apexcharts-card
apex_config:
chart:
height: 268px
all_series_config:
unit: kWh
header:
title: Evcc Tibber Forecast
show: true
standard_format: true
show_states: true
colorize_states: true
graph_span: 2d
span:
start: day
offset: '+0'
now:
show: true
label: Jetzt
yaxis:
- id: kwh
min: 0
apex_config:
tickAmount: 5
- id: header
show: false
series:
- entity: sensor.evcc_tariff_forecast
yaxis_id: kwh
type: area
name: Forecast heute
color: green
data_generator: >
let now = new Date().getTime();
let rates = entity.attributes.result.rates;
let filteredRates = rates.filter(rate => new Date(rate["start"]).getTime()
<= now);
return filteredRates.map(rate => [new Date(rate["start"]).getTime(),
rate["price"]]);
show:
legend_value: false
in_header: false
stroke_width: 4
float_precision: 2
extend_to: false
- entity: sensor.evcc_tariff_forecast
yaxis_id: kwh
type: area
name: Forecast heute (nach Jetzt)
color: yellow
data_generator: >
let now = new Date().getTime()- 3600000;
let rates = entity.attributes.result.rates;
let filteredRates = rates.filter(rate => new Date(rate["start"]).getTime()
> now);
return filteredRates.map(rate => [new Date(rate["start"]).getTime(),
rate["price"]]);
show:
legend_value: false
in_header: false
stroke_width: 4
float_precision: 2
extend_to: false
- entity: sensor.evcc_tariff_grid
color: green
yaxis_id: header
name: Aktueller Preis
unit: ' € '
float_precision: 2
show:
legend_value: true
in_header: true
in_chart: false
- entity: sensor.evcc_tibber_forecast_min_value_today
color: yellow
yaxis_id: header
name: Min(heute)
unit: ' € '
float_precision: 2
show:
legend_value: true
in_header: true
in_chart: false
- entity: sensor.evcc_tibber_forecast_max_value_today
color: yellow
yaxis_id: header
name: Max(heute)
unit: ' € '
float_precision: 2
show:
legend_value: true
in_header: true
in_chart: false
- entity: sensor.evcc_tibber_forecast_min_value_tomorrow
color: yellow
yaxis_id: header
name: Min(morgen)
unit: ' € '
float_precision: 2
show:
legend_value: true
in_header: true
in_chart: false
- entity: sensor.evcc_tibber_forecast_max_value_tomorrow
color: yellow
yaxis_id: header
name: Max(morgen)
unit: ' € '
float_precision: 2
show:
legend_value: true
in_header: true
in_chart: false
Alle diese Daten habe ich auch aus EVCC extrahiert. Hier findet ihr die nötigen MQTT-Sensoren:
mqtt:
sensor:
- name: "EVCC Grid Power"
unique_id: evcc_grid_power
state_topic: "evcc/site/gridPower"
unit_of_measurement: "W"
availability_topic: "evcc/status"
- name: "EVCC PV Power"
unique_id: evcc_pv_power
state_topic: "evcc/site/pvPower"
#value_template: "{{ value | round(1) }}"
unit_of_measurement: "W"
availability_topic: "evcc/status"
- name: "EVCC Tariff Grid"
unique_id: evcc_tariff_grid
state_topic: "evcc/site/tariffGrid"
unit_of_measurement: "EUR/kWh"
availability_topic: "evcc/status"
- name: "EVCC Tariff Feed In"
unique_id: 3bd64d9d-0e8d-41ad-9db3-b0a4774120c1
state_topic: "evcc/site/tariffFeedIn"
unit_of_measurement: "EUR/kWh"
availability_topic: "evcc/status"
- name: "EVCC geladen an Wallbox"
unique_id: evcc_geladen_an_Wallbox
state_topic: "evcc/site/statistics/total/chargedKWh"
unit_of_measurement: "kWh"
availability_topic: "evcc/status"
device_class: energy
state_class: total_increasing
- name: "EVCC Hausverbrauch"
unique_id: evcc_hausverbrauch
state_topic: "evcc/site/homePower"
unit_of_measurement: "W"
availability_topic: "evcc/status"
- name: "EVCC Battery Power"
unique_id: evcc_battery_Power
state_topic: "evcc/site/batteryPower"
unit_of_measurement: "W"
availability_topic: "evcc/status"
Bonus shell_command Sensor für das Deaktivieren der EVCC Batteriemanagement Funktion über die REST API von EVCC in der Configuration.yaml
shell_command: batterie_aus: curl -X POST http://192.168.101.3:7070/api/batterydischargecontrol/false batterie_an: curl -X POST http://192.168.101.3:7070/api/batterydischargecontrol/true
Automatisierung , um bei sehr günstigem Strompreis ( Preis liegt unter der Einspeisevergütung) den Batteriespeicher zu laden:
alias: Speicher Laden und abschalten, da so günstiger
description: ""
trigger:
- platform: numeric_state
entity_id:
- sensor.evcc_tariff_grid
below: sensor.evcc_tariff_feed_in
id: Es ist günstiger aus dem Netz zu beziehen
- platform: numeric_state
entity_id:
- sensor.evcc_tariff_grid
id: Es ist teurer aus dem Netz zu beziehen
above: sensor.evcc_tariff_feed_in
- platform: numeric_state
entity_id:
- sensor.evcc_battery_soc
above: 99
id: Speicher hat 100 % erreicht
condition:
- condition: time
after: "06:00:00"
before: "20:00:00"
action:
- choose:
- conditions:
- condition: trigger
id:
- Es ist günstiger aus dem Netz zu beziehen
sequence:
- service: shell_command.batterie_aus
metadata: {}
data: {}
- device_id: 1659e926aef842a56f4fc8960bf10ca1
domain: select
entity_id: 6427b7e3fd03320c47261c2767cc0c41
type: select_option
option: Charge from Solar Power and Grid
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- device_id: 1659e926aef842a56f4fc8960bf10ca1
domain: number
entity_id: cedb1c19907bf5f26d82807c7a46b72e
type: set_value
value: 36000
- conditions:
- condition: trigger
id:
- Es ist teurer aus dem Netz zu beziehen
sequence:
- service: shell_command.batterie_an
metadata: {}
data: {}
- device_id: 1659e926aef842a56f4fc8960bf10ca1
domain: select
entity_id: 6427b7e3fd03320c47261c2767cc0c41
type: select_option
option: Maximize Self Consumption
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- device_id: 1659e926aef842a56f4fc8960bf10ca1
domain: number
entity_id: cedb1c19907bf5f26d82807c7a46b72e
type: set_value
value: 3600
- conditions:
- condition: and
conditions:
- condition: trigger
id:
- Speicher hat 100 % erreicht
- condition: numeric_state
entity_id: sensor.evcc_tariff_grid
below: sensor.evcc_tariff_feed_in
sequence:
- device_id: 1659e926aef842a56f4fc8960bf10ca1
domain: select
entity_id: 6427b7e3fd03320c47261c2767cc0c41
type: select_option
option: Solar Power Only (Off)
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- device_id: 1659e926aef842a56f4fc8960bf10ca1
domain: number
entity_id: cedb1c19907bf5f26d82807c7a46b72e
type: set_value
value: 36000
mode: single
Viel Spaß 🙂
Wenn ihr ebenfalls noch Automatisierungsideen oder Lösungen in diesem Zusammenhang habt, kommt gerne auf meinen Discord Server und präsentiert dort eure Lösung.



