Automatisering

Oplad elbil med solenergi

Der findes flere kommercielle ladeløsninger, som kan bruges til at oplade din elbil med solenergi. Eksempler på sådanne løsninger er Heartbeat, Easee Equalizer, evcc.io, sunmate.io, SolarBalance Solutions osv. De kræver dog alle ekstra hardware og/eller betaling af et løbende abonnement. Eller er begrænsede til brug med en specifik producent af invertere eller ladebokse.

Så hvorfor ikke bare bruge Home Assistant (HA)?

Det kræver blot, at data fra din inverter er integreret i HA og at du kan styre opladningsstyrken på din lader eller elbil.

Der findes heldigvis HA integrationer til mange forskellige invertere, ladebokse og elbiler.

Og så kan du bruge HA til at styre opladningen, så du kun bruger den overskydende strøm for solcellerne.

Jeg viser i dette indlæg, hvordan du kan lave en automatisering, der tilpasser ladestyrken til solproduktionen.

Integration af inverter

Du skal have data fra din inverter integreret i HA, så du kan se den aktuelle produktion fra dine solceller og beregne den overskydende produktion ift. det nuværende forbrug. Alternativt kan du bruge data fra din elmåler, der viser eksport af strøm.

Findes der en app, hvor du kan se data fra din inverter, er der sikkert også en HA integration.

Her er en liste over HA integrationer til nogle af de meste populære invertere:

ProducentIntegration
GrowattGrowatt eller Grott (addon + HACS)
HuaweiHuawei Solar (HACS)
DeyeModbus via ESPHome eller Solarman (HACS)
FroniusFronius

Selvom din inverter ikke fremgår af listen, kan der sagtens findes en integration til den.

Og findes der ikke en integration, kan man evt. bruge en løsning som Solar Assistant til at få data i HA.

Integration af ladeboks

Du skal have integreret din ladeboks, så du kan se nuværende ladestyrke og tilpasse ladestyrken til den overskydende solproduktion.

Det er ikke alle ladebokse, som kan integreres i HA. Det gælder f.eks. ladebokse fra Clever. Nedenfor er en oversigt til nogle af dem, der er lavet integrationer til. Listen er ikke udtømmende, så selvom din ladeboks ikke fremgår af listen, kan den måske integreres.

ProducentIntegration
EaseeEasee EV Charger (HACS)
go-eChargergo-eCharger (HACS)
Wallbox PlusarOCPP (HACS) eller Wallbox
Fronius WattpilotFronius Wattpilot (HACS)
Zaptec ChargerZaptec Charger (HACS)

Jeg har af gode grunde ikke testet alle ovenstående integrationer, men integrationerne bør alle umiddelbart understøtte styring af ladestyrken.

Følg instruktionerne i ovenstående links for den pågældende ladeboks for at oprette integrationen.

De fleste af integrationerne skal installeres via HACS. Hvis du ikke allerede har HACS installeret, kan du læse mere om hvordan det gøres i dette indlæg.

Beregn overskydende solproduktion

For at kunne tilpasse ladestyrken, skal du som minimum bruge oplysninger om følgende:

  • Nuværende produktion fra solceller
  • Nuværende forbrug i huset
  • Nuværende forbrug til opladning

En igangværende opladning vil ofte tælle med i husstandens samlede elforbrug. Derfor kan denne formel benyttes til at beregne hvor meget strøm, der kan fyldes på bilen uden at der skal købes el:

Solproduktion – Forbrug + Opladning = Overskud

Hvis du har et batterianlæg, kan det også være nødvendigt med oplysninger om op- og afladning af dette. Så kan man undgå at aflade sine husbatterier under opladning af elbilen.

Det er også muligt at lægge en buffer ind i beregningen. Enten som et fast forbrug eller som procentdel af det samlede forbrug. Bufferen kan bruges, hvis du ikke ønsker at bruge hele den overskydende produktion til opladning. Eksempelvis hvis du samtidig vil sælge strøm eller oplade evt. husbatterier.

Lav template med beregning

