[vz-users] Anleitung: VZLogger als MQTT-Subscriber
Sirko
mail_ist at nurfuerspam.de
Di Mär 31 16:07:04 CEST 2020
Hi,
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).
Z.B. gibt es ein paar Steckdosen, auf denen Tasmota läuft und die so
ihre Werte per MQTT (JSON) übertragen:
{"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}}
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.
Für die DB brauche ich nur "Power", also reicht
mosquitto_sub -C 1 -t /SmartHome/Topic/ZumGeraet/SENSOR | jq -r
'.ENERGY.Power'
-C 1 läßt das Kommando einfach warten, bis 1 Antwort zurück kommt.
Hier die Konfiguration aus vzlogger.conf (influxdb ist optional):
{ // MQTTsubscriber
"enabled": true,
"allowskip": true,
"interval": 10, //Achtung: alle 10 Sekunden, eventuell erhöhen
"aggtime": -1,
"aggfixedinterval": false,
"channels": [
{
"api": "volkszaehler",
"uuid": "96e43280-1234-1122-aabb-g527bd5f1607",
"identifier": "",
// "middleware": "http://127.0.0.1/middleware.php",
"middleware" : "http://127.0.0.1:8080",
"aggmode": "none",
"duplicates": 0
},
{ // nochmal in die InfluxDB, ACHTUNG: das ist komplett
optional und für die meisten unnötig
"api": "influxdb", // use the InfluxDB api
"uuid": "96e43280-1234-1122-aabb-g527bd5f1607",
"identifier" : "",
"host": "127.0.0.1:8086", // This assumes that InfluxDB
is running on localhost
"database": "volkszaehler", // Optional: make sure this
database exists in InfluxDB
"measurement_name": "data", // Optional: It is
recommended that all your meters have the same InfluxDB measurement name
"tags": "title=Gefrierschrank,type=powersensor", //
Optional: Additional tags to append when inserting data
"username": "username", // Optional: When InfluxDB Auth
is enabled you need to set the correct user and password
"password": "password",
//"max_batch_inserts": 4500, // Optional: Max number of
measurements per request. No need to change this
//"max_buffer_size": 450000, // Optional: Max number of
measurements to be cached when InfluxDB is not available
//"timeout": 30, // Optional: Time in seconds after which
requests to InfluxDB time out
//"send_uuid": false, // Optional: Disables the sending
of the UUID to the InfluxDB server
//"ssl_verifypeer": false, // Optional: Disables the
certificate verification for https connections
"aggmode" : "none"
}
],
"*protocol": "exec",*
*"command": "mosquitto_sub -C 1 -t **/SmartHome/Topic/ZumGeraet/SENSOR |
jq -r '.ENERGY.Power'",*
//"format": "$v"
},
Funktioniert sehr gut so weit.
Viele Grüße
Sirko
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20200331/d224c726/attachment.html>
More information about the volkszaehler-users
mailing list