Gepost door Davy
[ 1,483 keer bekeken / views ]
Omdat ik thuis reeds heel wat esp8266 modules draaien heb met Tasmota, wenste ik de DSMR-logger32 ook te flashen met Tasmota.
Het was een gans proces, maar uiteindelijk is het toch gelukt.
Aangezien ik zeker geen specialist ben zijn er ongetwijfeld zaken die anders/beter/sneller kunnen, maar om andere geïnteresseerden te helpen volgt hieronder de methode die ik toegepast heb.
Tasmota build compilen met scripting settings actief
De configuratie van de slimme meter in Tasmota gebeurt middels scripting.
Omdat scripting niet standaard in de precompiled Tasmota binaries actief is, dien je zelf een Tasmota binary te compilen met scripting enabled.
Hierbij de referenties die ik hiervoor gebruikt heb :
https://tasmota.github.io/docs/Compile-your-build/
https://tasmota.github.io/docs/Smart-Meter-Interface/
https://tasmota.github.io/docs/P1-Smart-Meter/
Watchdog loskoppelen
Aangezien de watchdog (nog) niet gebruikt wordt koppel je deze los door de jumper op het boardje weg te halen.
Zorg dat je een Full Install voor Visual Studio Code hebt.
https://tasmota.github.io/docs/Visual-Studio-Code/#download-tasmota
Download and Install Visual Studio Code
Download Visual Studio Code (VSC) from
https://code.visualstudio.com/
Install PlatformIO Extension
Install the PlatformIO IDE extension in VSC.
Select View – Extensions and type PlatformIO in the search box.
Make sure to select the official PlatformIO.org PlatformIO IDE extension and select Install. Accept to install dependencies.
Download Tasmota 12.5.0
Opgepast ! In release 13.2.0.1 is scripting niet beschikbaar, vermoedelijk wegens een bug.
Download daarom release 12.5.0 hier:
https://codeload.github.com/arendst/Tasmota/zip/refs/tags/v12.5.0
Unzip dit bestand en open de folder in Visual Studio Code
Instellingen
#ifndef USE_SCRIPT
#define USE_SCRIPT
#endif
Voeg volgende toe in bestand user_config_override.h in de tasmota folder. Doe dit helemaal onderaan dit bestand, maar voor de regel “#endif // _USER_CONFIG_OVERRIDE_H_
” :
#ifndef USE_SML_M
#define USE_SML_M
#endif
#ifdef USE_RULES
#undef USE_RULES
#endif
Indien gewenst kan je hierbij ook meteen je wifi- en mqtt settings meegeven, nog steeds voor de regel “#endif // _USER_CONFIG_OVERRIDE_H_
” :
// -- Setup your own Wifi settings ---------------
#undef STA_SSID1
#define STA_SSID1 "ssid" // [Ssid1] Wifi SSID
#undef STA_PASS1
#define STA_PASS1 "paswoord" // [Password1] Wifi password
// -- Setup your own MQTT settings ---------------
#undef MQTT_HOST
#define MQTT_HOST "mqttserver" // [MqttHost]
#undef MQTT_PORT
#define MQTT_PORT 1883 // [MqttPort] MQTT port (10123 on CloudMQTT)
#undef MQTT_USER
#define MQTT_USER "mqttuser" // [MqttUser] Optional user
#undef MQTT_PASS
#define MQTT_PASS "mqttpaswoord" // [MqttPassword] Optional password
In bestand platformio_override.ini
: activeer het tasmota32 build environment :
- Plaats ; (punt-comma) voor de regel met
tasmota
- Verwijder ; (punt-comma) voor de regel met
tasmota32
; *** Build/upload environment
default_envs =
; *** Uncomment the line(s) below to select version(s)
; tasmota
; tasmota-debug
; tasmota-minimal
; tasmota-lite
; tasmota-knx
; tasmota-sensors
; tasmota-display
; tasmota-zbbridge
; tasmota-ir
tasmota32
; tasmota32-zbbrdgpro
Firmware builden en uploaden :
Sluit de FTDI-programmer aan op de Program-header van de DSMR-logger32 (RX met TX verbinden en TX met RX)
Als de FTDI programmer niet zelf de DSMR-logger32 in flash-mode kan zetten, voer dan de volgende vier handelingen uit:
- Druk de FLASH knop in en houd deze ingedrukt
- Druk op de RESET knop
- Laat de RESET knop los
- Laat de FLASH knop los
De DSMR-logger32 staat nu in Flash-mode en blijft in die mode tot er gegevens vanaf de programmer naar de DSMR-logger32 zijn overgebracht óf tot je nog een keer op de RESET knop drukt.
Klik vervolgens in Visual Studio Code op de knop Build, Erase and Upload:
Configuratie Tasmota
Als alles goed is heb je nu een DSMR-logger32 met de Tasmota firmware.
Om het boardje nu te starten gebruik je best een externe 5V voeding. De usb-poort van een pc levert niet voldoende stroom om het boardje te voeden.
Indien de wifi settings niet meegegeven zijn met de build zal de firmware een ssid ‘Tasmota-nnnnn
‘ in de lucht brengen. Hiermee kan je verbinden en de gegevens van je ssid ingeven en het boardje laten verbinden met je wifi netwerk.
Vervolgens open je de webinterface, klikt op ‘Consoles’ en ‘Edit Script’, en geef je een script in dat werkt voor je meter.
Ikzelf heb een Siconia T211 meter die ook de tellers van de gas en het water weergeeft. Hiervoor kan je het script hieronder gebruiken. Indien je een andere meter hebt kan je nakijken of er reeds een script voor beschikbaar is op
https://tasmota.github.io/docs/Smart-Meter-Interface/#smart-meter-descriptors
Zoniet kan je zelf een script maken voor je slimme meter, zie
https://tasmota.github.io/docs/Smart-Meter-Interface/#general-description voor de uitleg.
Plak het script in het daartoe bestemde veld, en vink ‘Script enable
‘ aan.
Script voor Siconia T211 :
>D
>B
->sensor53 r
>M 1
+1,18,o,0,115200,meter
; script voor Siconia T211 meter met gas en water output
; zie https://tasmota.github.io/docs/Smart-Meter-Interface/
; test met volgende in console :
; sensor53 d1
;<M>,<decoder>@<scale><offs>,<label>,<UoM>,<var>,<precision>
;======== Elektriciteit =========
1,1-0:1.7.0(@0.001,actueel_verbruik,W,actueel_verbruik,0
1,1-0:1.8.1(@1,Total_in_day,kWh,Total_in_day,4
1,1-0:1.8.2(@1,Total_in_night,kWh,Total_in_night,4
;=== calc sum totalday en totalnight
1,=m2+3@1,Total_in_sum,kWh,Total_in_sum,4
; hieronder de data vanuit de 2e haakjes uitlezen
; gebruik (@(1:1
1,1-0:1.6.0(@(1:1,piek_huidige maand,kW,Peak,3
1,1-0:21.7.0(@0.001,Watt_L1,W,Watt_L1,0
1,1-0:41.7.0(@0.001,Watt_L2,W,Watt_L2,0
1,1-0:61.7.0(@0.001,Watt_L3,W,Watt_L3,0
;======== Gas =========
1,0-1:24.2.3(@(1:1,Gas,m³,Gas,3
1,=m9*#116/#10@1,Gas_kWh,kWh,Gas_kWh,3
;======== Water =========
1,0-2:24.2.1(@(1:1,Water,m³,Water,3
;#
De meter geeft nog meer data weer dan hierboven gescript. Welke data, kan je nakijken door het commando ‘sensor53 d1
‘ in te geven in ‘Consoles’ – ‘Console’
Schakel weer uit met ‘sensor53 d0
‘
Hier als referentie de telegrammen die mijn meter doorstuurt :
21:04:27.137 : /FLU5\nnnnnnnnn_A
21:04:27.138 : 0-0:96.1.4(50217)
21:04:27.140 : 0-0:96.1.1(3153414731234567893123456789)
21:04:27.141 : 0-0:1.0.0(231119210425W)
21:04:27.142 : 1-0:1.8.1(000365.165*kWh)
21:04:27.144 : 1-0:1.8.2(000397.663*kWh)
21:04:27.145 : 1-0:2.8.1(000000.000*kWh)
21:04:27.146 : 1-0:2.8.2(000000.004*kWh)
21:04:27.148 : 0-0:96.14.0(0002)
21:04:27.149 : 1-0:1.4.0(01.131*kW)
21:04:27.151 : 1-0:1.6.0(231105130000W)(06.025*kW)
21:04:27.153 : 0-0:98.1.0(2)(1-0:1.6.0)(1-0:1.6.0)(230901000000S)(632525252525W)(0(00.263*kW)
21:04:27.154 : 1-0:61.7.0(00.072*kW)
21:04:27.156 : 1-0:22.7.0(00.000*kW)
21:04:27.157 : 1-0:42.7.0(00.000*kW)
21:04:27.158 : 1-0:62.7.0(00.000*kW)
21:04:27.187 : 1-0:32.7.0(224.4*V)
21:04:27.189 : 1-0:52.7.0(238.6*V)
21:04:27.190 : 1-0:72.7.0(236.8*V)
21:04:27.191 : 1-0:31.7.0(015.51*A)
21:04:27.193 : 1-0:51.7.0(001.45*A)
21:04:27.194 : 1-0:71.7.0(000.42*A)
21:04:27.195 : 0-0:96.3.10(1)
21:04:27.197 : 0-0:17.0.0(999.9*kW)
21:04:27.198 : 1-0:31.4.0(999*A)
21:04:27.199 : 0-0:96.13.0()
21:04:27.200 : 0-1:24.1.0(003)
21:04:27.202 : 0-1:96.1.1(37464C4F32313233303636343737)
21:04:27.203 : 0-1:24.4.0(1)
21:04:27.205 : 0-1:24.2.3(231119210134W)(00091.237*m3)
21:04:27.206 : 0-2:24.1.0(007)
21:04:27.208 : 0-2:96.1.1(3853455430303030333235343833)
21:04:27.209 : 0-2:24.2.1(231119210146W)(00006.875*m3)
21:04:27.210 : !8E8E
Extra commando’s
Geef volgende commando’s in in ‘Consoles’ – ‘Console’ (lijn per lijn met telkens Enter) :
SerialDelimiter 10
SerialSend 1
Standaard stuurt Tasmota elke 300 sec een mqtt boodschap uit met de meterstanden. Indien je dit sneller wenst kan je volgend commando gebruiken om bv. elke 10 sec een mqtt uit te sturen :
Teleperiod 10
Watchdog (her)activeren
Voor het flashen met Tasmota werd de watchdog gedeactiveerd om geen reboots te krijgen tijdens het flashen.
Indien gewenst kan deze geheractiveerd worden op volgende manier:
Stel gpio4 in als Led 1 (Configuration – Configure Module )
Voeg deze lijnen toe onderaan het script (webinterface, klik op ‘Consoles’ en ‘Edit Script’):
>S
-> ledpower 1
-> delay 500
-> ledpower 0
Plaats nu in de DSMR-logger32 de jumper terug op de Watchdog pinnen
MQTT config
Om mqtt te configureren klik je op Configuration – Configure MQTT
Bij mij staan ze als volgt :
Hierdoor worden de boodschappen uitgestuurd op topic “esp-elekmeter/tele/SENSOR”
Dit zijn de boodschappen met de meterwaarden :
{
"Time":"2023-11-19T20:47:41",
"meter":{
"actueel_verbruik":334,
"Total_in_day":365.165,
"Total_in_night":396.765,
"Total_in_sum":761.929,
"Peak":6.025,
"Watt_L1":5,
"Watt_L2":262,
"Watt_L3":65,
"Gas":91.237,
"Gas_kWh":1058.349,
"Water":6.874
}
}
Home Assistant config
Hieronder volgen de sensors die ik in Home Assistant geconfigureerd heb voor de data die via MQTT verzonden wordt door de DSMR-logger32.
Omdat regelmatig onrealistische waarden meegestuurd worden, zit een controle op de binnengekomen waarden. Deze worden bij ontvangst vergeleken met een Helper input_number
die de laatste correcte waarde van de sensor bevat. Indien de ontvangen waarde lager is dan de controlewaarde, of teveel hoger is, wordt de vorige sensorwaarde hernomen.
Helpers :
De waarden van de helpers worden elke minuut bijgewerkt met de volgende automation:
Volledige automation in yaml
alias: Set meters_checkvalue with current meter values
description: >-
gas water kwh helpers aanvullen met huidige meterstanden ter controle van
nieuw e waarden
trigger:
- platform: time_pattern
seconds: "1"
condition: []
action:
- service: input_number.set_value
data_template:
value: "{{ states('sensor.gas') |float }}"
target:
entity_id: input_number.gas_checkvalue
- service: input_number.set_value
data_template:
value: "{{ states('sensor.water') |float }}"
target:
entity_id: input_number.water_checkvalue
- service: input_number.set_value
data_template:
value: "{{ states('sensor.elek_total_in_sum') |float }}"
target:
entity_id: input_number.elek_checkvalue
mode: single
Home Assistant sensors :
##################################
# uitbreiding configuratie.yaml #
##################################
# koppeling met de DSMR-logger32 #
# flashed met Tasmota #
# via MQTT broker #
##################################
# query influxdb to delete :
# USE "homeassistant" ; SELECT * FROM "kWh" WHERE "entity_id"='gas' AND time > '2023-11-09T05:50:00Z' AND time < '2023-11-09T15:50:00Z'
# USE "homeassistant" ; DELETE FROM "kWh" WHERE "entity_id"='gas' AND time > '2023-11-09T05:50:00Z' AND time < '2023-11-09T15:50:00Z'
mqtt:
sensor:
- state_topic: "esp-elekmeter/tele/SENSOR"
name: "Elek Actueel verbruik"
unit_of_measurement: "W"
#value_template: "{{ value_json.meter.actueel_verbruik | round(0) }}"
value_template:
"{% if (value_json.meter.actueel_verbruik | float(0)) == '0' or (value_json.meter.actueel_verbruik | float(0)) > 8000 %}
states('sensor.elek_actueel_verbruik') | float(0) }}
{% else %}
{{ (value_json.meter.actueel_verbruik | float(0) ) | round(3) }}
{% endif %}"
availability_topic: "esp-elekmeter/tele/LWT"
payload_available: "Online"
payload_not_available: "Offline"
- state_topic: "esp-elekmeter/tele/SENSOR"
name: "Elek Total_in_sum"
state_class: "total_increasing"
device_class: "energy"
unit_of_measurement: "kWh"
#value_template: "{{ value_json.meter.Total_in_night | round(3) }}"
value_template: >-
{% if ( (value_json.meter.Total_in_sum | float(0)) | round(3) < states('input_number.elek_checkvalue') | float() + 100 )
and ( (value_json.meter.Total_in_sum | float(0)) | round(3) >= states('input_number.elek_checkvalue') | float() ) %}
{{ (value_json.meter.Total_in_sum | float(0)) | round(3) }}
{% else %}
{{ states('sensor.elek_total_in_sum') | float(0) }}
{% endif %}
availability_topic: "esp-elekmeter/tele/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
- state_topic: "esp-elekmeter/tele/SENSOR"
name: "Elek Piek huidige maand"
device_class: "energy"
unit_of_measurement: "kWh"
#value_template: "{{ value_json.meter.Peak | round(3) }}"
value_template: >-
{% if ( (value_json.meter.Peak | float(0) | round(3) ) == '0')
or ( (value_json.meter.Peak | float(0) | round(3) ) > 11 ) %}
{{ states('sensor.elek_piek_huidige_maand') | float(0) | round(3) }}
{% else %}
{{ (value_json.meter.Peak | float(0)) | round(3) }}
{% endif %}
availability_topic: "esp-elekmeter/tele/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
- state_topic: "esp-elekmeter/tele/SENSOR"
name: "Elek Watt_L1"
device_class: "energy"
unit_of_measurement: "W"
#value_template: "{{ value_json.meter.Watt_L1 | round(0) }}"
value_template:
"{% if (value_json.meter.Watt_L1 | float(0)) == '0' or (value_json.meter.Watt_L1 | float(0)) > 8000 %}
states('sensor.elek_watt_l1') | float(0) }}
{% else %}
{{ (value_json.meter.Watt_L1 | float(0) ) | round(3) }}
{% endif %}"
availability_topic: "esp-elekmeter/tele/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
- state_topic: "esp-elekmeter/tele/SENSOR"
name: "Elek Watt_L2"
device_class: "energy"
unit_of_measurement: "W"
#value_template: "{{ value_json.meter.Watt_L2 | round(0) }}"
value_template:
"{% if (value_json.meter.Watt_L2 | float(0)) == '0' or (value_json.meter.Watt_L2 | float(0)) > 8000%}
states('sensor.elek_watt_l2') | float(0) }}
{% else %}
{{ (value_json.meter.Watt_L2 | float(0) ) | round(3) }}
{% endif %}"
availability_topic: "esp-elekmeter/tele/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
- state_topic: "esp-elekmeter/tele/SENSOR"
name: "Elek Watt_L3"
device_class: "energy"
unit_of_measurement: "W"
#value_template: "{{ value_json.meter.Watt_L3 | round(0) }}"
value_template:
"{% if (value_json.meter.Watt_L3 | float(0)) == '0' or (value_json.meter.Watt_L3 | float(0)) > 8000%}
states('sensor.elek_watt_l3') | float(0) }}
{% else %}
{{ (value_json.meter.Watt_L3 | float(0) ) | round(3) }}
{% endif %}"
availability_topic: "esp-elekmeter/tele/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
- state_topic: "esp-elekmeter/tele/SENSOR"
name: "Gas"
device_class: "energy"
unit_of_measurement: "kWh"
state_class: "total_increasing"
# omrekening m³ naar kWh gebeurt dmv DSMR-logger32 script
# m³ * 11.6 = kWh (hoogcalorisch gas in België)
# kijk op de elektriciteitsfactuur voor de juiste waarde
value_template: >-
{% if ( (value_json.meter.Gas_kWh | float(0)) | round(3) < states('input_number.gas_checkvalue') | float() + 50 )
and ( (value_json.meter.Gas_kWh | float(0)) | round(3) >= states('input_number.gas_checkvalue') | float() ) %}
{{ (value_json.meter.Gas_kWh | float(0)) | round(3) }}
{% else %}
{{ states('sensor.gas') | float(0) }}
{% endif %}
availability_topic: "esp-elekmeter/tele/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
##### GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST
# and '(value_json.meter.Gas_kWh | float(0))' > states('input_number.gas_checkvalue')
# ( '(value_json.meter.Gas_kWh | float(0))' < states('input_number.gas_checkvalue') + '100' ) and
# '(value_json.meter.Gas_kWh | float(0))' > "states('input_number.gas_checkvalue')"
# ( (value_json.meter.Gas_kWh | float()) > states('input_number.gas_checkvalue') | float() ) and
- state_topic: "esp-elekmeter/tele/SENSOR"
name: "Gastest"
device_class: "energy"
unit_of_measurement: "kWh"
state_class: "total_increasing"
# value template formule : als (mqtt waarde < checkwaarde + 100) en (mqtt waarde > checkwaarde) => mqtt waarde
# anders (herneem opgeslagen waarde uit de gas sensor)
value_template: >-
{% if ( (value_json.meter.Gas_kWh | float(0)) | round(3) < states('input_number.gas_checkvalue') | float() + 100 )
and ( (value_json.meter.Gas_kWh | float(0)) | round(3) >= states('input_number.gas_checkvalue') | float() ) %}
{{ (value_json.meter.Gas_kWh | float(0)) | round(3) }}
{% else %}
{{ states('sensor.gastest') | float(0) }}
{% endif %}
availability_topic: "esp-elekmeter/tele/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
##### GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST
- state_topic: "esp-elekmeter/tele/SENSOR"
name: "Water"
state_class: "total_increasing"
device_class: "water"
unit_of_measurement: "m³"
icon: mdi:water
value_template: >-
{% if ( (value_json.meter.Water | float(0)) | round(3) < states('input_number.water_checkvalue') | float() + 1 )
and ( (value_json.meter.Water | float(0)) | round(3) >= states('input_number.water_checkvalue') | float() ) %}
{{ (value_json.meter.Water | float(0)) | round(3) }}
{% else %}
{{ states('sensor.water') | float(0) }}
{% endif %}
availability_topic: "esp-elekmeter/tele/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
- state_topic: "esp-elekmeter/tele/SENSOR"
name: "Water liter"
state_class: "total_increasing"
device_class: "water"
unit_of_measurement: "l"
icon: mdi:water
value_template: >-
{% if ( (value_json.meter.Water | float(0)) | round(3) * 1000 < (states('input_number.water_checkvalue') | float() * 1000 )+ 100 )
and ( (value_json.meter.Water | float(0)) | round(3) * 1000 >= states('input_number.water_checkvalue') | float() * 1000 ) %}
{{ ((value_json.meter.Water | float(0)) | round(3) * 1000) | int }}
{% else %}
{{ (states('sensor.water_liter') | float(0)) | int }}
{% endif %}
availability_topic: "esp-elekmeter/tele/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
# gemiddelde wattage over 15min berekenen gebaseerd op realtime W meter uit digitale teller
# leest echter niet uit in influxdb
sensor:
- platform: filter
name: "Elek Watt 15m gemiddeld"
entity_id: sensor.elek_actueel_verbruik
filters:
- filter: time_simple_moving_average
window_size: "00:15"
# filters van utility meters om waarden die uit de band springen weg te filteren
# werken helaas niet
- platform: filter
name: "elek total in sum filtered"
entity_id: sensor.elek_total_in_sum
filters:
- filter: outlier
window_size: 4
radius: 0.01
- platform: filter
name: "gas filtered"
entity_id: sensor.gas
filters:
- filter: outlier
window_size: 4
radius: 0.01
- platform: filter
name: "water filtered"
entity_id: sensor.water
filters:
- filter: outlier
window_size: 4
radius: 0.01
template:
- sensor:
# gemiddelde wattage over 15min uitleesbaar in influxdb:
- name: "Elek watt (gem 15m)"
unique_id: elek watt gem 15m
unit_of_measurement: "W"
state: "{{ states('sensor.elek_watt_15m_gemiddeld') }}"
device_class: "energy"
- name: "water per 15m in l"
unique_id: water per 15m in l
unit_of_measurement: "l"
state: "{{ states('sensor.water_quarter_hourly') |float * 1000 }}"
device_class: "energy"
# de sensors die in het Energy onderdeel van Haos uitgelezen worden staan hierboven.
# deze zijn configured via http://haos.net.priv:8123/config/energy
# Hieronder aparte sensoren om het verbruik per uur/dag/week/ te berekenen zodat deze in
# bv. InfluxDB uitgelezen kunnen worden.
# zie https://www.home-assistant.io/integrations/utility_meter/
utility_meter:
water_consumption_yearly:
name: water yearly
source: sensor.water
cycle: yearly
water_consumption_monthly:
name: water monthly
source: sensor.water
cycle: monthly
water_consumption_weekly:
name: water weekly
source: sensor.water
cycle: weekly
water_consumption_daily:
name: water daily
source: sensor.water
cycle: daily
water_consumption_hourly:
name: water hourly
source: sensor.water
cycle: hourly
water_consumption_quarter_hourly:
name: water quarter-hourly
source: sensor.water
cycle: quarter-hourly
gas_consumption_yearly:
name: gas yearly
source: sensor.gas
cycle: yearly
gas_consumption_monthly:
name: gas monthly
source: sensor.gas
cycle: monthly
gas_consumption_weekly:
name: gas weekly
source: sensor.gas
cycle: weekly
gas_consumption_daily:
name: gas daily
source: sensor.gas
gas_consumption_hourly:
name: gas hourly
source: sensor.gas
cycle: hourly
gas_consumption_quarter_hourly:
name: gas quarter-hourly
source: sensor.gas
cycle: quarter-hourly
elek_consumption_yearly:
name: elek yearly
source: sensor.elek_total_in_sum
cycle: yearly
elek_consumption_monthly:
name: elek monthly
source: sensor.elek_total_in_sum
cycle: monthly
elek_consumption_weekly:
name: elek weekly
source: sensor.elek_total_in_sum
cycle: weekly
elek_consumption_daily:
name: elek daily
source: sensor.elek_total_in_sum
cycle: daily
elek_consumption_hourly:
name: elek hourly
source: sensor.elek_total_in_sum
cycle: hourly
elek_consumption_quarter_hourly:
name: elek quarter-hourly
source: sensor.elek_total_in_sum
cycle: quarter-hourly