We zitten in de koudste periode van de winter, en bezitters van elektrische auto’s weten maar al te goed hoeveel invloed dat heeft op het rijbereik. De batterijcapaciteit van een EV vermindert door de kou, en de klimaat- en rijhulpsystemen verbruiken meer dan gewoonlijk. Dat betekent dat de auto vaker opgeladen moet worden, maar niet iedereen met een elektrische auto beschikt over de mogelijkheid om dat op een privélaadpaal te doen. Publiek laden heeft nadelen: je deelt de oplaadplaatsen met anderen en je kunt daardoor weleens misgrijpen. Daarnaast is het niet de bedoeling om de oplaadplek veel langer bezet te houden dan nodig is. In sommige gevallen worden er daarom al 'kleefboetes' toegepast door de tijd die de auto doorbrengt aan de paal apart in rekening te brengen.
Je kunt Home Assistant inzetten om openbaar laden makkelijker te maken. In dit artikel bekijken we meerdere automatiseringen die het leven met een EV makkelijker maken. Met deze automatiseringen sta je altijd vooraan om een vrijgekomen plekje in te nemen, sta je nooit in de weg voor anderen, en krijgen kleefboetes geen vat op je.
Wat heb je nodig?
In de ideaalste situatie heb je de auto al aan Home Assistant gekoppeld via een integratie. Vrijwel alle EV’s zijn ‘connected’, zodat je op afstand via een app de oplaadstatus in de gaten kunt houden of de voorverwarming kunt activeren. Veel integraties zijn nog door de community gebouwd en vaak geen onderdeel van de standaard Home Assistant-integraties. Om deze te installeren is de communitystore HACS nodig. In de tabel hieronder staan de integraties voor Home Assistant van de populairste EV-merken in Nederland.
BMW / Mini |
Renault |
Peugeot / |
Mercedes |
Toyota |
Nissan |
Op het moment van schrijven bleek de Toyota-integratie kapot. BYD geeft geen toegang tot de api en kan niet worden toegevoegd aan Home Assistant. Vrijwel alle integraties geven toegang tot de belangrijkste statusgegevens van de auto die nodig zijn voor de automatiseringen die we in dit artikel maken, maar het kan nodig zijn om creatief om te denken omdat je situatie niet aansluit op de voorbeelden die gebaseerd zijn op mijn Volkswagen e-Golf. Loop je vast, aarzel dan niet om je te melden in de reacties onder het artikel, of, als deze gesloten zijn, in het centrale Home Assistant-topic op ons onvolprezen forum.
Laadpaalstatus
Om Home Assistant te laten assisteren bij het laden op openbare laadplaatsen, moet deze op de hoogte zijn van de status van de oplaadpunten. Dit krijg je voor elkaar door de Shell Recharge-integratie, die ook weer via de communitystore HACS kan worden geïnstalleerd.
Na de installatie kies je je favoriete oplaadpunten op de kaart van Shell. Bij de details van de geselecteerde laadpaal, onderaan de zijbalk, vind je het serienummer van het laadpunt waarmee je de paal kunt toevoegen aan Home Assistant. Je kunt een onbeperkt aantal laadpalen toevoegen, dus het is geen probleem om een ruime selectie palen toe te voegen die Home Assistant allemaal monitort.
De naamgeving van de laadpunten gebeurt over het algemeen met hun straatnaam. Dat kan lastig zijn als een lange straat veel laadpunten heeft. Om de oplaadpunten makkelijker te beheren en gebruiken, is het aan te raden om de naam in Home Assistant aan te passen, zodat je in één oogopslag weet om welk laadpunt het gaat als je de paal later in een pushbericht krijgt toegestuurd.
Autostatus op je dashboard
Met de data van je auto in Home Assistant is het bijna vanzelfsprekend om deze een mooie plek te geven in de interface. Een fraaie manier om dit te doen is met de Ultra Vehicle Card waarmee je in een oogopslag de status van je auto kunt zien. Om de kaart echt af te maken kun je zelf twee afbeeldingen van de auto aanleveren: een normale en een variant daarop die de auto weergeeft met laadpaal. Voor dat laatste moet je wellicht je Photoshop-skills aanspreken (of een mooie foto maken).
De kaart biedt duidelijke aanwijzingen om de meeste basisfuncties die een auto ondersteunt toe te voegen, maar het kan zijn dat de integratie die bij je auto hoort meer mogelijkheden biedt. Uiteraard houdt niets je tegen om nog meer handige snelkoppelingen toe te voegen aan je dashboard. Hierbij kun je denken aan een knop om de standverwarming van de auto te activeren of een regelaar die de bovenste laadgrens van de accu instelt.
Laadplekken visualiseren op je dashboard
Deze automatisering is gebaseerd op mijn (luxe) situatie: ik heb maar liefst vier oplaadplekken voor de deur. Meestal is er wel een plekje vrij, maar om dat in één oogopslag te kunnen zien in Home Assistant is alsnog fijn. Dat krijg je voor elkaar met een picture-elements-kaart. De basisafbeelding bestaat uit een lay-out van je favoriete laadplekken. Niet iedereen beschikt over de vaardigheden om zo'n opdracht fraai af te ronden: ik schaar mezelf ook onder die groep. Daarom heb ik een afbeelding laten maken van parkeerplaatsen in pixelartstijl door ChatGPT. Het resultaat daarvan moest nog iets worden bijgevijld om de indeling van de plaatsen goed te krijgen. Naast een afbeelding van je parkeerplaats(en) heb je ook hetzelfde aantal afbeeldingen nodig van auto's in proportie met de afbeelding van de parkeerplaats.
In Photoshop, Paint.NET, GIMP of een andere afbeeldingseditor van je keuze maak je een nieuwe afbeelding van 512 bij 512 pixels. De eerste laag van de afbeelding vul je met de parkeerplaatsen. Voor elke parkeerplaats die de basislaag bevat, maak je een ‘autolaag’: een transparante afbeelding met een auto op de positie van de parkeerplaats waar de laag bij hoort. Alle lagen van de afbeelding exporteer je los in jpeg-formaat.
In Home Assistant maak je op het dashboard een picture-elements-kaart aan, die je vult met de basislaag en daarbovenop de autolagen. Aan elke autolaag wijs je in de kaart de juiste laadpaalentiteit toe. Als zichtbaarheidsvoorwaarde geef je op dat de entiteit bezet moet zijn. Dat zorgt ervoor dat er bij bezetting van de paal een auto in het bijbehorende parkeervak verschijnt. Hieronder vind je de YAML van de kaart.
type: picture-elements elements: - type: image image: /api/image/serve/48e1f5463658249ec52d4dc3009ba25a/512x512 style: left: 50% top: 50% width: 100% entity: sensor.laadpaal_4 tap_action: action: none hold_action: action: none state_image: {} state_filter: Occupied: opacity(100%) Available: opacity(0%) - type: image style: left: 50% top: 50% width: 100% entity: sensor.laadpaal_3 tap_action: action: none hold_action: action: none state_image: {} state_filter: Occupied: opacity(100%) Available: opacity(0%) image: /api/image/serve/cff766255590fba1750fb2fe8513e306/512x512 - type: image style: left: 50% top: 50% width: 100% entity: sensor.laadpaal_2 tap_action: action: none hold_action: action: none state_image: {} state_filter: Occupied: opacity(100%) Available: opacity(0%) image: /api/image/serve/b9669178d9fdc61210248e6259cf121e/512x512 - type: image style: left: 50% top: 50% width: 100% entity: sensor.laadpaal_1 tap_action: action: none hold_action: action: none state_image: {} state_filter: Occupied: opacity(100%) Available: opacity(0%) image: /api/image/serve/9b4af36e476e62e4bdc1d28d184b447c/512x512 image: /api/image/serve/7adc0912cac7bc0df2fd9f7f3cd11d9d/512x512 grid_options: columns: 12 rows: 4
Voor je eigen situatie moet je één of meer variabelen aanpassen.
sensor.laadpaal_X | Aanpassen naar je gewenste laadpaal-entiteit |
Laadpaalcheck bij thuiskomst
Deze automatisering bekijkt of de laadplekken die je voorkeur hebben beschikbaar zijn zodra je thuiskomt met een batterijcapaciteit die opladen vereist. Als er geen voorkeursplek beschikbaar is, krijg je een bericht om uit te wijken naar een van de vrije alternatieve laadplekken.
alias: Auto - Laadpaalcheck bij thuiskomst description: "" triggers: - entity_id: sensor.olaf_distance below: 2500 trigger: numeric_state conditions: - condition: numeric_state entity_id: sensor.egolf_battery_level below: 50 - condition: state entity_id: sensor.olaf_direction_of_travel state: towards actions: - variables: laadpalen_favoriet: - sensor.laadpaal_1 - sensor.laadpaal_2 - sensor.laadpaal_3 - sensor.laadpaal_4 laadpalen_extra: - sensor.laadpaal_5 - sensor.laadpaal_6 - sensor.laadpaal_7 - sensor.laadpaal_8 - choose: - conditions: - condition: template value_template: > {{ laadpalen_favoriet | select('is_state', 'Available') | list | length > 0 }} sequence: null - conditions: - condition: template value_template: > {{ laadpalen_extra | select('is_state', 'Available') | list | length > 0 }} sequence: - variables: vrije_palen: > {{ laadpalen_extra | select('is_state', 'Available') | list }} - data: title: Voorkeursplekken bezet message: > beschikbare alternatieven: {% for laadpaal in vrije_palen %} {{ states[laadpaal].name }}{% if not loop.last %}\n{% endif %} {% endfor %} data: car_ui: true action: notify.mobile_app_telefoon - conditions: - condition: template value_template: > {{ laadpalen_favoriet | select('is_state', 'Available') | list | length == 0 and laadpalen_extra | select('is_state', 'Available') | list | length == 0 }} sequence: - data: title: Geen laadplekken beschikbaar message: > Er zijn momenteel nergens vrije laadplekken beschikbaar. data: car_ui: true action: notify.mobile_app_telefoon
De automatisering activeert zichzelf op het moment dat je je woonplaats binnenrijdt. Home Assistant-zones werken niet altijd even betrouwbaar als ze elkaar overlappen. Als alternatief kun je Home Assistant voor deze automatisering uitrusten met de nabijheidintegratie die de positie en beweegrichting bijhoudt van je telefoon, auto of beide. Deze integratie heeft bij mij, in tegenstelling tot zones, nog geen klap misgeslagen. De automatisering wordt uitgevoerd op het moment dat je minder dan 2500 meter van huis bent. Vervolgens wordt gekeken of er aan twee condities is voldaan: de auto heeft minder dan 50 procent lading en de richting van de reis is naar huis toe. Dit kun je uiteraard aanpassen naar waarden die voor je eigen situatie het best werken.
Hierna wordt de automatisering ingewikkelder. De automatisering definieert variabelen waar Home Assistant vervolgens verder mee kan werken. In de variables-component worden twee lijstjes gevuld met laadpalen: laadpalen_favoriet en laadpalen_extra.
De volgende stap is een keuze uit drie scenario’s op basis van de status van de laadpalen. Zijn er laadpalen vrij in laadpalen_favoriet, dan gebeurt er niets, want je kunt direct naar je favoriete plek om te parkeren en laden.
Zijn alle laadpalen in laadpalen_favoriet bezet, dan kijkt de automatisering door de laadpalen_extra-lijst en bepaalt welke er vrij zijn. Home Assistant stuurt daarna een pushbericht naar je telefoon met een lijst van vrije laadpalen. De volgorde van de palen in laadpalen_extra wordt hierbij behouden; je kunt de lijst bij het vullen dus op afstand of voorkeur sorteren.
Als alle laadpalen rondom huis bezet zijn, komt het laatste scenario aan bod. Die stuurt je een pushbericht met een teleurstellende melding, wat in elk geval voorkomt dat je vruchteloos rondjes rijdt op zoek naar een laadplek.
Voor je eigen situatie moet je een aantal variabelen aanpassen:
sensor.olaf_distance | Aanpassen naar je eigen distance-entiteit. |
sensor.egolf_battery_level | Aanpassen naar het batterijniveau van de auto. |
sensor.olaf_direction_of_travel | Aanpassen naar je eigen direction-entiteit. |
laadpalen_favoriet | Hier voeg je de lijst met favoriete palen toe. |
laadpalen_extra | Hier voeg je de lijst met alternatieve palen toe. |
notify.mobile_app_telefoon | Aanpassen naar je eigen telefoon-entiteit. |
Wachten op laadplaats
Als alle laadplaatsen die je graag gebruikt bezet zijn, kun je ervoor kiezen om te wachten op een plekje. Home Assistant kan dat natuurlijk prima voor je doen. Deze automatisering is gebouwd met behulp van een helper. In Home Assistant maak je een schakelaar aan onder de helpers (Instellingen -> Apparaten en diensten -> Helpers), die je bijvoorbeeld ‘parkeerplaats zoeken’ noemt.
:strip_exif()/i/2007231694.png?f=imagemedium)
De automatisering die bij deze functie hoort, activeert als één van je beoogde plekken verandert van status. Vervolgens wordt de status van de parkeerplaatszoekhelper gecontroleerd. Als deze is deze ingeschakeld, krijg je een pushbericht dat er een parkeerplaats is vrijgekomen. De helper wordt hierna weer uitgeschakeld.
Om gemakkelijk gebruik te maken van de schakelaar, kun je deze als tegel in de interface van Home Assistant toevoegen. Hierbij kun je gebruikmaken van de zichtbaarheidsopties voor de tegel, door voor elke paal een voorwaarde toe te voegen die monitort of de paal bezet is. Als aan alle voorwaarden wordt voldaan, ofwel: alle palen zijn bezet, verschijnt de knop in de interface en kun je deze makkelijk activeren. Zodra de knop zijn werk heeft gedaan en een plekje vrijkomt, verdwijnt deze ook weer automatisch uit beeld. Dat houdt de interface overzichtelijk zonder overbodige knoppen.
Automatisering
alias: Auto - Parkeerplaatsmelding description: "" triggers: - trigger: state entity_id: - sensor.laadpaal_1 to: Available from: Occupied - trigger: state entity_id: - sensor.laadpaal_2 to: Available from: Occupied - trigger: state entity_id: - sensor.laadpaal_3 to: Available from: Occupied - trigger: state entity_id: - sensor.laadpaal_4 to: Available from: Occupied conditions: - condition: state entity_id: input_boolean.parkeerplaatsmelding state: "on" actions: - action: notify.mobile_app_telefoon metadata: {} data: title: Parkeerplaats is vrij! message: Je kunt gaan laden - action: input_boolean.turn_off metadata: {} data: {} target: entity_id: input_boolean.parkeerplaatsmelding mode: single
Lovelacekaart
type: tile entity: input_boolean.parkeerplaatsmelding visibility: - condition: state entity: sensor.laadpaal_1 state: Occupied - condition: state entity: sensor.laadpaal_2 state: Occupied - condition: state entity: sensor.laadpaal_3 state: Occupied - condition: state entity: sensor.laadpaal_4 state: Occupied - condition: state entity: switch.egolf_charging state: "off" - condition: state entity: person.olaf state: home name: Wachten op plekje show_entity_picture: false hide_state: true grid_options: columns: full rows: 1 tap_action: action: toggle hold_action: action: toggle
Voor je eigen situatie moet je een aantal variabelen aanpassen:
input_boolean.parkeerplaatsmelding | Aanpassen naar je eigen helperentiteit. |
sensor.laadpaal_# | Aanpassen naar je favoriete laadpalen. |
notify.mobile_app_telefoon | Aanpassen naar je eigen telefoon-entiteit. |
switch.egolf_charging | Aanpassen naar de entiteit die de laadstatus weergeeft. |
person.olaf | Aanpassen naar je eigen entiteit. |
Laadpaalkleefnotificatie (of lui laden?)
Openbare laadplaatsen gebruik je niet alleen voor jezelf. Er is weinig zo vervelend als wachten tot een ander zijn allang volgeladen auto ontkoppelt, zodat je van je bereikangst wordt verlost en je auto van een volle lading kunt voorzien. Home Assistant kan je inlichten als de laadplekken volstromen, zodat je een ander die ook wil opladen niet blokkeert. Zo komt je buurman nooit bij een volledig bezette laadplek aan waar jouw auto misschien al uren onderdeel uitmaakt van de ‘kleefbrigade’. Dit maakt het mogelijk om redelijk 'lui' te laden zonder ooit echt in de weg te staan.
alias: Auto - Laadpaalkleefnotificatie description: "" triggers: - trigger: state entity_id: - sensor.laadpaal_1 - trigger: state entity_id: - sensor.laadpaal_2 - trigger: state entity_id: - sensor.laadpaal_3 - trigger: state entity_id: - sensor.laadpaal_4 - trigger: state entity_id: - switch.egolf_charging to: "off" conditions: - condition: state entity_id: sensor.laadpaal_1 state: Occupied - condition: state entity_id: sensor.laadpaal_2 state: Occupied - condition: state entity_id: sensor.laadpaal_3 state: Occupied - condition: state entity_id: sensor.laadpaal_4 state: Occupied - condition: state entity_id: binary_sensor.egolf_charging_cable_connected state: "on" - condition: state entity_id: switch.egolf_charging state: "off" - condition: state entity_id: device_tracker.egolf_position state: home - condition: numeric_state entity_id: sensor.egolf_battery_level above: 75 - condition: time after: "08:00:00" before: "23:30:00" actions: - action: notify.mobile_app_telefoon metadata: {} data: message: clear_notification data: tag: kleefnotificatie - action: notify.mobile_app_telefoon metadata: {} data: message: Laadplaatsen zijn vol, auto is klaar met laden. title: Je kleeft de paal data: tag: kleefnotificatie - delay: hours: 0 minutes: 30 seconds: 0 mode: single
De automatisering activeert op de statusverandering van de laadplaats(en) die je monitort. Hierna wordt een hele rij voorwaarden afgehandeld. Er wordt gecontroleerd of op dat moment alle laadplekken in gebruik zijn, of de auto zich bij de laadplekken bevindt, of de auto aangesloten is op een laadkabel en niet bezig is met opladen, en de batterijcapaciteit hoger is dan 75 procent. Wordt aan al deze voorwaarden voldaan, dan krijg je een melding om de auto te verplaatsen.
Om het aantal meldingen binnen de perken te houden, wacht de automatisering 30 minuten alvorens weer een nieuwe poging te wagen met een melding waarbij de oude verwijderd wordt. Daarnaast houdt de automatisering rekening met je nachtrust.
Voor je eigen situatie moet je wederom een aantal variabelen aanpassen:
sensor.laadpaal_X | Aanpassen naar je favoriete laadpalen. |
switch.egolf_charging | Aanpassen naar de entiteit die de laadstatus van de auto weergeeft. |
binary_sensor.egolf_charging_cable_connected |
Aanpassen naar de entiteit die de laadpoortstatus weergeeft. |
device_tracker.egolf_position |
Aanpassen naar de entiteit die de autopositie aangeeft. |
sensor.egolf_battery_level | Aanpassen naar de entiteit die het batterijniveau van de auto weergeeft. |
notify.mobile_app_telefoon | Aanpassen naar je eigen telefoon-entiteit. |
Laadstatuscontrole
Deze automatisering controleert of de auto wel wordt opgeladen nadat je de laadkabel aansluit. Dat kan voorkomen als de stekker niet goed is aangedrukt, of als je bent vergeten om de laadpaal te activeren met je app, pas of badge. De automatisering activeert nadat de laadkabel 15 minuten op de auto is aangesloten en kijkt of er op dat moment ook opgeladen wordt. Als dit niet het geval is, stelt Home Assistant je op de hoogte en kun je kijken waarom het opladen niet gestart is. Deze automatisering kan conflicteren met uitgestelde laadacties. Mocht je daar regelmatig gebruik van maken, dan zul je een geschikte entiteit moeten zoeken om toe te voegen aan een voorwaarde die de automatisering annuleert.
alias: Auto - controle oplaadstatus description: "" triggers: - trigger: state entity_id: - binary_sensor.egolf_charging_cable_connected to: "on" for: hours: 0 minutes: 15 seconds: 0 conditions: [] actions: - if: - condition: state entity_id: switch.egolf_charging state: "off" then: - action: notify.mobile_app_telefoon metadata: {} data: title: Ben je iets vergeten? message: De auto laadt niet op.. mode: single
Voor je eigen situatie moet je wederom een aantal variabelen aanpassen.
notify.mobile_app_telefoon | Aanpassen naar je eigen telefoon-entiteit. |
switch.egolf_charging |
Aanpassen naar de entiteit die de laadstatus van de auto weergeeft. |
binary_sensor.egolf_charging_cable_connected |
Aanpassen naar de entiteit die de laadpoortstatus weergeeft. |
Tot slot
Met de bovenstaande automatiseringen moet je een heel eind komen om openbaar laden fijner te maken met de hulp van Home Assistant. Het kan natuurlijk zijn dat je eigen situatie afwijkt, zodat je de automatiseringen uit dit artikel stevig moet aanpassen. Kom je daar niet helemaal uit, of heb je een briljante toevoeging die ontbreekt in dit artikel? Laat het weten in de reacties.