Smart opladning af elbil
Jeg har i et tidligere indlæg vist, hvordan man kan lade sin elbil med overskydende produktion fra solceller. I dette indlæg vil jeg vise, hvordan opladningen i stedet kan foretages på det tidspunkt, hvor elprisen er lavest.
De fleste elbiler og ladebokse giver mulighed for at planlægge en opladning. Planlægningen er dog ikke så smart, at den tager højde for elprisen. Det findes der derimod kommercielle løsninger, som kan gøre. Eksempler på sådanne løsninger er gridio.io, Monta, Clever osv. De er dog alle cloud løsninger og giver ikke fuld kontrol over opladningen.
Så hvorfor ikke bare bruge Home Assistant (HA)?
Det kræver blot, at data om din elbil er integreret i HA og at du kan starte og stoppe opladningen via en integration til din lader eller elbil.
Der findes heldigvis HA integrationer til mange forskellige ladebokse og elbiler.
Og ved at hente elpriser kan man selv lave en automatisering, der starter opladningen på på det billigste tidspunkt.
Jeg viser i dette indlæg et eksempel på, hvordan en sådan automatisering kan laves.
Integration af elpriser
Hvis du ikke allerede har installeret Energi Data Service integrationen, skal du starte med at gøre det. Du kan læse mere om integrationen og opsætningen i dette indlæg.
Integration af elbil
Næste skridt er at integrere din elbil i HA, så du kan få oplysninger om bilens batteriniveau og evt. starte og stoppe opladning.
Der er lavet integrationer til de fleste elbiler og en del Plug-in hybridbiler. Findes der en app til din bil, er der sikkert også en HA integration.
Hvis integrationen ikke giver mulighed for at starte en opladning, kan du måske i stedet bruge en integration til din ladeboks. Læs mere om mulige integrationer til din ladeboks i dette indlæg.
Beregn tidspunkt for opladning
For at beregne den billigste pris for opladningen, er det nødvendigt med oplysninger om 1) hvor lang tid bilen skal lades og 2) hvornår den skal være færdig.
Opladningstiden kan beregnes automatisk, hvis integrationen til din bil giver oplysninger om det nuværende batteri-niveau og det indstillede niveau, der skal oplades til.
For at kunne beregne opladningstiden, skal du bruge oplysninger om følgende:
- Nuværende batteriniveau i %
- Batteriniveau, der skal oplades til i %
- Samlet kapacitet på batteriet i kWh
- Ladestyrken i kWh
Så kan denne formel benyttes til at beregne hvor længe bilen skal lade:
(Oplad til – batteri) x kapacitet / styrke = Ladetid
Som eksempel vil en elbil med et batteri på 77 kWh, der skal oplades fra 50% til 70% på en 11 kWh ladeboks, have behov for at lade i lidt over 2 timer:
(80% – 50%) x 77 kWh / 11 kWh= 2,1 timer
Du kan i HA lave en beregning af ladetiden ved at lave en template.
Der findes dog flere andre løsninger, så du slipper for at lave det hele selv.
Jonas Boye har lavet en package, der kan bruges til at finde de billigste timer.
Jeg har selv lavet et NodeRED flow, der starter opladningen på det billigste tidspunkt.
Men det mest avancerede løsning er EV Smart Charging integrationen, der kan installeres via HACS. Den viser jeg, hvordan du kan bruge.
Installer EV Smart Charging
Først skal du installere integrationen via HACS,
Start HACS ved at vælge HACS i din sidemenu og søg efter “EV Smart Charging” eller ved at klikke på linket nedenfor:
Nu bør du kunne se integrationen på oversigten. Klik på integrationen:
Klik på ”Download” knappen i nederste højre hjørne:
Klik på ”Download” knappen for at installere den seneste version:
Du skal genstarte HA for at få startet integrationen.
Det gøres ved at klikke på ”Genstart” knappen under ”Udviklerværktøjer” -> ”YAML”:
Tryk på “Genstart Home Assistant” for at foretage en fuld genstart:
Bekræft, at du ønsker at genstarte HA ved at klikke på ”Genstart” knappen:
Opsætning af EV Smart Charging integrationen
Når HA er genstartet, er næste skridt at tilføje og konfigurere EV Smart Charging som en ny integration i HA.
Dette gøres ved at navigere til ”Indstillinger” –> ”Enheder og tjenester” eller ved at klikke på nedenstående knap for at gå direkte til opsætningen:
Du skal nu trykke knappen ”Tilføj integration” i nederste højre hjørne og søge efter EV Smart Charging i oversigten. Klik på integrationen, når den er fundet:
Udfyld med yderligere relevante informationer:
Felt | Beskrivelse |
---|---|
Name | Udfyldes med et valgfrit navn. BEMÆRK: Alle entiteter, som integrationen opretter, vil starte med dette navn. Brug “EV Smart Charging” som navn, hvis du ønsker at bruge dashboard og automatiseringseksemplerne, der er vist senere i dette indlæg. |
Electricity price sensor | Dette felt er krævet og skal udfyldes med navnet på den sensor fra Energi Data Service integrationen, som indeholder dine elpriser. Eksempelvis sensor.energi_data_service. |
EV SOC entity | Dette felt er krævet og skal udfyldes med navnet på den sensor, som indeholder det nuværende batteriniveau på din elbil angivet i procent. TIP: Hvis du ønsker at angive integrationen til start af en varmepumpe, opvarmning af spabad eller styring af andet elforbrug, skal du oprette en fiktiv sensor med den nuværende procent – f.eks. angivet som procentandel af nuværende temperatur for spabad set i forhold til en ønsket temperatur. |
EV Target SOC entity | Dette felt er valgfrit, men bør udfyldes med navnet på den sensor, som indeholder det ønskede batteriniveau på din elbil i procent. Hvis integrationen til din elbil ikke indeholder dette, kan du selv oprette en sensor eller efterlade feltet blankt. Så vil integrationen altid antage, at der oplades til 100%. |
Charger control switch | Dette felt er valgfrit, men kan udfyldes med navn på en evt. switch entitet, som styrer start og stop af opladning. Det kan f.eks. være fra integrationen til din elbil eller din ladeboks. Hvis du ikke angiver noget i dette felt, kan du selv oprette automatiseringer, der starter og stopper opladning, hvilket giver øget frihed til at styre opladningen |
An EV integration will control start/stop of charging | Sæt kryds i dette felt, hvis den charger control switch, du har valgt i feltet ovenfor er oprettet af integrationen til din elbil og ikke din ladeboks. |
TIP
Du kan oprette flere integrationer, hvis du f.eks. har flere elbiler. Men du kan også bruge integrationen til styring af andre former for opladning eller forbrug . Det kan f.eks. bruges til opladning af et solcellebatteri, start af varmepumpe, opvarmning af pool / spabad osv.
Nu er integrationen opsat og bør kunne ses i oversigten over oprettede “Enheder og tjenester”:
Næste skridt er yderligere konfiguration af integrationen, der nærmere styrer, hvornår opladning skal foretages.
Konfiguration af EV Smart Charging
EV Smart Charging integrationen indeholder en del forskellige entiteter, der kan bruges til styring af opladningen. Dem finder du ved at klikke på den oprettede enhed:
Følgende entiteter bruges til at styre opladningen:
Entitet (navn, hvor EV Smart Charging udeladt) | Beskrivelse |
---|---|
Smart charging activated (switch.smart_charging_activated) | Denne bruges til at styre om integrationen er aktiveret eller ej. Hvis den er deaktiveret, vil integrationen ikke beregne de billigste tidspunkter for opladning. |
Charge start time (select.charge_start_time) | Det tidligste tidspunkt på dagen, hvor opladningen må starte. Hvis ‘None’ er valgt, vil start af opladning ikke være begrænset til et specifikt tidspunkt. |
Charge completion time (select.charge_completion_time) | Det seneste tidspunkt på dagen, hvor opladning skal nå det ønskede batteri-niveau. Hvis ‘None’ er valgt, vil opladningen blive optimeret ved at bruge alle timer med tilgængelig prisinformation, herunder før morgendagens priser er tilgængelige. |
Charging speed (number.charging_speed) | Opladningshastigheden udtrykt i procent pr. time. Hvis elbilen f.eks. har et 75 kWh batteri, og opladeren kan levere 11 kW (3-faset 16 A), skal du indstille denne parameter til 14,67 (11/75*100). Hvis der er begrænsninger i opladningseffekten, bør du anføre en lavere værdi. |
Apply price limit (switch.apply_price_limit) | Når denne er aktiveret, vil opladningen ikke ske i timer, hvor elprisen er over det prisloft, der er angivet i den angivne værdi i number.ev_smart_charging_electricity_price_limit BEMÆRK: Dette kan føre til, at elbilen ikke oplades til det ønskede batteri-niveau, hvis ingen elpriserne ikke kommer under det angivne prisloft. |
Electricity price limit (number.electricity_price_limit) | Her angives værdien af det ønskede prisloft, hvor opladning ikke skal foretages. |
Low SOC charging (switch.low_soc_charging) | Når denne er aktiveret, sker opladningen straks til det angivne minimumsniveau, hvis batteriet er under den angivne grænse for lavt batteri, når bilen tilsluttes ladeboksen. BEMÆRK: Opladningen sker uden hensyn til de aktuelle priser. |
Low SOC charging level (number.low_soc_charging_level) | Minimumsniveau for batteri, hvor opladning skal ske med det samme, hvis batteriet er under den angivne grænse, når bilen tilsluttes ladeboksen. |
Minimum EV SOC (number.minimum_ev_soc) | Niveau, som batteriet skal oplades til med det samme, når bilen tilsluttes ladeboksen, hvis batteriet er lavere end den angivne grænse for lavt batteri. |
Low price charging (switch.low_price_charging) | Hvis denne er aktiveret, sker opladningen straks, hvis elprisen er under dette den fastlagte prisgrænse. |
Low price charging level (number.low_price_charging_level) | Prisgrænse for hvornår opladning skal startes |
Opportunistic charging (switch.opportunistic_charging) | Når denne er aktiveret, reduceres prisgrænsen yderligere, hvis prisen i slutningen af dagen er lavere end prisloftet * Opportunistisk grænse / 100. Hvis det opportunistiske niveau er sat til 50 og prisloftet er sat til 2,5 kr., startes opladningen således hvis prisen er under 50% * 2.5 = 1.25 kr. Hvis priserne for i morgen er tilgængelige, vil prisen i slutningen af dagen i morgen blive brugt som udløser. |
Opportunistic charging level (number.opportunistic_level) | Opportunistisk grænse for opladning angivet som en procentandel af det fastsatte prisloft |
Continuous charging preferred (switch.continuous_charging_preferred) | Når denne er aktiveret, sker opladningen som udgangspunkt i én sammenhængende opladningssession. Hvis den er slået fra, planlægges opladning på timerne med laveste elpris, selvom de ikke er sammenhængende. Opladningen kan derfor starte og stoppe flere gange. |
Keep charger on (switch.ev_keep_charger_on) | Når denne er aktiveret, vil sensoren ev_smart_charging_charging ikke slukke efter en afsluttet opladningssession. Funktionen er beregnet til at gøre det muligt at foretage forkonditionering før afgang med brug af strøm fra ladeboksen. Det vil sige, at forvarmning/afkøling af bilen kan ske fra elnettet i stedet for batteriet. Hvis denne mulighed bruges, vil funktionen Elprisgrænse blive slået fra, og omvendt.BEMÆRK Det er krævet, at status på bilens opkobling styres korrekt for at denne funktion kan fungere. Der er også en antagelse om, at selve elbilen stopper opladningen, når det planlagte batteriniveau er nået. |
I næste afsnit kan du læse mere om hvordan man kan få vist de relevante enheder på sit dashboard. Så bliver det nemmere at styre opladningen.
Dashboard
For at gøre det nemt at styre opladningen og se, hvornår opladningen er planlagt, kan man tilføje forskellige de forskellige sensorer og enheder til sidst dashboard.
Jeg har lavet en særskilt side (view) med relevante data og mulighed for at rette i de parametre, der bruges til styring af opladningen:
Koden til ovenstående kan findes på min GitHub side.
For at bruge koden, skal du have installeret følgende komponenter fra HACS:
Automatisering til at starte og stoppe opladning
Når integrationen er installeret og konfigureret, mangler vi bare at lave en automatisering, der kan starte og stoppe opladningen. Dette er kun relevant, hvis du har undladt at udfylde Charger control switch ved opsætningen.
Her er et eksempel på en automatisering, der starter opladningen. Automatiseringen udløses, når sensoren sensor.ev_smart_charging_charging skifter status fra “off” til “on” . Eksemplet tager udgangspunkt i en Easee ladeboks, men kan naturligvis tilpasses til brug for andre ladebokse eller elbiler:
alias: EV Smart Charging - Start opladning
description: ""
mode: single
trigger:
- platform: state
entity_id:
- sensor.ev_smart_charging_charging
from: "off"
to: "on"
condition: []
action:
- service: easee.action_command
data:
device_id: xxxxxxxxxx
action_command: start
På samme måde, kan der laves en automatisering, der stopper opladningen, når sensoren sensor.ev_smart_charging_charging skifter status til”off”. Kommandoen skal så ændres fra “start” til “pause”.
fedt! Ville lige checke noget ift. energi-dashboard.. og så lå der lige et nyt indlæg 🙂
Hej Martin,
Tak for din kommentar og for at du følger med på siden.
Hvis du ikke allerede er tilmeldt, kan overveje at tilmelde dig nyhedsbrevet.
Så får du nemlig en mail, næste gang, der er et nyt indlæg 😉
Mvh.
Anders
hej Anders..
En lille ting. Jeg husker ikke, om jeg har vinget EV connected af da jeg sad og satte det op i sin tid, men..
Jeg har konfigureret det hele nu, så det rent faktisk virker.. med hjælp fra dig.. så det er super godt.
men EV connected er vinget af konstant.
Det vil sige, at EV smart charge forsøger at starte opladning “hele tiden”. også selvom bilen ikke er sat til. i løbet af natten her, har den forsøgt 2-3 gange.
Så et sted, hvor en automatisering ville være go’, vil nok være at sætte EV connected jvf. en sensor fra din bil.
Jeg har lavet denne til formålet.. nu ser vi hvordan copy paste virker på siden her:
alias: EV Smart Charge | EV Conncted description: Switches EV Connected binary sensor to on if plugged in, else to off. trigger: - platform: state entity_id: - binary_sensor.ioniq_5_ev_battery_plug for: hours: 0 minutes: 0 seconds: 5 condition: [] action: - choose: - conditions: - condition: state entity_id: binary_sensor.ioniq_5_ev_battery_plug state: "on" sequence: - type: turn_on device_id: 7772c2f527065f5c784a643a1a2afbb5 entity_id: 82335092aedb90d77764adee6c9131f0 domain: switch default: - type: turn_off device_id: 7772c2f527065f5c784a643a1a2afbb5 entity_id: 82335092aedb90d77764adee6c9131f0 domain: switch mode: single
Når jeg forsøger at c/p dit dashboard ind som et card i min egen Home Assistant, får jeg denne fejl
“Configuration errors detected:
No type provided.”
Jeg har copy/pastet direkte herfra: https://raw.githubusercontent.com/dykandDK/home-assistant-config/master/include/views/ev_smart_charging.yaml
Er der nogen der ved hvad der er galt?
Hej Søren,
Koden er et helt view (tap), så den kan ikke kopieres direkte ind i et enkelt kort.
Du skal slette linjerne 1-17 og så fjerne “-“ i linjen med “- type: horizontal-stack”. Så bør det virke 😊
Mvh.
Anders
Hej igen
Tak for hurtigt svar, det gav desværre bare en ny fejl.
“Configuration errors detected:
bad indentation of a mapping entry (2:10)
1 | type: horizontal-stack
2 | cards:
————–^
3 | ################################### …
4 | ### Display pl …”
Jeg kan se at du har lavet en eksport af dit eget dashboard og lagt på Github, er der ikke et sted hvor man “nemt” kan importere det igen direkte?
Hej Søren,
Du mangler vist en enkelt indrykning i linje 1, så “type” og “cards” på linjen nedenunder står på samme niveau.
Mit samlede dashboard kan lægges ind som en samlet YAML fil og så tilføjes i configuration.yaml filen. Læs evt. mere om dette her: https://www.home-assistant.io/dashboards/dashboards/#adding-more-dashboards-with-yaml
Men den samlede fil er ikke opdateret med alle ændringer, da jeg selv har opdelt mit dashboard i mindre dele.
Mvh.
Anders
Okay, er det muligt jeg kan få koden til dine nyeste, små dele i stedet? Det her copy/paste af hele dashboards fungerer ikke – det lykkedes heller ikke at indlæse yaml filen.
Hej Søren,
Jeg har ikke lige planer om at dele koden op i mindre dele – udover det, der allerede ligger på min GitHub side.
Men hvis du vil indsætte det på dit dashboard som selvstændige kort, kan du indsætte linjerne 23-233, 238-288 og 293-386 i hvert deres kort. Igen skal du dog huske at erstatte det første “-“ i den første linje i hvert kort med et mellemrum.
Håber du får det til at virke…
Mvh.
Anders
Mange tak for super artikel og guide. Meget brugbart 🙂
Hej
Fedt arbejde, jeg roder med det men er i tvivl om hvor jeg finder mit device_Id til den automatisering der starter opladningen.
Hej Bent,
Tak for din kommentar.
Du kan finde dit device ID ved at bruge udviklerværtøjer – actions. Her kan du vælge easee.action_command og vælge din Easee lader under enhed. Så skifter du til YAML visning og kan se dit device ID i koden.
Håber du får det til at virke.
Mvh.
Anders