Tasmota: Verbrauchswerte per Bash Script auslesen und speichern

  • Hallo!

    Ich habe ein kleines Script geschrieben, welches sich täglich die Verbrauchswerte von Geräten mit Tasmota Firmware holt und abspeichert.

    Den Messwert für "Yesterday" legt das Script täglich in einer Textdatei (strom_IP_1tag.txt) ab. Am 1. des Monats rechnet das Script diese Werte zusammen, leert die Datei (für Werte vom nächsten Monat) und legt das Ergebnis in eine weitere Textdatei (strom_IP_2monat.txt) ab. Am 1.1. jeden Jahres rechnet das Script auch diese 12 Werte zusammen und legt eine Textdatei (strom_IP_3jahr.txt) an.

    Weiterhin schreibt das Script ein Log, wo auch verzeichnet ist, wenn ein Gerät nicht erreicht werden konnte.

    Bei mir liegt das Script im Verzeichnis /root/strom

    Dort liegt eine strom.sh, die täglich 1x ausgeführt werden muss (automatisiert über crontab).

    Bei der Konfiguration müssen folgende Punkte bearbeitet werden:

    • Verzeichnis (Standard: /root/strom)
    • IP-Stamm (die ersten drei Zahlen der IP) (Standard: 192.168.0.)
    • Zeile 21 in Klammern die IPs, die abgefragt werden sollen. Das Trennzeichen ist ein Freizeichen (Standard: 121 122). Dies ist die vierte Ziffer der IP.
    • crontab auf die strom.sh (täglich 1x ausführen, nicht mehrmals!)

    Und nun hier das Script:

    Das Script ist zur freien Verfügung. Wenn es jemand verbessert, würde ich mich freuen, wenn man die Verbesserung hier mit uns teilt. ;)

    Meine Hardware@home: Fritzbox 7590AX, 15xTasmota-Geräte, Syno NAS, Raspberry Pi 4 f. PiHole, ioBroker, Docker, TasmoAdmin, Portainer

  • Zum Abspeichern der Werte gehört natürlich auch eine schnelle Anzeige aller Werte auf der Konsole.

    So schaut das dann aus:

    Das Script erkennt welche Daten da sind und gibt diese getrennt voneinander aus. Dabei wird der letzte Wert hervorgehoben, sowie die Tageswerte des aktuellen Monats angezeigt.

    Und hier das Script dafür:

    Das Script ist zur freien Verfügung. Wenn es jemand verbessert, würde ich mich freuen, wenn man die Verbesserung hier mit uns teilt.

    Meine Hardware@home: Fritzbox 7590AX, 15xTasmota-Geräte, Syno NAS, Raspberry Pi 4 f. PiHole, ioBroker, Docker, TasmoAdmin, Portainer

    Einmal editiert, zuletzt von Marc (10. Juni 2019 um 12:03) aus folgendem Grund: Script überarbeitet und "7 letzten Werte" eingefügt.

  • Hallo Marc,

    funktioniert alles solang die IP-Adresse mit 3-stelligen Nummern enden. Leder nicht wenn diese mit 3- oder 2-stellige IPs endet. Habe mal übergangsweise als area die komplette IP angegeben.

    Habe aber bei lesen.sh aber noch keine Lösung gefunden, da du mit Cut ja feste Stellen definiert hast.

    Vielleicht hast du ein Lösung ???

    Währe toll!

    Grüße aus dem Aichtal

    Stephan