Een van de voornaamste redenen om Home Assistant
te gebruiken is het inzichtelijk maken van ons energieverbruik (los van alle automatisering). Nu de WeHeat-warmtepomp (spoiler!) geïnstalleerd is, was een van de eerste stappen dan ook het goed opnemen van die data in Home Assistant
. En omdat dat niet helemaal zonder slag of stoot ging, is het een kort berichtje waard.

De documentatie
Als we naar de officiële WeHeat-integratie op de Home Assistant-pagina kijken, zou de volgende data beschikbaar moeten zijn:
Sensors
The WeHeat integration provides the following sensors:
- Output power: Thermal power added to the water in Watts
- Input power: Electrical power in Watts
- COP: The Coefficient of Performance between the above two power measurements
- Water inlet temperature: The heat pump water inlet temperature in °C
- Water outlet temperature: The heat pump water outlet temperature in °C
- Water target temperature: Target for the water temperature in °C
- Central heating inlet temperature: The central heating inlet temperature in °C
- Central heating flow: The flow volume of the central heating pump
- Outside temperature: Outside temperature in °C
- Current room temperature: Current room temperature in °C
- Room temperature setpoint: Setpoint for the room temperature in °C
- Electricity used: Total electricity used in kWh
- Energy output: Total output generated in kWh
- State: The current heat pump state
- DHW top temperature: The domestic hot water temperature in the top of the vessel in °C (optional)
- DHW bottom temperature: The domestic hot water temperature in the bottom of the vessel in °C (optional)
- DHW pump flow: The flow volume of the DHW pump (optional)
- Compressor RPM: The rpm of the compressor fan
- Compressor percentage: The percentage of the compressor fan (can exceed 100% for some models)
Afhankelijk van het model of de installatie kunnen daarnaast ook enkele statussen van de binnenunit beschikbaar zijn:
- Indoor unit water pump
- Indoor unit auxiliary water pump
- Indoor unit DHW valve or water pump
- Indoor unit gas boiler heating allowed — kan True zijn, ook als er geen gasboiler aanwezig is
- Indoor unit electric heater
Een snelle blik in Home Assistant
zelf laat echter zien dat het totale energieverbruik (Electricity used) ontbreekt in het overzicht. En laat dat nu net de waarde zijn die ik het hardste nodig heb voor het energiedashboard.
Na wat zoekwerk blijkt dit een bekend issue te zijn: de data was onvoldoende betrouwbaar en wordt daarom al ruim een half jaar niet meer meegestuurd. Zie ook deze issue op GitHub.
Maar geen probleem — dan maken we zelf wel een oplossing.
De oplossing
Omdat we wél het actuele verbruik hebben, kunnen we op basis daarvan het totale verbruik redelijk nauwkeurig berekenen. We hebben daarvoor een paar aanpassingen nodig. En als we dan toch bezig zijn, kunnen we meteen de splitsing van het verbruik maken naar de verschillende functies van de warmtepomp. In ons geval (full electric) onderscheid ik de volgende categorieën:
- Warm (tap)water
- CV-warmte
- Defrost-cycles
- Legionella-cycles
Hiervoor maken we een aantal templates aan in de configuration.yaml
en templates.yaml
.
configuration.yaml (zodat we templates kunnen bundelen in een andere file voor meer overzicht):
template: !include templates.yaml
templates.yaml:
- sensor:
- name: "WeHeat Power CV"
state: >-
{% if states('sensor.whpomp') == 'heating' %}
{{ states('sensor.whpomp_input_power') | float }}
{% else %}
0
{% endif %}
unit_of_measurement: "W"
device_class: "power"
- name: "WeHeat Power DHW"
state: >-
{% if states('sensor.whpomp') == 'dhw' %}
{{ states('sensor.whpomp_input_power') | float }}
{% else %}
0
{% endif %}
unit_of_measurement: "W"
device_class: "power"
- name: "WeHeat Power Legionella"
state: >-
{% if states('sensor.whpomp') == 'legionella_prevention' %}
{{ states('sensor.whpomp_input_power') | float }}
{% else %}
0
{% endif %}
unit_of_measurement: "W"
device_class: "power"
- name: "WeHeat Power Defrost"
state: >-
{% if states('sensor.whpomp') == 'defrosting' %}
{{ states('sensor.whpomp_input_power') | float }}
{% else %}
0
{% endif %}
unit_of_measurement: "W"
device_class: "power"
We splitsen hier het stroomverbruik op basis van de status van de warmtepomp en registreren zo het verbruik per status.
Na het aanmaken van deze losse waardes kunnen we ze geschikt maken voor het energiedashboard. Dit doen we opnieuw in configuration.yaml
:
sensor:
- platform: integration
source: sensor.whpomp_input_power
name: energieverbruik_weheat_lifetime
unit_prefix: k
round: 2
method: left
- platform: integration
source: sensor.weheat_power_dhw
name: energieverbruik_weheat_dhw
unit_prefix: k
round: 2
method: left
- platform: integration
source: sensor.weheat_power_cv
name: energieverbruik_weheat_cv
unit_prefix: k
round: 2
method: left
- platform: integration
source: sensor.weheat_power_defrost
name: energieverbruik_weheat_defrost
unit_prefix: k
round: 2
method: left
- platform: integration
source: sensor.weheat_power_legionella
name: energieverbruik_weheat_legionella
unit_prefix: k
round: 2
method: left
Met de bovenstaande regels zorgt Home Assistant
er op basis van het actuele verbruik en de verstreken tijd voor dat het totale energieverbruik wordt berekend. Als er veel fluctuaties in het verbruik zitten of de updates ver uit elkaar liggen, is deze benadering minder precies. Maar aangezien het verbruik van de warmtepomp vrij stabiel is, komen we ruim nauwkeurig genoeg uit.
Het dashboard
Na het doen van de bovenstaande aanpassingen moet je Home Assistant
één keer opnieuw opstarten om de nieuwe sensoren beschikbaar te maken. Zodra dat gedaan is, kun je ze toevoegen als “verbruikers” in het energiedashboard (Instellingen → Dashboards → Energie).

Let er op dat de “Lifetime”-waarde als parent wordt ingesteld voor de overige WeHeat-waardes, om te voorkomen dat ze dubbel worden geteld.


Sneak peek
Ondertussen werk ik ook aan een dashboard dat inzicht moet geven in de werking en performance van het systeem. Het is zeker nog niet af, maar hieronder alvast een kleine indicatie van wat er straks allemaal te zien is.
Geef een reactie