Udregningen kan du lave i en template / skabelon i enten en automatisering eller som en særskilt sensor, der kan vises på dit dashboard. Her er et eksempel på en sensor, der udregner den overskydende solproduktion:

template:
  - sensor:
      - name: "Solar Control - Excess Solar Energy"
        unique_id: solar_control_excess_solar_energy
        unit_of_measurement: "W"
        icon: mdi:octagram-plus-outline
        state: >
          {# Tilret navn på sensor med nuværende produktion fra solceller i watt #}
          {% set solar_production = states('sensor.total_solar_production') | float  %}
          {# Tilret navn på sensor med nuværende totalt elforbrug i watt #}
          {% set current_consumption = states('sensor.current_consumption') | float %}
          {# Tilret navn på sensor med nuværende opladning af elbil i watt  #}
          {% set ev_charging = states('sensor.easee_power') | float * 1000 %}
          {# Udregning af overskydende produktion fra solceller - slet evt. buffer hjælper eller opret den  #}
          {{ solar_production - current_consumption + ev_charging - states('input_number.solar_control_energy_buffer') | float }}

Alle sensorer bør levere data i samme enhed. Jeg har valgt at bruge watt, men min ladeboks bruger kW, så derfor omregnes forbruget fra kW til watt ved at gange med 1000.

Jeg har også lavet en ny hjælper (input_number), der bruges som buffer i beregningen. Denne kan oprettes under “Indstillinger” – “Enheder og tjenester” – “Hjælpere” eller ved at tilføje dette i din configuration.yaml fil:

input_number:
  solar_control_energy_buffer:
    name: Energi buffer i watt
    icon: mdi:home-minus
    unit_of_measurement: "W"
    min: 0
    max: 5000
    step: 100
    mode: slider

Templaten skal også oprettes enten i under “Hjælpere” eller ved at tilføje den direkte i din configuration.yaml fil. Du skal tilrette koden med navnene på de relevante sensorer fra din inverter og ladeboks.

Du kan med fordel lave en package, der samler template, hjælpere og automatiseringen i én samlet fil. Se mere herom senere.

Når du har fået oprettet sensoren, kan du indsætte den på dit dashboard og bruge den i automatiseringer. Her et et eksempel på udregningen vist på mit dashboard.

Oplad elbil med solenergi: Eksempel på beregning af overskydende produktion fra solceller, der kan bruges til opladning af elbil - inden opladning startes.

Eksemplet viser udregningen inden en opladning er startet.

Og sådan her ser det ud, når opladningen er i gang:

Oplad elbil med solenergi: Eksempel på beregning af overskydende produktion fra solceller, der kan bruges til opladning af elbil - efter opladning er startet.

Næste skridt er at lave en automatisering, som tilpasser opladningen til den overskydende produktion.

Byg automatisering

En automatisering, der tilpasser ladestyrken til den overskydende produktion fra solceller vil være forskellig for de enkelte ladebokse. Helt generelt vil en automatisering dog kunne laves på denne måde:

Udløser: Ændring i det overskud fra solceller, der kan bruges til opladning.

Betingelser: Efter ønske, men jeg har f.eks. bruge en entitet, hvor man på dashboardet kan vælge om opladningen skal justeres automatisk eller om opladningen ikke skal tage højde for produktionen fra solcellerne. Det kan anvendes på dage, hvor man gerne vil udnytte lave priser eller har behov for hurtigt at oplade bilen. Og til opladning om natten eller på dage, hvor der ikke er overskud fra solcellerne.

Handling: Brug af service, der kan justere eller begrænse ladestyrken. Særligt denne del vil være forskellig for de enkelte ladebokse.

Automatiseringen bør også sørge for at ladestyrken ikke justeres for ofte, da dette – afhængigt af din ladeløsning – kan skade boksen eller overbelaste den onlineløsning, som boksen bruger. Hvis dine data fra inverteren ikke bliver opdateret så ofte, er det ikke et problem. Hvis du derimod har data i realtid eller tæt på, bør du overveje en begrænsning på antallet af opdateringer.

Det kan gøres ved at indsætte en forsinkelse på f.eks. et minut til sidst i automatiseringen og så sørge for at flere automatiseringer ikke kører samtidigt.

Eksempel på automatisering med brug af Easee Home ladeboks

Jeg har en Easee Home ladeboks. Den kan man indstille til at oplade på enten én eller tre faser med hver mellem 6A og 32A. Det svarer til 1,4 kW og op til 22 kW, hvis husets installation understøtter det.

Det er derfor nødvendigt at omregne den overskydende solproduktion i watt til de maksimale ampere, som laderen må bruge.

Til dette har jeg valgt at oprette endnu en template sensor, så jeg også kan få vist oplysningerne på mit dashboard.

Templaten beregner, om der skal lades med én eller tre faser og hvor mange ampere, der skal lades med:

template:
  - sensor:
      - name: “Solar Control - EV Charging"
        unique_id: solar_control_ev_charging
        icon: mdi:ev-station
        state: "{{ this.attributes.status | default('pause') }}"
        attributes:
          phases: >
            {% set max_charging = states('sensor.solar_control_excess_solar_energy') | float  %}
            {% set v = 235 %}
            {% set maxPhaseA = 16 %}
            {% if max_charging<(6*v) %}
              {% set phases = {"status": "pause", "count": 0, "P1": 0, "P2": 0, "P3": 0 } %}
            {% elif max_charging > (6*3*v)  %}
              {% set maxCharge =(max_charging/3/v),maxPhaseA  %}
              {% set phases = {"status": "charge", "count": 3, "P1": maxCharge|min|int, "P2": maxCharge|min|int, "P3": maxCharge|min|int } %}
            {% else %}
              {% set maxCharge = (max_charging/v),maxPhaseA %}
              {% set phases = {"status": "charge", "count": 1, "P1": maxCharge|min|int, "P2": 0, "P3": 0 } %}
            {% endif %}
            {{ phases }}
          status: "{{ iif(this.attributes.phases.status=='pause','Pause','Opladning ' + (this.attributes.phases.count|string) + ' '+ iif(this.attributes.phases.count==1,'fase','faser') +': '+(this.attributes.phases.P1|string)+'A') }}"

Templaten har forskellige attributter, der kan bruges i en automatisering til at styre opladningen:

Oplad elbil med solenergi: Eksempel på attributter i template sensor, der beregner ladestyrken per fase

Når templaten er oprettet kan vi bruge den som udløser i en automatisering:

alias: "Solar control: Change EV charging ampere"
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.solar_control_ev_charging
  - platform: state
    entity_id:
      - input_boolean.solar_control_auto_adjust_charging
    from: "off"
    to: "on"
condition:
  - condition: state
    entity_id: input_boolean.solar_control_auto_adjust_charging
    state: "on"
  - condition: state
    entity_id: sensor.easee_status
    state: charging
action:
  - service: easee.set_circuit_dynamic_limit
    data_template:
      device_id: xxxxxxxxxxxxxxxx
      current_p1: "{{ states.sensor.solar_control_ev_charging.attributes.phases.P1 }}"
      current_p2: "{{ states.sensor.solar_control_ev_charging.attributes.phases.P2 }}"
      current_p3: "{{ states.sensor.solar_control_ev_charging.attributes.phases.P3 }}"
  - delay:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
mode: single
max_exceeded: silent

Jeg bruger også en “Skift” hjælper til at styre om ladestyrken skal justeres eller ej. Den er lavet med denne kode:

input_boolean:
  solar_control_auto_adjust_charging:
    name: Automatically adjust charging
    icon: mdi:flash-auto

Automatiseringen starter eller stopper ikke selv opladningen, men det kan enten tilføjes eller laves i en anden automatisering. Så kan man f.eks. helt stoppe opladningen, hvis der er under 1,4 kW i overskydende produktion fra solcellerne. Og starte opladningen igen, når produktionen overstiger denne grænse.

Samlet package med ovenstående kode

I stedet for at oprette hjælper, template og automatisering særskilt, kan man samle det hele i én fil – en såkaldt package.

Jeg har lavet en package fil, som du kan hente på min GitHub side. Den indeholder ovenstående koder og kan let indsættes i din egen HA løsning.

Der er forskellige måder at integrere en package på i din HA. Det kommer der muligvis et indlæg om på et senere tidspunkt. Indtil da kan du læse mere i den officielle HA dokumentation. Selv har jeg valgt metoden, hvor packages tilføjes i en mappe (packages) i hver deres fil.

Det kræver blot en enkelt tilføjelse i din configuration.yaml fil med reference til den oprettede mappe:

homeassistant:
  packages: !include_dir_named packages

Det eneste, som package filen ikke indeholder, er kode til dashboard. Men der kan du indsætte dette i et standard entities kort:

type: entities
entities:
  - entity: sensor.total_solar_production
    name: Produktion fra solceller
  - entity: sensor.load_totalpower
    name: '- Nuværende forbrug'
  - entity: sensor.easee_power
    name: + Nuværende opladning
  - entity: input_number.solar_control_energy_buffer
    name: '- Buffer'
  - type: section
  - entity: sensor.solar_control_excess_solar_energy
    name: Overskud til opladning
    secondary_info: last-changed
  - type: section
  - entity: input_boolean.solar_control_auto_adjust_charging
    name: Automatisk tilpasning af ladestyrke
  - type: section
  - entity: sensor.solar_control_ev_charging
    name: Ladestyrke
    secondary_info: last-changed
title: Opladning fra solceller
show_header_toggle: false

Hvor nyttigt var dette indlæg?

Gennemsnitlig bedømmelse 5 / 5. Bedømmelser: 7

Ingen stemmer indtil videre! Vær den første til at bedømme dette indlæg.

Jeg beklager, at dette indlæg ikke var nyttigt for dig!

Hvordan kan indlægget forbedres?

30 thoughts on “Oplad elbil med solenergi

  • RENE KRISTENSEN

    Hej Anders
    Mange tak for dit gode arbejde, jeg er ved at prøve at få det til at virke her men er stadig ret ny i HA 🙂
    Jeg har en easee home lader en easee equlizer og et growatt solcelle anlæg
    sidder og roder lidt med det her
    1 Nuværende produktion fra solceller
    2 Nuværende forbrug i huset
    3 Nuværende forbrug til opladning
    men hvilken sensor skal jeg bruge til nr 2 Nuværende forbrug i huset
    kan ikke rigtigt se at det kan være andet end easee equalizer import er det rigtigt
    Mvh René

    Besvar
    • Hej René,

      Jeg kender desværre ikke til hvilke data man får ind i HA fra Growatt eller Equalizer, men generelt bør du kigge efter en sensor, der hedder noget i stil med total load eller total power.

      Ellers prøv at se nogle af de øvrige kommentarer i til dette indlæg. Der er andre, der har fået det til at virke med Growatt…

      Mvh.

      Anders

      Besvar
    • Michael Christiansen

      Hej René

      Din growatt integration burde give den en forbrugs sensor hvis du har et smartmeter på dit anlæg, på mit hedder den sensor. load_power

      Besvar
  • Rasmus Busk

    Hej Anders,
    Tak for inspiration og mange gode tricks : )
    Har mere eller mindre kopieret din package, og det meste ser rigtigt ud og virker for mig.
    Har en Easee Home lader, det virker fint med at regulere ladestrømmen, når det er på en fase, men når overskudsstrømmen stiger, fortsætter den på en fase men regulerer strømmen til f.eks. 6A. Så når den burde lade med 3x6A lader den fortsat med 1x6A.
    Har du en idé til min fejlfinding?

    Mvh. Rasmus

    Besvar
    • Hej Rasmus,

      Tak for din kommentar og ros.

      Det kunne måske skyldes, at du i Easee app’en ikke har valgt “Automatisk” under “Indstillinger” – “Fasetilstand”?

      Ellers må du prøve at se, om der kommer fejl i loggen, når den forsøger at skifte til 3 faser. Det er desværre et stykke tid siden, jeg selv har haft stor nok solproduktion til at kunne lade på 3 faser, men det kommer forhåbentligt snart igen 😉

      Mvh.

      Anders

      Besvar
  • Adrian Pucyk

    Hej Anders

    Jeg har ease lite box og jeg kan se at den tager ikke kun overproduktion fra solceller. Jeg har set til max 6A (4,1kw) i min bil bare at boxen bruger ikke mere fra elnetet.
    Hvad skal jeg kigges på ?

    Besvar
  • Hej Anders,

    Har du et forslag til at kombinere din solar charge og smart EV charging ?

    Jeg kan ikke lige komme på den rigtige løsning til at få HA til at tage den beslutning om der skal lades fra solceller eller fra grid. eller om hvorvidt der kan supleres med grid efter solcellerne har gjort deres .

    Besvar
    • Hej Jan,

      Jeg har desværre ikke selv fundet en god automatisk løsning, der beslutter om der skal lades fra sol eller nettet.

      Det skyldes, at vi har to elbiler og både et meget varierende kørselsbehov og strømforbrug i øvrigt. Så der er mange ubekendte faktorer og det gør det svært at automatisere.

      Hos os er EV Smart Charging derfor koblet fra det meste af sommeren, da vi kan lade biler kun med solenergi. Hvis vi en sjælden gang har brug for at lade fra nettet, så slår vi enten EV Smart Charging til eller starter opladning selv.

      Jeg har lavet en dato/tid hjælper i HA, så man selv kan indtaste et starttidspunkt og en automatisering, der starter opladningen på det valgte tidspunkt.

      En mulig løsning for en automatisk beslutning om der skal lades fra nettet kunne være noget i stil med dette:

      Slå EV Smart Charging til, hvis forventet solproduktion i morgen er lavere end X kWh, hvor X beregnes som:

      (Target SoC – nuværende SoC x bilens batteri kapacitet i kWh) + øvrigt estimeret dagligt elforbrug i kWh

      Håber ovenstående kan hjælpe med at finde en brugbar løsning

      Mvh.

      Anders

      Besvar
  • Hej Anders,

    Jeg har samme problem som en der tidligere har beskrevet at HA ændrer lade ampere men opladeren bliver ikke opdateret med dette.
    Jeg har en easee lader som ikke oplader selvom der er solcelle strøm til det.
    Dette er min automatisering:
    automation:
    #─────────────────────────────────────────────────────────────────────────────
    # This automation adjusts the current charging rate (in ampere) on Easee Home
    # Charger based on calculated excess solar production, but only if automatic
    # adjustment is enabled
    #─────────────────────────────────────────────────────────────────────────────
    – alias: “Solar control: Change EV charging ampere”
    id: solar_control_adjust_ev_charging
    description: “This automation changes the EV charging rate based on current solar production.”
    trigger:
    – platform: state
    entity_id:
    – sensor.solar_control_ev_charging
    – platform: state
    entity_id:
    – input_boolean.solar_control_auto_adjust_charging
    from: “off”
    to: “on”
    condition:
    – condition: state
    entity_id: input_boolean.solar_control_auto_adjust_charging
    state: “on”
    – condition: state
    entity_id: sensor.easee_status
    state: “charging”
    action:
    – service: easee.set_circuit_dynamic_limit
    data_template:
    device_id: XXXXXXXX
    currentP1: “{{ states.sensor.solar_control_ev_charging.attributes.phases.P1 }}”
    currentP2: “{{ states.sensor.solar_control_ev_charging.attributes.phases.P2 }}”
    currentP3: “{{ states.sensor.solar_control_ev_charging.attributes.phases.P3 }}”
    – delay:
    hours: 0
    minutes: 1
    seconds: 0
    milliseconds: 0
    mode: single
    max_exceeded: silent

    Besvar
    • Hej Jan,

      Prøv at ændre currentP1 til current_p1 mv. og se om det ikke virker. Der er sket en opdatering til Easee API, så dette skulle være den nye syntax.

      Jeg har fået rettet automatiseringen i indlægget og i min package.

      Mvh.

      Anders

      Besvar

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *