Tasmota Energy Monitoring with NodeRED, Influx and Grafana
Tasmota-Energy-Monitor
Energy monitor using NodeRED, InfluxDB and Grafana
This project is using power monitoring devices like Gosund SP111, SONOFF POW to measure the energy consumption. Data is collected by NodeRED and pushed to a Influx database. Finally Grafana is used to provide a dashboard.
Supporting files are availabe on github:
https://github.com/ThomasH-W/Tasmota-Energy-Monitor
Grafana Monitoring
NodeRED
The flow is kept very generic. You do not need to manually create flows for each devices. Instead of using discovery, NodRED is listening to all SENSOR messages and creating automatically a list of devices.
The fields pushed to the influx database are
- device: myDevice,
- event: ‘tele’,
- power: msg.payload.ENERGY.Power,
- today: msg.payload.ENERGY.Today,
- yesterday: msg.payload.ENERGY.Yesterday,
- total: msg.payload.ENERGY.Total
At the end of each day at 11.58 p.m. the value of today is pushed to another measurement in influx.
Tsamota Devices
Hardware
Any Tasmota device with power measurement will work: NOUS A1T, Gosund SP111, BlitzWolf SHP2 (old version with ESP), SONOFF POW
Configuration
When I started with home automation I thought it is a bright idea to seperate MQTT messages by building. Accordingly I changed the full topic to “house/%prefix%/%topic/”.
Probably I would not do it anymore.
Hallo Thomas, das ist eine super Lösung für mehrere Geräte! Wie sind die Tasmota Einstellungen in den Switches?
Danke Carsten
Hallo Carsten,
die Einstellungen habe ich oben ergänzt.
Viele Grüße, Thomas
Hi Thomas,
super beschrieben, einzig aber wie man den Split der Daten könntest du noch etwas mehr beschreiben. Ich verstehe nicht wie du die Json Datei konvertierst und splittest.
Danke für deine Mühen,
Tobias
Hallo Thomas,
irgend etwas stimmt da nicht. Die Ausgabe der “create tele msg” sieht bei mir so aus:
6.9.2023, 07:34:10node: debug 3
tele/licht/SENSOR : msg.payload : Object
object
device: “SENSOR”
power: 64
today: 0.475
yesterday: 1.522
total: 112.402
Bei all meinen Geräten steht unter device: “SENSOR”
Somit sind die daten nicht unterscheidbar. oder?
Gruß Tobi
Hallo Tobi,
mein topic benutzt house/tele/, bei dir (wahrscheinlich auch bei den meisten) steht tele/ .
Also ist bei dir der device name das dritte element im topic bzw. hat den index 2 im array.
Entsprechend muss in den Funktionen “create tele msg” der index für das array auf 1 geändert werden.
alt: var myDevice = array[2]; // 3. Element holen
neu: var myDevice = array[1]; // 2. Element holen
Gruß,
Thomas
Hi Thomas,
ich fummel mich gerade in NodeRed und MQTT rein. Und nutze dafür deine JSON Datei. Und ebenfalls danke dieses “/+/” ist Gold wert.
Die “stat/+/STATUS10” Aktion will einfach nicht funktionieren, es kommen keine Daten. Vielleicht weißt Du ja Abhilfe.
Danke und Gruß ebenfalls
Thomas
Hi Thomas,
wenn bei mir ertwas nicht funktioniert nehme ich zuerst den MQTT Explorer.
Dort kannst du direkt den Befehl senden (publish): Topic “house/cmnd/Heizung/STATUS” + Payload “10”.
Danach sollte das Gerät den Status schicken: Topic “house/stat/Heizung/STATUS10”.
Beides ggfs. ohne Prefix “house/” – ist wahrscheinlich nur bei mir so.
Wenn das funktioniert, einfach debug-Knoten in den Flow einfügen.
Viele Grüße,
Thomas
Hi Thomas,
habe in den Einstellungen alles so mal eingepflegt wie bei Dir.
Gosund SP111 war es ja schon davor
MQTT dort auch den TOPIC und FLLTOPIC angepasst.
Trockner
house/%prefix%/%topic%/
habe mit dem MQTT Explorer geschaut.
Wenn ich dort diesen Befehle sende:
house/cmnd/Trockner/STATUS10
Kommt nur im MQTT Explorer im Pfad
“house/stat/Trockner/STATUS”
folgende Ausgabe
{“Status”:{“Module”:0,”DeviceName”:”ST03″,”FriendlyName”:[“ST03″],”Topic”:”Trockner”,”ButtonTopic”:”0″,”Power”:0,”PowerOnState”:3,”LedState”:1,”LedMask”:”FFFF”,”SaveData”:1,”SaveState”:1,”SwitchTopic”:”0″,”SwitchMode”:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],”ButtonRetain”:0,”SwitchRetain”:0,”SensorRetain”:0,”PowerRetain”:0,”InfoRetain”:0,”StateRetain”:0,”StatusRetain”:0}}
Also gib er nur Status aus oder sehe ich das falsch.
Hi Thomas,
(hier der verwirrte)
den letzten Post einfach vergessen.
Im MQTT Explorer habe ich nie den Payload reingehauen ich ….
Jetzt sehe ich alles.
Danke ein prolem weniger jetzt nur noch den Fehler bei mir im Chron finden.
Danke nochmals
Viele Grüße,
Hi.
Hast Du den Fehler schon gefunden? Wenn ja wo? Weil bei mir komm auch immer ungültige Konfiguraion. 🙁
Gruß
Alex
Hallo Alex,
welchen Fehler meinst Du ? Wi ein den anderen Kommentaren beschrieben, muss sehr wahrscheinlich das topoi cgeändert werden . Siehe Antwort an Tobi.
Gruß
Thomas