In Home Assistant kun je met een P1 meter die je op je slimme meter aansluit je stroom en gasverbruik uitlezen. Hieraan kun je dan weer een m3 of kWh prijs aan koppelen en zien hoeveel je verbruik kost.
Is dit accuraat hoor ik je denken? Ja, de P1 meter is zeer nauwkeurig en de prijs is dan eenvoudig te berekenen. Echter aan het eind van de maand klopt de prijs niet.
Dat komt omdat belastingen, vastrecht en leveringskosten niet worden meegenomen.
Wil je exact kunnen zien wat je per dag, week, maand of wat dan ook kwijt bent?
Lees dan vooral verder! Ik heb een berekening gemaakt die alles meeneemt om tot de juiste prijzen te komen.
Welke gegevens heb je nodig?
Om de juiste berekening te kunnen maken heb je de volgende gegevens nodig:
Gegevens Elektra:
- Prijs per kWh Normaal tarief
- Prijs per kWh Dal tarief
- Belasting vermindering (per dag)
- Vastrecht (per jaar)
- Vaste leveringskosten (per dag)
Gegevens Gas: - Prijs per m3
- Vaste leveringskosten (per dag)
- Vastrecht (per jaar)
Wat betreft P1 meter gebruik ik zelf die van Homewizard. De sensoren zijn hier ook in de berekening op afgestemd maar kunnen eenvoudig aan willekeurige P1 meters worden aangepast.
Aan de slag!
Als eerste moeten we een aantal Helpers in Home Assistant aanmaken. Helpers zijn entiteiten die van alles kunnen bevatten zoals een status of waardes en die kunnen helpen bij het realiseren van o.a. berekeningen. Zo gaan we helpers aanmaken voor gas en elektra verbruik per dag, week, maand, kwartaal en jaar. Maar ook helpers voor vastrecht, leveringskosten en belastingvermindering.
Helpers maken we aan in onderstaand scherm:
We maken nu eerst een numerieke helper aan voor de gasprijs per m3, neem de gegevens over uit onderstaand voorbeeld:
Noem deze: Gas – Prijs per m3
Neem de gegevens over zoals hieronder:
En klik vervolgens op Aanmaken.
Klik daarna op de aangemaakte helper en het volgende scherm zal openen:
Vul bij €/m3 jouw tarief per m3 gas in. Druk op enter en sluit het schermpje af.
Je hebt nu de eerste helper aangemaakt!
Maak nu nog meer helpers aan voor de volgende entiteiten met de volgende waardes:
Naam | Pictogram | Min Waarde | Max Waarde | Modus | Stapgrootte | Eenheid |
Elektra – Belasting Vermindering | mdi:currency-eur | 0 | 100 | Invoerveld | 1 | €/dag |
Elektra – Tarief 1 Prijs per kWh | mdi:currency-eur | 0 | 100 | Invoerveld | 1 | €/kWh |
Elektra – Tarief 2 Prijs per kWh | mdi:currency-eur | 0 | 100 | Invoerveld | 1 | €/kWh |
Elektra – Vaste Leveringskosten | mdi:currency-eur | 0 | 100 | Invoerveld | 1 | €/dag |
Elektra – Vastrecht Jaar | mdi:currency-eur | 0 | 100 | Invoerveld | 1 | €/jaar |
Gas – Belasting | mdi:currency-eur | 0 | 100 | Invoerveld | 1 | €/m3 |
Gas – Vaste leveringskosten | mdi:currency-eur | 0 | 100 | Invoerveld | 1 | €/dag |
Gas – Vastrecht | mdi:currency-eur | 0 | 100 | Invoerveld | 1 | €/jaar |
Oké, nu hebben we de helpers voor de tarieven aangemaakt. Na het maken van de helpers klik je op alle helpers om de tarieven in te vullen zoals we in het eerste voorbeeld al hebben gedaan voor de Prijs per m3.
Helpers voor de hoeveelheden gas en elektra dag/week/maand/kwartaal/jaar
Als je rechtstreeks de P1 meter uitleest dan krijg je daar prima waardes uit alleen “rouleren” deze waardes niet. Als je je verbruik inzichtelijk per dag/week/maand etc wilt maken, dan moeten we helpers aanmaken die de waardes rouleren. Hiervoor gebruiken we geen numerieke helpers maar Nutsmeter helpers.
Maak weer een helper aan en kies voor Nutsmeter.
Als voorbeeld hieronder een afbeelding:
Hieronder een tabel met alle nutsmeter helpers die aangemaakt moeten worden.
Van belang is dat de Invoer Sensor klopt! In dit artikel zijn de sensoren gebaseerd op de Homewizard P1 meter. Als je een andere gebruikt, wees er dan zeker van dat je de juiste sensoren gebruikt.
Naam | Invoer Sensor | Meter reset Cyclus |
gasverbruik_deze_maand | P1 Meter Totaal gasverbruik | Maandelijks |
gasverbruik_deze_week | P1 Meter Totaal gasverbruik | Wekelijks |
gasverbruik_vandaag | P1 Meter Totaal gasverbruik | Dagelijks |
gasverbruik_dit_kwartaal | P1 Meter Totaal gasverbruik | Per Kwartaal |
gasverbruik_dit_jaar | P1 Meter Totaal gasverbruik | Jaarlijks |
elektraverbruik_vandaag_tarief1 | P1 Meter Totaal afname tarief 1 | Dagelijks |
elektraverbruik_vandaag_tarief2 | P1 Meter Totaal afname tarief 2 | Dagelijks |
elektraverbruik_week_tarief1 | P1 Meter Totaal afname tarief 1 | Wekelijks |
elektraverbruik_week_tarief2 | P1 Meter Totaal afname tarief 2 | Wekelijks |
elektraverbruik_maand_tarief1 | P1 Meter Totaal afname tarief 1 | Maandelijks |
elektraverbruik_maand_tarief2 | P1 Meter Totaal afname tarief 2 | Maandelijks |
elektraverbruik_kwartaal_tarief1 | P1 Meter Totaal afname tarief 1 | Per Kwartaal |
elektraverbruik_kwartaal_tarief2 | P1 Meter Totaal afname tarief 2 | Per Kwartaal |
elektraverbruik_jaar_tarief1 | P1 Meter Totaal afname tarief 1 | Jaarlijks |
elektraverbruik_jaar_tarief2 | P1 Meter Totaal afname tarief 2 | Jaarlijks |
Nu hebben we alle helpers aangemaakt!
We hebben de nutsmeter helpers die ons gaan voorzien van het dagelijks, wekelijks etc. verbruik van gas en elektra en de numerieke helpers met de kosten die aan het verbruik zijn gekoppeld.
Nu is het zaak om dit allemaal samen te laten komen zodat het verbruik en kosten berekend gaan worden.
Om dit te bereiken moeten we de berekening toevoegen aan de Home Assistant configuratie.
Dit kunnen we niet via de webinterface maar we moeten hiervoor de Configuration.yaml bewerken.
Hiervoor heb je toegang nodig tot de bestanden in de Config folder van Home Assistant.
Voor nu heb ik enkel een voorbeeld van Home Assistant in een Docker omgeving dus laat ik dat hier zien.
Configuraties zijn altijd hetzelfde ongeacht of het Docker, NUC of Raspberry Pi installatie is. Alleen de manier waarop je de bestanden benaderd is anders.
Configuration.yaml aanpassen
In dit artikel draait het dus om de Docker variant op een Synology.
Log in op de admin omgeving in DSM op de Synology en via Filestation blader je naar de map waar je de Home Assistant configuratie bestanden hebt staan.
Klik met de rechtermuisknop op configuration.yaml en kies Openen met tekstverwerker
Je komt dan in onderstaand scherm:
Ga dan naar de laatste regel en plak onderstaande code onderin het configuration.yaml bestand.
- platform: template
sensors:
gasprijs_per_dag:
friendly_name: "Kosten gasverbruik Vandaag"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.gasverbruik_vandaag') | float %}
{% set b = states('input_number.gas_prijs_per_m3') | float %}
{% set c = states('input_number.gas_vaste_leveringskosten') | float %}
{% set d = states('input_number.gas_vastrecht') | float /365 %}
{{ ((a * b) + c + d ) | round(2) }}
gasprijs_per_week:
friendly_name: "Kosten gasverbruik deze week"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.gasverbruik_deze_week') | float %}
{% set b = states('input_number.gas_prijs_per_m3') | float %}
{% set c = states('input_number.gas_vaste_leveringskosten') | float *365/52 %}
{% set d = states('input_number.gas_vastrecht') | float /52 %}
{{ ((a * b) + c + d ) | round(2) }}
gasprijs_per_maand:
friendly_name: "Kosten gasverbruik deze maand"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.gasverbruik_deze_maand') | float %}
{% set b = states('input_number.gas_prijs_per_m3') | float %}
{% set c = states('input_number.gas_vaste_leveringskosten') | float *365/12 %}
{% set d = states('input_number.gas_vastrecht') | float /12 %}
{{ ((a * b) + c + d ) | round(2) }}
gasprijs_per_kwartaal:
friendly_name: "Kosten gasverbruik dit kwartaal"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.gasverbruik_dit_kwartaal') | float %}
{% set b = states('input_number.gas_prijs_per_m3') | float %}
{% set c = states('input_number.gas_vaste_leveringskosten') | float *365/4 %}
{% set d = states('input_number.gas_vastrecht') | float /4 %}
{{ ((a * b) + c + d ) | round(2) }}
gasprijs_per_jaar:
friendly_name: "Kosten gasverbruik dit jaar"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.gasverbruik_dit_jaar') | float %}
{% set b = states('input_number.gas_prijs_per_m3') | float %}
{% set c = states('input_number.gas_vaste_leveringskosten') | float *365 %}
{% set d = states('input_number.gas_vastrecht') | float %}
{{ ((a * b) + c + d ) | round(2) }}
stroomprijs_per_dag_t1:
friendly_name: "Kosten stroomverbruik Vandaag Tarief 1"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.elektraverbruik_vandaag_tarief1') | float %}
{% set b = states('input_number.elektra_tarief_1_prijs_per_kwh') | float %}
{% set c = states('input_number.elektra_vaste_leveringskosten') | float %}
{% set d = states('input_number.elektra_vastrecht_jaar') | float /365 %}
{% set e = states('input_number.elektra_belasting_vermindering') | float %}
{{ ((a * b) + (c / 3) + (d / 3) + (e / 3)) | round(2) }}
stroomprijs_per_week_t1:
friendly_name: "Kosten stroomverbruik deze week Tarief 1"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.elektraverbruik_week_tarief1') | float %}
{% set b = states('input_number.elektra_tarief_1_prijs_per_kwh') | float %}
{% set c = states('input_number.elektra_vaste_leveringskosten') | float *365/52 %}
{% set d = states('input_number.elektra_vastrecht_jaar') | float /52 %}
{% set e = states('input_number.elektra_belasting_vermindering') | float *365/52 %}
{{ ((a * b) + (c / 3) + (d / 3) + (e / 3)) | round(2) }}
stroomprijs_per_maand_t1:
friendly_name: "Kosten stroomverbruik deze maand Tarief 1"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.elektraverbruik_maand_tarief1') | float %}
{% set b = states('input_number.elektra_tarief_1_prijs_per_kwh') | float %}
{% set c = states('input_number.elektra_vaste_leveringskosten') | float *365/12 %}
{% set d = states('input_number.elektra_vastrecht_jaar') | float /12 %}
{% set e = states('input_number.elektra_belasting_vermindering') | float *365/12 %}
{{ ((a * b) + (c / 3) + (d / 3) + (e / 3)) | round(2) }}
stroomprijs_per_kwartaal_t1:
friendly_name: "Kosten stroomverbruik dit kwartaal Tarief 1"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.elektraverbruik_kwartaal_tarief1') | float %}
{% set b = states('input_number.elektra_tarief_1_prijs_per_kwh') | float %}
{% set c = states('input_number.elektra_vaste_leveringskosten') | float *365/4 %}
{% set d = states('input_number.elektra_vastrecht_jaar') | float /4 %}
{% set e = states('input_number.elektra_belasting_vermindering') | float *365/4 %}
{{ ((a * b) + (c / 3) + (d / 3) + (e / 3)) | round(2) }}
stroomprijs_per_jaar_t1:
friendly_name: "Kosten stroomverbruik dit jaar Tarief 1"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.elektraverbruik_jaar_tarief1') | float %}
{% set b = states('input_number.elektra_tarief_1_prijs_per_kwh') | float %}
{% set c = states('input_number.elektra_vaste_leveringskosten') | float *365 %}
{% set d = states('input_number.elektra_vastrecht_jaar') | float %}
{% set e = states('input_number.elektra_belasting_vermindering') | float *365 %}
{{ ((a * b) + (c / 3) + (d / 3) + (e / 3)) | round(2) }}
stroomprijs_per_dag_t2:
friendly_name: "Kosten stroomverbruik Vandaag Tarief 2"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.elektraverbruik_vandaag_tarief2') | float %}
{% set b = states('input_number.elektra_tarief_1_prijs_per_kwh') | float %}
{% set c = states('input_number.elektra_vaste_leveringskosten') | float %}
{% set d = states('input_number.elektra_vastrecht_jaar') | float /365 %}
{% set e = states('input_number.elektra_belasting_vermindering') | float %}
{{ ((a * b) + (c / 3 * 2) + (d / 3 * 2) + (e / 3 * 2)) | round(2) }}
stroomprijs_per_week_t2:
friendly_name: "Kosten stroomverbruik deze week Tarief 2"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.elektraverbruik_week_tarief2') | float %}
{% set b = states('input_number.elektra_tarief_1_prijs_per_kwh') | float %}
{% set c = states('input_number.elektra_vaste_leveringskosten') | float *365/52 %}
{% set d = states('input_number.elektra_vastrecht_jaar') | float /52 %}
{% set e = states('input_number.elektra_belasting_vermindering') | float *365/52 %}
{{ ((a * b) + (c / 3 * 2) + (d / 3 * 2) + (e / 3 * 2)) | round(2) }}
stroomprijs_per_maand_t2:
friendly_name: "Kosten stroomverbruik deze maand Tarief 2"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.elektraverbruik_maand_tarief2') | float %}
{% set b = states('input_number.elektra_tarief_1_prijs_per_kwh') | float %}
{% set c = states('input_number.elektra_vaste_leveringskosten') | float *365/12 %}
{% set d = states('input_number.elektra_vastrecht_jaar') | float /12 %}
{% set e = states('input_number.elektra_belasting_vermindering') | float *365/12 %}
{{ ((a * b) + (c / 3 * 2) + (d / 3 * 2) + (e / 3 * 2)) | round(2) }}
stroomprijs_per_kwartaal_t2:
friendly_name: "Kosten stroomverbruik dit kwartaal Tarief 2"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.elektraverbruik_kwartaal_tarief2') | float %}
{% set b = states('input_number.elektra_tarief_1_prijs_per_kwh') | float %}
{% set c = states('input_number.elektra_vaste_leveringskosten') | float *365/4 %}
{% set d = states('input_number.elektra_vastrecht_jaar') | float /4 %}
{% set e = states('input_number.elektra_belasting_vermindering') | float *365/4 %}
{{ ((a * b) + (c / 3 * 2) + (d / 3 * 2) + (e / 3 * 2)) | round(2) }}
stroomprijs_per_jaar_t2:
friendly_name: "Kosten stroomverbruik dit jaar Tarief 2"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.elektraverbruik_jaar_tarief2') | float %}
{% set b = states('input_number.elektra_tarief_1_prijs_per_kwh') | float %}
{% set c = states('input_number.elektra_vaste_leveringskosten') | float *365 %}
{% set d = states('input_number.elektra_vastrecht_jaar') | float %}
{% set e = states('input_number.elektra_belasting_vermindering') | float *365 %}
{{ ((a * b) + (c / 3 * 2) + (d / 3 * 2) + (e / 3 * 2)) | round(2) }}
stroomprijs_per_maand_totaal:
friendly_name: "Kosten stroomverbruik deze maand totaal"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.stroomprijs_per_maand_t1') | float %}
{% set b = states('sensor.stroomprijs_per_maand_t2') | float %}
{{ (( a + b )) | round(2) }}
stroomverbruik_per_maand_totaal:
friendly_name: "Stroomverbruik deze maand Totaal"
unit_of_measurement: "kWh"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.elektraverbruik_maand_tarief1') | float %}
{% set b = states('sensor.elektraverbruik_maand_tarief2') | float %}
{{ (a + b) | round(3) }}
prijs_per_maand_totaal:
friendly_name: "Kosten stroom en gasverbruik deze maand totaal"
unit_of_measurement: "EUR"
icon_template: "mdi:currency-eur"
value_template: >-
{% set a = states('sensor.stroomprijs_per_maand_totaal') | float %}
{% set b = states('sensor.gasprijs_per_maand') | float %}
{{ (( a + b )) | round(2) }}
Als je de code erin geplakt hebt, sla je configuration.yaml op.
Ga nu weer terug naar Home Assistant en laat Home Assistant opnieuw starten om de nieuwe entiteiten te activeren.
Zodra Home Assistant weer gestart is kun je de nieuwe entiteiten op je dashboard plaatsen en heb je inzicht in je dagelijks, wekelijks, maandelijks, kwartaal en jaar verbruik!
Ik hoop dat dit duidelijk genoeg is!
Mocht je vragen hebben, laat dan een reactie achter of stuur een mail naar info@icttipsandtricks.nl en ik probeer je te helpen.
Alles gedaan zoals hierboven beschreven, maar krijg continu foutmeldingen. Invalid config for ’template’ at configuration.yaml, line 107: ‘-stroomprijs_per_jaar_t1′ is an invalid option for ’template, en dit gaat zo door voor elke configuratie.