<div dir="auto">Hi Sirko,<div dir="auto"><br></div><div dir="auto">danke für die Anleitung!</div><div dir="auto"><br></div><div dir="auto">Im Fall von Tasmota könnte man auch HTTP und curl verwenden: <a href="http://IP/cm?cmnd=status">http://IP/cm?cmnd=status</a> 8 liefert ebenfalls die Energie-Messwerte. Damit ließe sich sogar das minimale MQTT-Intervall von Tasmota (10s?) umgehen ;-)</div><div dir="auto"><br></div><div dir="auto">Viele Grüße</div><div dir="auto">Frank</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Sirko <<a href="mailto:mail_ist@nurfuerspam.de">mail_ist@nurfuerspam.de</a>> schrieb am Di., 31. März 2020, 16:07:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<p>Hi,</p>
<p>da sich bei mir einige Geräte im Heimnetz tummeln, die sich per
MQTT mitteilen, wollte ich diese möglichst einfach in VZ speichern
lassen (bzw. in eine InfluxDB).<br>
Z.B. gibt es ein paar Steckdosen, auf denen Tasmota läuft und die
so ihre Werte per MQTT (JSON) übertragen:</p>
<p><tt>{"Time":"2020-03-31T10:12:36","ENERGY":{"TotalStartTime":"2020-02-27T20:27:49","Total":24.950,"Yesterday":0.766,"Today":0.332,"Period":0,"Power":77,"ApparentPower":86,"ReactivePower":39,"Factor":0.89,"Voltage":226,"Current":0.380}}</tt></p>
<p>Da mein MQTT Server auf einem Raspberry neben dem vzlogger läuft
(incl. mosquitto_sub Kommando), dachte ich mir, man kann sicher
das exec Protokoll dafür nutzen.<br>
Für die DB brauche ich nur "Power", also reicht</p>
<p><tt>mosquitto_sub -C 1 -t /SmartHome/Topic/ZumGeraet/SENSOR | jq
-r '.ENERGY.Power'</tt></p>
<p><tt>-C 1</tt> läßt das Kommando einfach warten, bis 1 Antwort
zurück kommt.</p>
<p>Hier die Konfiguration aus vzlogger.conf (influxdb ist optional):</p>
<p><tt> { // MQTT</tt><tt> subscriber<br>
</tt><tt> "enabled": true,</tt><tt><br>
</tt><tt> "allowskip": true,</tt><tt><br>
</tt><tt> "interval": 10,</tt><tt> //Achtung: alle 10
Sekunden, eventuell erhöhen<br>
</tt><tt> "aggtime": -1,</tt><tt><br>
</tt><tt> "aggfixedinterval": false,</tt><tt><br>
</tt><tt> "channels": [</tt><tt><br>
</tt><tt> {</tt><tt><br>
</tt><tt> "api": "volkszaehler",</tt><tt><br>
</tt><tt> "uuid": "96e43280-1234-1122-aabb-g527bd5f1607",</tt><tt><br>
</tt><tt> "identifier": "",</tt><tt><br>
</tt><tt>// "middleware":
<a href="http://127.0.0.1/middleware.php" target="_blank" rel="noreferrer">"http://127.0.0.1/middleware.php"</a>,</tt><tt><br>
</tt><tt> "middleware" : <a href="http://127.0.0.1:8080" target="_blank" rel="noreferrer">"http://127.0.0.1:8080"</a>,</tt><tt><br>
</tt><tt> "aggmode": "none",</tt><tt><br>
</tt><tt> "duplicates": 0</tt><tt><br>
</tt><tt> },</tt><tt><br>
</tt><tt> {</tt><tt> // nochmal in die InfluxDB, ACHTUNG:
das ist komplett optional und für die meisten unnötig<br>
</tt><tt> "api": "influxdb", // use the InfluxDB api</tt><tt><br>
</tt><tt> "uuid": "</tt><tt><tt>96e43280-1234-1122-aabb-g527bd5f1607</tt>",</tt><tt><br>
</tt><tt> "identifier" : "",</tt><tt><br>
</tt><tt> "host": "<a href="http://127.0.0.1:8086" target="_blank" rel="noreferrer">127.0.0.1:8086</a>",
// This assumes that InfluxDB is running on localhost</tt><tt><br>
</tt><tt> "database": "volkszaehler",
// Optional: make sure this database exists in InfluxDB</tt><tt><br>
</tt><tt> "measurement_name": "data",
// Optional: It is recommended that all your meters have the
same InfluxDB measurement name</tt><tt><br>
</tt><tt> "tags":
"title=Gefrierschrank,type=powersensor", // Optional:
Additional tags to append when inserting data</tt><tt><br>
</tt><tt> "username": "username",
// Optional: When InfluxDB Auth is enabled you need to set
the correct user and password</tt><tt><br>
</tt><tt> "password": "password",</tt><tt><br>
</tt><tt> //"max_batch_inserts": 4500,
// Optional: Max number of measurements per request. No need
to change this</tt><tt><br>
</tt><tt> //"max_buffer_size": 450000,
// Optional: Max number of measurements to be cached when
InfluxDB is not available</tt><tt><br>
</tt><tt> //"timeout": 30,
// Optional: Time in seconds after which requests to
InfluxDB time out</tt><tt><br>
</tt><tt> //"send_uuid": false,
// Optional: Disables the sending of the UUID to the
InfluxDB server</tt><tt><br>
</tt><tt> //"ssl_verifypeer": false,
// Optional: Disables the certificate verification for https
connections</tt><tt><br>
</tt><tt> "aggmode" : "none"</tt><tt><br>
</tt><tt> } </tt><tt><br>
</tt><tt> ],</tt><tt><br>
</tt><tt> "<b>protocol": "exec",</b></tt><tt><br>
</tt><tt> <b>"command": "mosquitto_sub -C 1 -t </b></tt><b><tt><tt>/SmartHome/Topic/ZumGeraet/SENSOR</tt>
| jq -r '.ENERGY.Power'",</tt></b><tt><br>
</tt><tt> //"format": "$v"</tt><tt><br>
</tt><tt> },</tt><br>
</p>
<p><br>
</p>
<p>Funktioniert sehr gut so weit.<br>
</p>
<p>Viele Grüße<br>
Sirko<br>
</p>
</div>
</blockquote></div>