Just FYI
I was looking for a way to visualize my gasflow.
Energy dashboard is one option, but if you want your data to i.e. InfluxDB and create some graphs with Grafana, this was not an option.
So here my config. It’s a single yaml-file in folder packages, so everything is nicely tied together.
My comments are in Dutch, so use google translate to understand the gibberish
template:
- sensor:
# ----------------------------------------------------------------------
# P1 meter: meterstand in kWh
# ----------------------------------------------------------------------
# Legacy sensor.
# Rekent de m3 om naar kWh
# Beter: eerst een virtuele sensor definieren, en daar de omrekening doen. Zie ook hieronder
- name: "P1 meter Total Gas kWh"
unique_id: "sensor.p1_meter_total_gas_kwh"
icon: mdi:gas-cylinder
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
state: >
{% if ( states('sensor.p1_meter_total_gas') not in ['unknown', 'unavailable', 'None'] ) %}
{% set gasm3 = states('sensor.p1_meter_total_gas') | float %}
{{ (gasm3 * 10.2346) | round(3, default=0) }}
{% else %}
{{ "0" | float }}
{% endif %}
# ----------------------------------------------------------------------
# gasmeter: meterstand in m3
# ----------------------------------------------------------------------
# Virtuele sensor:
# Om continuiteit te garanderen van de sensor: definieer een eigen virtuele sensor op basis van een fysieke sensor.
# Als de fysieke sensor ooit vervangen moet worden, kan je de nieuwe sensor koppelen aan dezelfde virtuele sensor,
# zo blijven de tellingen doorlopen en blijf je long-term statistieken behouden.
# Verder kan je zo ook garanderen dat er altijd een waarde is ("0"), zelfs als de fysieke sensor niet beschikbaar is.
- name: "gasmeter Total Gas"
unique_id: "sensor.gasmeter_total_gas"
icon: mdi:gas-cylinder
unit_of_measurement: "m3"
device_class: energy
state_class: total_increasing
state: >
{% if ( states('sensor.p1_meter_total_gas') not in ['unknown', 'unavailable', 'None'] ) %}
{{ states('sensor.p1_meter_total_gas') | float | round(3, default=0) }}
{% else %}
{{ "0" | float }}
{% endif %}
availability: >
{% if ( states('sensor.p1_meter_total_gas') not in ['unknown', 'unavailable', 'None'] ) %}
{{ true }}
{% else %}
{{ states('sensor.p1_meter_total_gas') }}
{% endif %}
# ----------------------------------------------------------------------
# gasmeter: meterstand, omgerekend naar kWh
# ----------------------------------------------------------------------
- name: "gasmeter Total Gas kWh"
unique_id: "sensor.gasmeter_total_gas_kwh"
icon: mdi:gas-cylinder
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
state: >
{{ (states('sensor.gasmeter_total_gas') | float * 10.2346) | round(3, default=0) }}
# ----------------------------------------------------------------------
# gasmeter: meterstand, omgerekend naar Wh
# ----------------------------------------------------------------------
- name: "gasmeter Total Gas Wh"
unique_id: "sensor.gasmeter_total_gas_wh"
icon: mdi:gas-cylinder
unit_of_measurement: "Wh"
device_class: energy
state_class: total_increasing
state: >
{{ (states('sensor.gasmeter_total_gas') | float * 10.2346 * 1000.0) | round(0, default=0) }}
sensor:
# ----------------------------------------------------------------------
# gasmeter: momentaan gasverbruik in m3/h
# ----------------------------------------------------------------------
- name: "gasmeter Total Gas Flow"
platform: derivative
source: sensor.gasmeter_total_gas
unit_time: h
time_window: "00:10:00" # we look at the change over the last half hour
# ----------------------------------------------------------------------
# gasmeter: momentaan gasverbruik in kW
# ----------------------------------------------------------------------
- name: "gasmeter Total Gas Flow kW"
platform: derivative
source: sensor.gasmeter_total_gas_kwh
unit_time: h
time_window: "00:10:00"
# ----------------------------------------------------------------------
# gasmeter: momentaan gasverbruik in W
# ----------------------------------------------------------------------
- name: "gasmeter Total Gas Flow W"
platform: derivative
source: sensor.gasmeter_total_gas_wh
unit_time: h
time_window: "00:10:00"
Finally, this results in
- green line: my gasflow, based on a derivative of my gasmeter (m3) and transformed to W
- orange: my gasboiler modulation
As you can see: around 10:15, I turned on my heating. Gasboiler started a 100% which means an equivalent of instant power consumption of +/- 30.000 Watt. This is conform the documentation of my boiler ( Buderus Logamax plus GB192iT40S 30kW)
Any kind of comment is appreciated.
Kind regards
Bart Plessers