Tasmota voor de DSMR-logger32

Gepost door Davy
[ 1,402 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:

  1. Druk de FLASH knop in en houd deze ingedrukt
  2. Druk op de RESET knop
  3. Laat de RESET knop los
  4. 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
 

This entry was posted in DSMR-logger, ESP32, Hardware, Tasmota, WiFi. Bookmark the permalink.