Neem bvb dit: Shelly EM (of 3EM mocht je meer fases hebben)
Deze toestelletjes tonen, buiten het huidige verbruik ook de hoeveelheid kW verbruikt sinds je het toestel bent beginnen gebruiken. maw, die hebben een teller die alleen maar omhoog gaat.
Zo ben je 100% zeker dat je elk kwartier (xx:14:59:99, ...) de juiste waarde hebt. Daar hoef je niets voor te doen. Zoals hoger al aangegeven gebruik je hiervoor de utility_meter: van HA.
Voor de volledigheid, ik haal deze kwh gegevens uit mijn flukso, niet via de Shelly. Maar het principe is hetzelfde. Elke entity die een kWh meter is (strictly increasing), kan je gebruiken.
Code: Selecteer alles
sensor:
- platform: template
sensors:
fluvius_verbruik_energy_kwartier_piek:
value_template: "{{ states('sensor.fluvius_verbruik_energy_kwartier') | float(default=0) * 4 }}"
unit_of_measurement: "kWh"
device_class: energy
icon_template: mdi:calculator
friendly_name: "Huidige kwartier piek"
Code: Selecteer alles
utility_meter:
fluvius_verbruik_energy_kwartier:
source: sensor.fluvius_meterstand_gebruikt
cycle: quarter-hourly
Ik heb dan nog het volgende toegevoegd om telkens de maandpiek te bewaren:
Code: Selecteer alles
input_number:
piek_afname:
name: Piek Fluvius afname
min: 0
max: 10.0
step: 0.001
mode: box
unit_of_measurement: "kWh"
piek_afname_01:
name: Piek afname januari
min: 0
max: 10.0
step: 0.001
mode: box
unit_of_measurement: "kWh"
piek_afname_02:
name: Piek afname februari
min: 0
max: 10.0
step: 0.001
mode: box
unit_of_measurement: "kWh"
# herhaal tot 12
piek_afname_12:
name: Piek afname december
min: 0
max: 10.0
step: 0.001
mode: box
unit_of_measurement: "kWh"
En de volgende automations om die input_numbers te vullen (rolling, dus na 1 jaar overschrijf je de oudste)
Code: Selecteer alles
automation:
- alias: Piek15m hoogste van deze maand
mode: parallel
variables:
maand: '{{ now().strftime("%m") }}'
piek: '{{ states("sensor.fluvius_verbruik_energy_kwartier_piek") | float(0)}}'
trigger:
- platform: state
entity_id: sensor.fluvius_verbruik_energy_kwartier_piek
condition:
- condition: template
value_template: >
{{ piek > states("input_number.piek_afname_"~maand) | float(0) }}
action:
- service: input_number.set_value
target:
entity_id: input_number.piek_afname_{{ maand }}
data:
value: '{{ piek }}'
- alias: Maximum piek nieuwe maand op 0
variables:
maand: '{{ now().strftime("%m") }}'
trigger:
- platform: template
value_template: '{{ (as_timestamp(now()))|timestamp_custom(''%d'', true) | int(0) == 1 }}'
action:
- service: input_number.set_value
target:
entity_id: input_number.piek_afname_{{ maand }}
data:
value: 0.1
en nog een stukje om het te visualiseren (very basic) (er staan ook enkele sensoren in die ik hierboven niet beschrijf, en niet relevant zijn voor dit voorbeeld)
Code: Selecteer alles
cards:
- type: entities
title: Verbruik
show_header_toggle: false
entities:
- entity: sensor.fluvius_verbruik_energy_kwartier_piek
type: custom:multiple-entity-row
name: Piek 15m
format: precision1
entities:
- entity: sensor.fluvius_netto
name: Netto
format: precision0
- entity: sensor.home_verbruik
name: Verbruik
format: precision0
- entity: sensor.flukso_pv_vermogen
name: PV
format: precision0
hide_if: 0
- entity: sensor.fluvius_verbruik
- entity: sensor.fluvius_levering
- type: divider
- entity: sensor.gemiddelde_piek_afname
type: custom:multiple-entity-row
format: precision1
- type: divider
- entity: input_number.piek_afname_01
type: custom:multiple-entity-row
format: precision1
- entity: input_number.piek_afname_02
type: custom:multiple-entity-row
format: precision1
- entity: input_number.piek_afname_03
type: custom:multiple-entity-row
format: precision1
- entity: input_number.piek_afname_04
type: custom:multiple-entity-row
format: precision1
- entity: input_number.piek_afname_05
type: custom:multiple-entity-row
format: precision1
- entity: input_number.piek_afname_06
type: custom:multiple-entity-row
format: precision1
- entity: input_number.piek_afname_07
type: custom:multiple-entity-row
format: precision1
- entity: input_number.piek_afname_08
type: custom:multiple-entity-row
format: precision1
- entity: input_number.piek_afname_09
type: custom:multiple-entity-row
format: precision1
- entity: input_number.piek_afname_10
type: custom:multiple-entity-row
format: precision1
- entity: input_number.piek_afname_11
type: custom:multiple-entity-row
format: precision1
- entity: input_number.piek_afname_12
type: custom:multiple-entity-row
format: precision1
En uiteindelijk gebruik ik de huidige kwartierpiek om beslissingen te nemen. Mag de wasmachine starten, mag de warmtepomp ingeschakeld worden, ...
I'm a bilingual. I'm a bilingual illiterate. I can't read in two languages.