{"id":7898,"date":"2023-11-21T11:32:35","date_gmt":"2023-11-21T10:32:35","guid":{"rendered":"https:\/\/willem.aandewiel.nl\/?p=7898"},"modified":"2023-11-21T11:58:56","modified_gmt":"2023-11-21T10:58:56","slug":"tasmota-voor-de-dsmr-logger32","status":"publish","type":"post","link":"https:\/\/willem.aandewiel.nl\/index.php\/2023\/11\/21\/tasmota-voor-de-dsmr-logger32\/","title":{"rendered":"Tasmota voor de DSMR-logger32"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Gepost door Davy<br>[ 3,597 keer bekeken \/ views ]<\/h3>\n\n\n\n<p>Omdat ik thuis reeds heel wat esp8266 modules draaien heb met Tasmota, wenste ik de DSMR-logger32 ook te flashen met Tasmota.<\/p>\n\n\n\n<p>Het was een gans proces, maar uiteindelijk is het toch gelukt.<\/p>\n\n\n\n<p>Aangezien ik zeker geen specialist ben zijn er ongetwijfeld zaken die anders\/beter\/sneller kunnen, maar om andere ge\u00efnteresseerden te helpen volgt hieronder de methode die ik toegepast heb.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Tasmota build compilen met scripting settings actief<\/strong><\/h2>\n\n\n\n<p>De configuratie van de slimme meter in Tasmota gebeurt middels scripting.<\/p>\n\n\n\n<p>Omdat scripting niet standaard in de precompiled Tasmota binaries actief is, dien je zelf een Tasmota binary te compilen met scripting enabled.<\/p>\n\n\n\n<p>Hierbij de referenties die ik hiervoor gebruikt heb :&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/tasmota.github.io\/docs\/Compile-your-build\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/tasmota.github.io\/docs\/Compile<\/a><a href=\"https:\/\/tasmota.github.io\/docs\/Compile-your-build\/\">-your-build\/<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/tasmota.github.io\/docs\/Smart-Meter-Interface\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/tasmota.github.io\/docs\/Smart-Meter-Interface\/<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/tasmota.github.io\/docs\/P1-Smart-Meter\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/tasmota.github.io\/docs\/P1-Smart-Meter\/<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Watchdog loskoppelen<\/strong><\/h2>\n\n\n\n<p>Aangezien de watchdog (nog) niet gebruikt wordt koppel je deze los door de jumper op het boardje weg te halen.<\/p>\n\n\n\n<p>Zorg dat je een <em>Full Install <\/em>voor Visual Studio Code hebt.<br><a href=\"https:\/\/tasmota.github.io\/docs\/Visual-Studio-Code\/#download-tasmota\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/tasmota.github.io\/docs\/Visual-Studio-Code\/#download-tasmota<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Download and Install Visual Studio Code<\/strong><\/h2>\n\n\n\n<p>Download Visual Studio Code (VSC) from\u00a0<br>\u00a0<a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/code.visualstudio.com\/<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Install PlatformIO Extension<\/strong><\/h2>\n\n\n\n<p>Install the&nbsp;PlatformIO IDE&nbsp;extension in VSC.<\/p>\n\n\n\n<p>Select&nbsp;View&nbsp;&#8211;&nbsp;Extensions&nbsp;and type PlatformIO in the search box.<\/p>\n\n\n\n<p>Make sure to select the official\u00a0<a href=\"http:\/\/platformio.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">PlatformIO.org<\/a>\u00a0PlatformIO IDE\u00a0extension and select\u00a0Install.\u00a0Accept to install dependencies.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Download Tasmota 12.5.0<\/strong><\/h2>\n\n\n\n<p>Opgepast ! In release 13.2.0.1 is scripting niet beschikbaar, vermoedelijk wegens een bug.<\/p>\n\n\n\n<p>Download daarom release 12.5.0 hier:<br>\u00a0<a href=\"https:\/\/codeload.github.com\/arendst\/Tasmota\/zip\/refs\/tags\/v12.5.0\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/codeload.github.com\/arendst\/Tasmota\/zip\/refs\/tags\/v12.5.0<\/a><\/p>\n\n\n\n<p>Unzip dit bestand en open de folder in Visual Studio Code<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Instellingen<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>#ifndef&nbsp;USE_SCRIPT<br>#define&nbsp;USE_SCRIPT<br>#endif<\/code><\/pre>\n\n\n\n<p>Voeg volgende toe in &nbsp;bestand&nbsp;user_config_override.h in de tasmota folder. Doe dit helemaal onderaan dit bestand, maar voor de regel &#8220;<code>#endif&nbsp;&nbsp;\/\/ _USER_CONFIG_OVERRIDE_H_<\/code>&#8221; :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#ifndef&nbsp;USE_SML_M<br>#define&nbsp;USE_SML_M<br>#endif<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#ifdef&nbsp;USE_RULES<br>#undef&nbsp;USE_RULES<br>#endif<\/code><\/pre>\n\n\n\n<p>Indien gewenst kan je hierbij ook meteen je wifi- en mqtt settings meegeven, nog steeds voor de regel &#8220;<code>#endif&nbsp;&nbsp;\/\/ _USER_CONFIG_OVERRIDE_H_<\/code>&#8221; :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ -- Setup your own Wifi settings &nbsp;---------------\n#undef&nbsp;&nbsp;STA_SSID1\n#define&nbsp;STA_SSID1 &nbsp; &nbsp;\"ssid\"&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; \/\/ &#091;Ssid1] Wifi SSID\n#undef&nbsp;&nbsp;STA_PASS1\n#define&nbsp;STA_PASS1 &nbsp; &nbsp;\"paswoord\"&nbsp;&nbsp; &nbsp; \/\/ &#091;Password1] Wifi password\n\/\/ -- Setup your own MQTT settings &nbsp;---------------\n#undef&nbsp;&nbsp;MQTT_HOST\n#define&nbsp;MQTT_HOST &nbsp; &nbsp;\"mqttserver\"&nbsp;  \/\/ &#091;MqttHost]\n#undef&nbsp;&nbsp;MQTT_PORT\n#define&nbsp;MQTT_PORT &nbsp; &nbsp;1883&nbsp; \/\/ &#091;MqttPort] MQTT port (10123 on CloudMQTT)\n#undef&nbsp;&nbsp;MQTT_USER\n#define&nbsp;MQTT_USER &nbsp; &nbsp;\"mqttuser\"&nbsp;&nbsp; &nbsp; \/\/ &#091;MqttUser] Optional user\n#undef&nbsp;&nbsp;MQTT_PASS\n#define&nbsp;MQTT_PASS &nbsp; &nbsp;\"mqttpaswoord\"&nbsp;\/\/ &#091;MqttPassword] Optional password<\/code><\/pre>\n\n\n\n<p>In bestand <code>platformio_override.ini<\/code> : activeer het tasmota32 build environment :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Plaats <strong>;<\/strong> (punt-comma) voor de regel met <code>tasmota<\/code><\/li>\n\n\n\n<li>Verwijder <strong>;<\/strong> (punt-comma) voor de regel met <code>tasmota32<\/code><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>; *** Build\/upload environment<br>default_envs&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=<br>; *** Uncomment the line(s) below to select version(s)<br>; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tasmota<br>; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tasmota-debug<br>; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tasmota-minimal<br>; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tasmota-lite<br>; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tasmota-knx<br>; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tasmota-sensors<br>; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tasmota-display<br>; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tasmota-zbbridge<br>; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tasmota-ir<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tasmota32<br>; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tasmota32-zbbrdgpro<\/code><\/pre>\n\n\n\n<p>Firmware builden en uploaden :&nbsp;<\/p>\n\n\n\n<p>Sluit de FTDI-programmer aan op de Program-header van de&nbsp;<em>DSMR-logger32<\/em>&nbsp;(RX met TX verbinden en TX met RX)<\/p>\n\n\n\n<p>Als de FTDI programmer niet zelf de DSMR-logger32 in flash-mode kan zetten, voer dan de volgende vier handelingen uit:<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\" start=\"1\">\n<li>Druk de&nbsp;<strong>FLASH<\/strong>&nbsp;knop in en houd deze ingedrukt<\/li>\n\n\n\n<li>Druk op de&nbsp;<strong>RESET<\/strong>&nbsp;knop<\/li>\n\n\n\n<li>Laat de&nbsp;<strong>RESET<\/strong>&nbsp;knop los<\/li>\n\n\n\n<li>Laat de&nbsp;<strong>FLASH<\/strong>&nbsp;knop los<\/li>\n<\/ol>\n\n\n\n<p>De&nbsp;<em>DSMR-logger32&nbsp;<\/em>staat nu in Flash-mode en blijft in die mode tot er gegevens vanaf de programmer naar de DSMR-logger32 zijn overgebracht \u00f3f tot je nog een keer op de&nbsp;<strong>RESET<\/strong>&nbsp;knop drukt.<\/p>\n\n\n\n<p>Klik vervolgens in Visual Studio Code op de knop&nbsp;<em>Build, Erase and Upload:<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_01.png\"><img loading=\"lazy\" decoding=\"async\" width=\"581\" height=\"151\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_01.png\" alt=\"\" class=\"wp-image-7905\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_01.png 581w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_01-300x78.png 300w\" sizes=\"auto, (max-width: 581px) 100vw, 581px\" \/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Configuratie Tasmota<\/strong><\/h2>\n\n\n\n<p>Als alles goed is heb je nu een DSMR-logger32 met de Tasmota firmware.<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>Indien de wifi settings niet meegegeven zijn met de build zal de firmware een ssid &#8216;<code>Tasmota-nnnnn<\/code>&#8216; in de lucht brengen. Hiermee kan je verbinden en de gegevens van je ssid ingeven en het boardje laten verbinden met je wifi netwerk.<\/p>\n\n\n\n<p>Vervolgens open je de&nbsp;<strong>webinterface, klikt op &#8216;Consoles&#8217; en &#8216;Edit Script&#8217;<\/strong>, en geef je een script in dat werkt voor je meter.<\/p>\n\n\n\n<p>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<br>\u00a0<a href=\"https:\/\/tasmota.github.io\/docs\/Smart-Meter-Interface\/#smart-meter-descriptors\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/tasmota.github.io\/docs\/Smart-Meter-Interface\/#smart-meter-descriptors<\/a><\/p>\n\n\n\n<p>Zoniet kan je zelf een script maken voor je slimme meter, zie<br><a href=\"https:\/\/tasmota.github.io\/docs\/Smart-Meter-Interface\/#general-description\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/tasmota.github.io\/docs\/Smart-Meter-Interface\/#general-description<\/a>\u00a0voor de uitleg.<\/p>\n\n\n\n<p>Plak het script in het daartoe bestemde veld, en vink &#8216;<code>Script enable<\/code>&#8216; aan.<\/p>\n\n\n\n<p><strong>Script voor Siconia T211 :<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>>D\u00a0\n>B\u00a0\u00a0\n->sensor53 r\n>M 1\n+1,18,o,0,115200,meter\n; script voor Siconia T211 meter met gas en water output\u00a0\n; zie\u00a0<a href=\"https:\/\/tasmota.github.io\/docs\/Smart-Meter-Interface\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/tasmota.github.io\/docs\/Smart-Meter-Interface\/<\/a>\n; test met volgende in console :\u00a0\n; sensor53 d1\n;&lt;M>,&lt;decoder>@&lt;scale>&lt;offs>,&lt;label>,&lt;UoM>,&lt;var>,&lt;precision>\n;======== Elektriciteit =========\n1,1-0:1.7.0(@0.001,actueel_verbruik,W,actueel_verbruik,0\n1,1-0:1.8.1(@1,Total_in_day,kWh,Total_in_day,4\n1,1-0:1.8.2(@1,Total_in_night,kWh,Total_in_night,4\n;=== calc sum totalday en totalnight\n1,=m2+3@1,Total_in_sum,kWh,Total_in_sum,4\n; hieronder de data vanuit de 2e haakjes uitlezen\n; gebruik (@(1:1\n1,1-0:1.6.0(@(1:1,piek_huidige maand,kW,Peak,3\n1,1-0:21.7.0(@0.001,Watt_L1,W,Watt_L1,0\n1,1-0:41.7.0(@0.001,Watt_L2,W,Watt_L2,0\n1,1-0:61.7.0(@0.001,Watt_L3,W,Watt_L3,0\n;========\u00a0\u00a0\u00a0\u00a0\u00a0 Gas\u00a0\u00a0\u00a0\u00a0\u00a0 =========\n1,0-1:24.2.3(@(1:1,Gas,m\u00b3,Gas,3\n1,=m9*#116\/#10@1,Gas_kWh,kWh,Gas_kWh,3\n;========\u00a0\u00a0\u00a0\u00a0\u00a0 Water\u00a0\u00a0\u00a0 =========\n1,0-2:24.2.1(@(1:1,Water,m\u00b3,Water,3\n;#<\/code><\/pre>\n\n\n\n<p>De meter geeft nog meer data weer dan hierboven gescript. Welke data, kan je nakijken door het commando &#8216;<code>sensor53 d1<\/code>&#8216; in te geven in &#8216;Consoles&#8217; &#8211; &#8216;Console&#8217;<\/p>\n\n\n\n<p>Schakel weer uit met&nbsp; &#8216;<code>sensor53 d0<\/code>&#8216;&nbsp;<\/p>\n\n\n\n<p>Hier als referentie de telegrammen die mijn meter doorstuurt :&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>21:04:27.137 : \/FLU5\\nnnnnnnnn_A\n21:04:27.138 : 0-0:96.1.4(50217)\n21:04:27.140 : 0-0:96.1.1(3153414731234567893123456789)\n21:04:27.141 : 0-0:1.0.0(231119210425W)\n21:04:27.142 : 1-0:1.8.1(000365.165*kWh)\n21:04:27.144 : 1-0:1.8.2(000397.663*kWh)\n21:04:27.145 : 1-0:2.8.1(000000.000*kWh)\n21:04:27.146 : 1-0:2.8.2(000000.004*kWh)\n21:04:27.148 : 0-0:96.14.0(0002)\n21:04:27.149 : 1-0:1.4.0(01.131*kW)\n21:04:27.151 : 1-0:1.6.0(231105130000W)(06.025*kW)\n21: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)\n21:04:27.154 : 1-0:61.7.0(00.072*kW)\n21:04:27.156 : 1-0:22.7.0(00.000*kW)\n21:04:27.157 : 1-0:42.7.0(00.000*kW)\n21:04:27.158 : 1-0:62.7.0(00.000*kW)\n21:04:27.187 : 1-0:32.7.0(224.4*V)\n21:04:27.189 : 1-0:52.7.0(238.6*V)\n21:04:27.190 : 1-0:72.7.0(236.8*V)\n21:04:27.191 : 1-0:31.7.0(015.51*A)\n21:04:27.193 : 1-0:51.7.0(001.45*A)\n21:04:27.194 : 1-0:71.7.0(000.42*A)\n21:04:27.195 : 0-0:96.3.10(1)\n21:04:27.197 : 0-0:17.0.0(999.9*kW)\n21:04:27.198 : 1-0:31.4.0(999*A)\n21:04:27.199 : 0-0:96.13.0()\n21:04:27.200 : 0-1:24.1.0(003)\n21:04:27.202 : 0-1:96.1.1(37464C4F32313233303636343737)\n21:04:27.203 : 0-1:24.4.0(1)\n21:04:27.205 : 0-1:24.2.3(231119210134W)(00091.237*m3)\n21:04:27.206 : 0-2:24.1.0(007)\n21:04:27.208 : 0-2:96.1.1(3853455430303030333235343833)\n21:04:27.209 : 0-2:24.2.1(231119210146W)(00006.875*m3)\n21:04:27.210 : !8E8E<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Extra commando&#8217;s<\/strong><\/h2>\n\n\n\n<p>Geef volgende commando&#8217;s in in &#8216;Consoles&#8217; &#8211; &#8216;Console&#8217; (lijn per lijn met telkens Enter) :&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>SerialDelimiter 10<\/em>\n<em>SerialSend 1<\/em><\/code><\/pre>\n\n\n\n<p>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 :&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>Teleperiod 10<\/em><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Watchdog (her)activeren<\/strong><\/h2>\n\n\n\n<p>Voor het flashen met Tasmota werd de watchdog gedeactiveerd om geen reboots te krijgen tijdens het flashen.<\/p>\n\n\n\n<p>Indien gewenst kan deze geheractiveerd worden op volgende manier:&nbsp;<\/p>\n\n\n\n<p>Stel gpio4 in als Led 1 (Configuration &#8211; Configure Module ) <\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"450\" height=\"365\" class=\"wp-image-7906\" style=\"width: 450px;\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_02.png\" alt=\"\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_02.png 385w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_02-300x243.png 300w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/p>\n\n\n\n<p>Voeg deze lijnen toe onderaan het script&nbsp; (webinterface, klik op &#8216;Consoles&#8217; en &#8216;Edit Script&#8217;):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;S<br>-&gt; ledpower 1<br>-&gt; delay 500<br>-&gt; ledpower 0<\/code><\/pre>\n\n\n\n<p>Plaats nu in de DSMR-logger32 de jumper terug op de Watchdog pinnen<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>MQTT config<\/strong><\/h2>\n\n\n\n<p>Om mqtt te configureren klik je op Configuration &#8211; Configure MQTT<\/p>\n\n\n\n<p>Bij mij staan ze als volgt :&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"356\" height=\"523\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_03.png\" alt=\"\" class=\"wp-image-7907\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_03.png 356w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_03-204x300.png 204w\" sizes=\"auto, (max-width: 356px) 100vw, 356px\" \/><\/figure>\n\n\n\n<p><strong>Hierdoor worden de boodschappen uitgestuurd op topic &#8220;esp-elekmeter\/tele\/SENSOR&#8221;<\/strong><\/p>\n\n\n\n<p>Dit zijn de boodschappen met de meterwaarden :&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{<br>\"Time\":\"2023-11-19T20:47:41\",<br>&nbsp;&nbsp;\"meter\":{<br>&nbsp;&nbsp;&nbsp;&nbsp;\"actueel_verbruik\":334,<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Total_in_day\":365.165,<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Total_in_night\":396.765,<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Total_in_sum\":761.929,<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Peak\":6.025,<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Watt_L1\":5,<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Watt_L2\":262,<br>&nbsp; &nbsp;&nbsp;\"Watt_L3\":65,<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Gas\":91.237,<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Gas_kWh\":1058.349,<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Water\":6.874<br>&nbsp; }<br>}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Home Assistant config<\/strong><\/h2>\n\n\n\n<p>Hieronder volgen de sensors die ik in <em>Home Assistant<\/em> geconfigureerd heb voor de data die via MQTT verzonden wordt door de DSMR-logger32.<\/p>\n\n\n\n<p>Omdat regelmatig onrealistische waarden meegestuurd worden, zit een controle op de binnengekomen waarden. Deze worden bij ontvangst vergeleken met een Helper <code>input_number<\/code> 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.<\/p>\n\n\n\n<p>Helpers :&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"609\" height=\"260\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_04.png\" alt=\"\" class=\"wp-image-7908\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_04.png 609w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_04-300x128.png 300w\" sizes=\"auto, (max-width: 609px) 100vw, 609px\" \/><\/figure>\n\n\n\n<p><br>De waarden van de helpers worden elke minuut bijgewerkt met de volgende automation:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"748\" height=\"749\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_05.png\" alt=\"\" class=\"wp-image-7909\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_05.png 748w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_05-300x300.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2023\/11\/tasmota_05-150x150.png 150w\" sizes=\"auto, (max-width: 748px) 100vw, 748px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><br>Volledige automation in yaml&nbsp;<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Set meters_checkvalue with current meter values\ndescription: &gt;-\n  gas water kwh helpers aanvullen met huidige meterstanden ter controle van\n  nieuw e waarden\ntrigger:\n  - platform: time_pattern\n    seconds: \"1\"\ncondition: &#091;]\naction:\n  - service: input_number.set_value\n    data_template:\n      value: \"{{ states('sensor.gas') |float }}\"\n    target:\n      entity_id: input_number.gas_checkvalue\n  - service: input_number.set_value\n    data_template:\n      value: \"{{ states('sensor.water') |float }}\"\n    target:\n      entity_id: input_number.water_checkvalue\n  - service: input_number.set_value\n    data_template:\n      value: \"{{ states('sensor.elek_total_in_sum') |float }}\"\n    target:\n      entity_id: input_number.elek_checkvalue\nmode: single<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">&nbsp; <strong>Home Assistant sensors :<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>##################################\n# uitbreiding configuratie.yaml  #\n##################################\n# koppeling met de DSMR-logger32 #\n# flashed met Tasmota            #\n# via MQTT broker                #\n##################################\n# query influxdb to delete :\n# USE \"homeassistant\" ; SELECT * FROM \"kWh\" WHERE  \"entity_id\"='gas' AND time &gt; '2023-11-09T05:50:00Z' AND time &lt; '2023-11-09T15:50:00Z'\n# USE \"homeassistant\" ; DELETE FROM \"kWh\" WHERE  \"entity_id\"='gas' AND time &gt; '2023-11-09T05:50:00Z' AND time &lt; '2023-11-09T15:50:00Z'\nmqtt:\n  sensor:\n    - state_topic: \"esp-elekmeter\/tele\/SENSOR\"\n      name: \"Elek Actueel verbruik\"\n      unit_of_measurement: \"W\"\n      #value_template: \"{{ value_json.meter.actueel_verbruik | round(0) }}\"\n      value_template:\n        \"{% if (value_json.meter.actueel_verbruik | float(0)) == '0' or (value_json.meter.actueel_verbruik | float(0)) &gt; 8000 %}\n        states('sensor.elek_actueel_verbruik') | float(0) }}\n        {% else %}\n        {{ (value_json.meter.actueel_verbruik | float(0) ) | round(3) }}\n        {% endif %}\"\n      availability_topic: \"esp-elekmeter\/tele\/LWT\"\n      payload_available: \"Online\"\n      payload_not_available: \"Offline\"\n    - state_topic: \"esp-elekmeter\/tele\/SENSOR\"\n      name: \"Elek Total_in_sum\"\n      state_class: \"total_increasing\"\n      device_class: \"energy\"\n      unit_of_measurement: \"kWh\"\n      #value_template: \"{{ value_json.meter.Total_in_night | round(3) }}\"\n      value_template: &gt;-\n        {% if ( (value_json.meter.Total_in_sum | float(0)) | round(3) &lt; states('input_number.elek_checkvalue') | float() + 100 )\n        and ( (value_json.meter.Total_in_sum | float(0)) | round(3) &gt;= states('input_number.elek_checkvalue') | float() ) %}\n        {{ (value_json.meter.Total_in_sum | float(0)) | round(3) }}\n        {% else %}\n        {{ states('sensor.elek_total_in_sum') | float(0) }}\n        {% endif %}\n      availability_topic: \"esp-elekmeter\/tele\/LWT\"\n      payload_available: \"Online\"\n      payload_not_available: \"Offline\"\n      qos: 1\n    - state_topic: \"esp-elekmeter\/tele\/SENSOR\"\n      name: \"Elek Piek huidige maand\"\n      device_class: \"energy\"\n      unit_of_measurement: \"kWh\"\n      #value_template: \"{{ value_json.meter.Peak | round(3) }}\"\n      value_template: &gt;-\n        {% if ( (value_json.meter.Peak | float(0) | round(3) ) == '0')\n        or ( (value_json.meter.Peak | float(0) | round(3) ) &gt; 11 ) %}\n        {{ states('sensor.elek_piek_huidige_maand') | float(0) | round(3) }}\n        {% else %}\n        {{ (value_json.meter.Peak | float(0)) | round(3) }}\n        {% endif %}\n      availability_topic: \"esp-elekmeter\/tele\/LWT\"\n      payload_available: \"Online\"\n      payload_not_available: \"Offline\"\n      qos: 1\n    - state_topic: \"esp-elekmeter\/tele\/SENSOR\"\n      name: \"Elek Watt_L1\"\n      device_class: \"energy\"\n      unit_of_measurement: \"W\"\n      #value_template: \"{{ value_json.meter.Watt_L1 | round(0) }}\"\n      value_template:\n        \"{% if (value_json.meter.Watt_L1 | float(0)) == '0'  or (value_json.meter.Watt_L1 | float(0)) &gt; 8000 %}\n        states('sensor.elek_watt_l1') | float(0) }}\n        {% else %}\n        {{ (value_json.meter.Watt_L1 | float(0) ) | round(3) }}\n        {% endif %}\"\n      availability_topic: \"esp-elekmeter\/tele\/LWT\"\n      payload_available: \"Online\"\n      payload_not_available: \"Offline\"\n      qos: 1\n    - state_topic: \"esp-elekmeter\/tele\/SENSOR\"\n      name: \"Elek Watt_L2\"\n      device_class: \"energy\"\n      unit_of_measurement: \"W\"\n      #value_template: \"{{ value_json.meter.Watt_L2 | round(0) }}\"\n      value_template:\n        \"{% if (value_json.meter.Watt_L2 | float(0)) == '0'  or (value_json.meter.Watt_L2 | float(0)) &gt; 8000%}\n        states('sensor.elek_watt_l2') | float(0) }}\n        {% else %}\n        {{ (value_json.meter.Watt_L2 | float(0) ) | round(3) }}\n        {% endif %}\"\n      availability_topic: \"esp-elekmeter\/tele\/LWT\"\n      payload_available: \"Online\"\n      payload_not_available: \"Offline\"\n      qos: 1\n    - state_topic: \"esp-elekmeter\/tele\/SENSOR\"\n      name: \"Elek Watt_L3\"\n      device_class: \"energy\"\n      unit_of_measurement: \"W\"\n      #value_template: \"{{ value_json.meter.Watt_L3 | round(0) }}\"\n      value_template:\n        \"{% if (value_json.meter.Watt_L3 | float(0)) == '0'  or (value_json.meter.Watt_L3 | float(0)) &gt; 8000%}\n        states('sensor.elek_watt_l3') | float(0) }}\n        {% else %}\n        {{ (value_json.meter.Watt_L3 | float(0) ) | round(3) }}\n        {% endif %}\"\n      availability_topic: \"esp-elekmeter\/tele\/LWT\"\n      payload_available: \"Online\"\n      payload_not_available: \"Offline\"\n      qos: 1\n    - state_topic: \"esp-elekmeter\/tele\/SENSOR\"\n      name: \"Gas\"\n      device_class: \"energy\"\n      unit_of_measurement: \"kWh\"\n      state_class: \"total_increasing\"\n      # omrekening m\u00b3 naar kWh gebeurt dmv DSMR-logger32 script\n      # m\u00b3 * 11.6 = kWh (hoogcalorisch gas in Belgi\u00eb)\n      # kijk op de elektriciteitsfactuur voor de juiste waarde\n      value_template: &gt;-\n        {% if ( (value_json.meter.Gas_kWh | float(0)) | round(3) &lt; states('input_number.gas_checkvalue') | float() + 50 )\n        and ( (value_json.meter.Gas_kWh | float(0)) | round(3) &gt;= states('input_number.gas_checkvalue') | float() ) %}\n        {{ (value_json.meter.Gas_kWh | float(0)) | round(3) }}\n        {% else %}\n        {{ states('sensor.gas') | float(0) }}\n        {% endif %}\n      availability_topic: \"esp-elekmeter\/tele\/LWT\"\n      payload_available: \"Online\"\n      payload_not_available: \"Offline\"\n      qos: 1\n    ##### GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST\n    #   and '(value_json.meter.Gas_kWh | float(0))' &gt; states('input_number.gas_checkvalue')\n    # ( '(value_json.meter.Gas_kWh | float(0))' &lt; states('input_number.gas_checkvalue') + '100' ) and\n    #  '(value_json.meter.Gas_kWh | float(0))' &gt; \"states('input_number.gas_checkvalue')\"\n    # ( (value_json.meter.Gas_kWh | float()) &gt; states('input_number.gas_checkvalue') | float() ) and\n    - state_topic: \"esp-elekmeter\/tele\/SENSOR\"\n      name: \"Gastest\"\n      device_class: \"energy\"\n      unit_of_measurement: \"kWh\"\n      state_class: \"total_increasing\"\n      # value template formule : als (mqtt waarde &lt; checkwaarde + 100) en (mqtt waarde &gt; checkwaarde) =&gt; mqtt waarde\n      #                           anders (herneem opgeslagen waarde uit de gas sensor)\n      value_template: &gt;-\n        {% if ( (value_json.meter.Gas_kWh | float(0)) | round(3) &lt; states('input_number.gas_checkvalue') | float() + 100 )\n        and ( (value_json.meter.Gas_kWh | float(0)) | round(3) &gt;= states('input_number.gas_checkvalue') | float() ) %}\n        {{ (value_json.meter.Gas_kWh | float(0)) | round(3) }}\n        {% else %}\n        {{ states('sensor.gastest') | float(0) }}\n        {% endif %}\n      availability_topic: \"esp-elekmeter\/tele\/LWT\"\n      payload_available: \"Online\"\n      payload_not_available: \"Offline\"\n      qos: 1\n    ##### GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST GASTEST\n    - state_topic: \"esp-elekmeter\/tele\/SENSOR\"\n      name: \"Water\"\n      state_class: \"total_increasing\"\n      device_class: \"water\"\n      unit_of_measurement: \"m\u00b3\"\n      icon: mdi:water\n      value_template: &gt;-\n        {% if ( (value_json.meter.Water | float(0)) | round(3) &lt; states('input_number.water_checkvalue') | float() + 1 )\n        and ( (value_json.meter.Water | float(0)) | round(3) &gt;= states('input_number.water_checkvalue') | float() ) %}\n        {{ (value_json.meter.Water | float(0)) | round(3) }}\n        {% else %}\n        {{ states('sensor.water') | float(0) }}\n        {% endif %}\n      availability_topic: \"esp-elekmeter\/tele\/LWT\"\n      payload_available: \"Online\"\n      payload_not_available: \"Offline\"\n      qos: 1\n    - state_topic: \"esp-elekmeter\/tele\/SENSOR\"\n      name: \"Water liter\"\n      state_class: \"total_increasing\"\n      device_class: \"water\"\n      unit_of_measurement: \"l\"\n      icon: mdi:water\n      value_template: &gt;-\n        {% if ( (value_json.meter.Water | float(0)) | round(3) * 1000 &lt; (states('input_number.water_checkvalue') | float() * 1000 )+ 100 )\n        and ( (value_json.meter.Water | float(0)) | round(3) * 1000 &gt;= states('input_number.water_checkvalue') | float() * 1000 ) %}\n        {{ ((value_json.meter.Water | float(0)) | round(3) * 1000) | int }}\n        {% else %}\n        {{ (states('sensor.water_liter') | float(0)) | int }}\n        {% endif %}\n      availability_topic: \"esp-elekmeter\/tele\/LWT\"\n      payload_available: \"Online\"\n      payload_not_available: \"Offline\"\n      qos: 1\n# gemiddelde wattage over 15min berekenen gebaseerd op realtime W meter uit digitale teller\n# leest echter niet uit in influxdb\nsensor:\n  - platform: filter\n    name: \"Elek Watt 15m gemiddeld\"\n    entity_id: sensor.elek_actueel_verbruik\n    filters:\n      - filter: time_simple_moving_average\n        window_size: \"00:15\"\n  # filters van utility meters om waarden die uit de band springen weg te filteren\n  # werken helaas niet\n  - platform: filter\n    name: \"elek total in sum filtered\"\n    entity_id: sensor.elek_total_in_sum\n    filters:\n      - filter: outlier\n        window_size: 4\n        radius: 0.01\n  - platform: filter\n    name: \"gas filtered\"\n    entity_id: sensor.gas\n    filters:\n      - filter: outlier\n        window_size: 4\n        radius: 0.01\n  - platform: filter\n    name: \"water filtered\"\n    entity_id: sensor.water\n    filters:\n      - filter: outlier\n        window_size: 4\n        radius: 0.01\ntemplate:\n  - sensor:\n      # gemiddelde wattage over 15min uitleesbaar in influxdb:\n      - name: \"Elek watt (gem 15m)\"\n        unique_id: elek watt gem 15m\n        unit_of_measurement: \"W\"\n        state: \"{{ states('sensor.elek_watt_15m_gemiddeld') }}\"\n        device_class: \"energy\"\n      - name: \"water per 15m in l\"\n        unique_id: water per 15m in l\n        unit_of_measurement: \"l\"\n        state: \"{{ states('sensor.water_quarter_hourly') |float * 1000 }}\"\n        device_class: \"energy\"\n# de sensors die in het Energy onderdeel van Haos uitgelezen worden staan hierboven.\n# deze zijn configured via http:\/\/haos.net.priv:8123\/config\/energy\n# Hieronder aparte sensoren om het verbruik per uur\/dag\/week\/ te berekenen zodat deze in\n# bv. InfluxDB uitgelezen kunnen worden.\n# zie https:\/\/www.home-assistant.io\/integrations\/utility_meter\/\nutility_meter:\n  water_consumption_yearly:\n    name: water yearly\n    source: sensor.water\n    cycle: yearly\n  water_consumption_monthly:\n    name: water monthly\n    source: sensor.water\n    cycle: monthly\n  water_consumption_weekly:\n    name: water weekly\n    source: sensor.water\n    cycle: weekly\n  water_consumption_daily:\n    name: water daily\n    source: sensor.water\n    cycle: daily\n  water_consumption_hourly:\n    name: water hourly\n    source: sensor.water\n    cycle: hourly\n  water_consumption_quarter_hourly:\n    name: water quarter-hourly\n    source: sensor.water\n    cycle: quarter-hourly\n  gas_consumption_yearly:\n    name: gas yearly\n    source: sensor.gas\n    cycle: yearly\n  gas_consumption_monthly:\n    name: gas monthly\n    source: sensor.gas\n    cycle: monthly\n  gas_consumption_weekly:\n    name: gas weekly\n    source: sensor.gas\n    cycle: weekly\n  gas_consumption_daily:\n    name: gas daily\n    source: sensor.gas\n  gas_consumption_hourly:\n    name: gas hourly\n    source: sensor.gas\n    cycle: hourly\n  gas_consumption_quarter_hourly:\n    name: gas quarter-hourly\n    source: sensor.gas\n    cycle: quarter-hourly\n  elek_consumption_yearly:\n    name: elek yearly\n    source: sensor.elek_total_in_sum\n    cycle: yearly\n  elek_consumption_monthly:\n    name: elek monthly\n    source: sensor.elek_total_in_sum\n    cycle: monthly\n  elek_consumption_weekly:\n    name: elek weekly\n    source: sensor.elek_total_in_sum\n    cycle: weekly\n  elek_consumption_daily:\n    name: elek daily\n    source: sensor.elek_total_in_sum\n    cycle: daily\n  elek_consumption_hourly:\n    name: elek hourly\n    source: sensor.elek_total_in_sum\n    cycle: hourly\n  elek_consumption_quarter_hourly:\n    name: elek quarter-hourly\n    source: sensor.elek_total_in_sum\n    cycle: quarter-hourly\n <\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gepost door Davy[ ] 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 &hellip; <a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2023\/11\/21\/tasmota-voor-de-dsmr-logger32\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[170,157,10,171,20],"tags":[],"class_list":["post-7898","post","type-post","status-publish","format-standard","hentry","category-dsmr-logger","category-esp32","category-hardware","category-tasmota","category-wifi"],"views":3597,"_links":{"self":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/7898","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/comments?post=7898"}],"version-history":[{"count":17,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/7898\/revisions"}],"predecessor-version":[{"id":7931,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/7898\/revisions\/7931"}],"wp:attachment":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/media?parent=7898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/categories?post=7898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/tags?post=7898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}