Daten aus dem Energy Dashboard

Hallo zusammen,

Ich möchte Daten die im Energie-Dashboard in der „energy-sources-table“ angezeigt werden als Sensorwert oder Helfer abfragen können.

Leider ist mir unbekannt wie ich Daten aus der „energy-sources-table“ abgreifen kann.

Hat jemand hierzu eine Bespiel oder eine Idee wie ich an die Werte „Solar gesamt“ und „Netz gesamt“ komme?

Dieser Text wird ausgeblendet

Die kannst du da meines Wissens nicht abgreifen, aber vielleicht hilft dir das:

LG
Tobi

Hallo Tobi,

danke für den Tipp. Werde mal damit etwas rumspielen.

Herzliche Grüße

Jan

Die Werte werden direkt aus der Datenbank ermittelt.

Hallo Melle,

danke für die Info.
Ich werde mir wohl einen eigenen Weg überlegen müssen um diese gesammelten Daten zusammenzuführen. Schade. Das wäre eine tolle Arbeitserleichertung gewesen.

Wenn ich etwas brauchbares entwickelt habe teile ich das gerne in diesem Forum.

Herzliche Grüße

Jan

Der holt sich die Daten doch auch nur über Sensoren oder?
Also sollten sich doch die Werte direkt verwenden lassen.

Das ist richtig. Ich habe festgestellt, wenn ein einen Sensor in meinem Fall ein ESP32 der ein S0 Signal zählt, ausschalte und wieder einschalte dann nur die Sensorwerte nach dem wiedereinschalten für den kompletten Tag darstellt.

Das Energie Dashboard erkennt das ein- und ausschalten und zählt munter weiter.

Diese Funktion hätte ich gerne gehabt. Ist nicht lebensnotwenig aber eine schöne Funktion. Mal schauen ob ich so etwas nachbauen kann.

Im Link oben steht doch alles? Du hast nicht die Historie von den Daten sondern nur den Endzustand…

Das verstehe ich nicht, ich habe auch einen ESP mit S0 und pulse counter und wenn der aus passiert da gar nichts.

Dann versteh ich das nicht, bei mir ist die Historie drin.
Zählerstand kommt über IR-Lesekopf, Balkonkraftwerk über Ahoy-DTU via MQTT.
Ich hab bei den Sensoren die von MQTT kommen eine unique_id vergeben, da sonst kein Verlauf der Werte angezeigt wurde.

Kann ich nicht beurteilen, aber im Link steht ja eindeutig, dass das Energy Dashboard das direkt aus der Datenbank liest und berechnet. Es gibt keine Sensoren dafür, welche das Energy Dashboard bereitstellt.
Im Devtools kannst du ja die einzelne Statistik-Einträge auch manipulieren und die haben keine Auswirkung auf den sensor von der Integration.

Beispiel:

Das du eventuell eigene hast oder eine Integration die das bereitstellt, kann durchaus sein. Ist aber nicht die Regel. Auch mit Helper daily,monthly etc. wird es schwer nur mit den sensoren danach zu suchen.

Ich habe einen Fronius und einen Pulse Counter, da sieht man nur die Endzustände und man müsste wie im Link alles selber tracken. Darauf hatte ich bisher keine Lust und auch keinen Anwendungsfall.

Hi @JanNi,
Ich habe mal fleissig mitgelesen, so ganz bin ich aber nicht dahinter gesteiegen.
Kann ich nun die Daten aus dem EnergyDashboard auslesen oder geht das nur über Templates, Das wäre für mich dann irgendwie doppelt gemoppelt.
Hast Du das Utility Meter ausprobiert?
Beste Grüße
AndiFidi

Hast du meinen Link zum Feature request gelesen? Da steht alles detailliert drin.

Du meinst diesen hier? Using values of energy management in dashboards - Feature Requests - Home Assistant Community
Gesehen schon, nur nicht verstanden.

Okay was genau ist sie

Jup genau zusammen mit:
"…aber im Link steht ja eindeutig, dass das Energy Dashboard das direkt aus der Datenbank liest und berechnet. Es gibt keine Sensoren dafür, welche das Energy Dashboard bereitstellt.
"

Ist es doch recht eindeutig oder was ist genau die offene Frage :slight_smile: ?

Im Link sind noch paar Lösungen, aber eigene Sensoren sind nicht ganz so einfach.

Ähm sorry. Tur mir leid, dass ich es nicht verstanden habe. Ich werde es mir nochmal durchlesen und vielleicht finde ich heraus was ich falsch mache.
Danke!

Es gibt keine optimale Lösung leider

Hallo zusammen,
ich habe auch keine optimale Lösung gefunden. Anbei ein kleines Script, mit dem ich mit Python aus Homeassistant die Stromzähler aus HA auslese und in eine MariaDB Datenbank einfüge. Vieleicht hilft es dem einen oder anderen weiter.

from requests import get
import json
import datetime
import pymysql
from os import system
import mariadb

token = "MEIN-TOKEN"
dt = datetime.datetime.now()
CurrentDatetime = dt.strftime("%Y-%m-%d %H:%M:%S")

def FuncRestApi (url, token):
    headers = {
        "Authorization": "Bearer " + token,
        "content-type": "application/json",
    }

    response = get(url, headers=headers)

    # Create a json variable
    jdata = json.loads(response.text)
    return (jdata["state"])


def FuncInsertEnergyData (energy_id, energy_data, energy_datetime):
    # Connect to MariaDB Platform
    try:
        conn = mariadb.connect(
            user="MeinMariadbUser",
            password="MeinMariadbUserPasswort",
            host="hyper-v.fritz.box",
            port=3306,
            database="homedata"
        )
    except mysql.Error as e:
        print(f"Error connecting to MariaDB Platform: {e}")
        sys.exit(1)

    # Get Cursor
    cur = conn.cursor()
    mycursor = conn.cursor()
    
    cur.execute(
        "INSERT INTO homedata.tbl_energy_data (energy_datetime, energy_id, energy_data) VALUES (?, ?, ?)", 
        (energy_datetime, energy_id, energy_data))

#Steckdose Schlafzimmer energy_id=1000
energy_id=1000
value = 4711
url = "http://192.168.2.227:8123/api/states/sensor.schaltsteckdose_tasmota_spuelmaschine_energy_today_2"
value = FuncRestApi(url, token)
print("Schlafzimmer = ", value, " kWh heute")
try:
    kWhValue = float(value)
    #FuncInsertEnergyData(energy_id, kWhValue, CurrentDatetime)
    print("Gleitkommazahl")
    
except ValueError:
    print("fehlerhafte Abfrage Steckdose Schlafzimmer")



#Steckdose Wohnzimmer IT energy_id=1001
energy_id=1001
value = 4711
url = "http://192.168.2.227:8123/api/states/sensor.schaltsteckdose_tasmota_it_energy_today"
value = FuncRestApi(url, token)
print("IT = ", value, " kWh heute")
try:
    kWhValue = float(value)
    #FuncInsertEnergyData(energy_id, kWhValue, CurrentDatetime)
    print("Gleitkommazahl")
    
except ValueError:
    print("fehlerhafte Abfrage Steckdose Wohnzimmer IT")




#Steckdose Kuehlschrank energy_id=1002
energy_id=1002
value = 4711
url = "http://192.168.2.227:8123/api/states/sensor.schaltsteckdose_tasmota_spuelmaschine_energy_today_3"
value = FuncRestApi(url, token)
print("Kühlschrank = ", value, " kWh heute")
try:
    kWhValue = float(value)
    #FuncInsertEnergyData(energy_id, kWhValue, CurrentDatetime)
    print("Gleitkommazahl")
    
except ValueError:
    print("fehlerhafte Abfrage Steckdose Kuehlschrank")


#Steckdose Trockner energy_id=1003
energy_id=1003
value = 4711
url = "http://192.168.2.227:8123/api/states/sensor.schaltsteckdose_tasmota_trockner_energy_today"
value = FuncRestApi(url, token)
#print("Trockner = ", value, " kWh heute")
try:
    kWhValue = float(value)
    #FuncInsertEnergyData(energy_id, kWhValue, CurrentDatetime)
    print("Gleitkommazahl")
    
except ValueError:
    print("fehlerhafte Abfrage schaltsteckdose_tasmota_trockner_energy_today")



#Steckdose Waschmaschine energy_id=1004
energy_id=1004
value = 4711
url = "http://192.168.2.227:8123/api/states/sensor.schaltsteckdose_tasmota_waschmaschine_energy_today"
value = FuncRestApi(url, token)
print("Waschmaschine = ", value, " kWh heute")
try:
    kWhValue = float(value)
    #FuncInsertEnergyData(energy_id, kWhValue, CurrentDatetime)
    print("Gleitkommazahl")
    
except ValueError:
    print("fehlerhafte Abfrage schaltsteckdose_tasmota_waschmaschine_energy_today")


#Steckdose Spuehlmaschine energy_id=1005
energy_id=1005
value = 4711
url = "http://192.168.2.227:8123/api/states/sensor.schaltsteckdose_tasmota_spuelmaschine_energy_today"
value = FuncRestApi(url, token)
print("Spühlmaschine = ", value, " kWh heute")

try:
    kWhValue = float(value)
    #FuncInsertEnergyData(energy_id, kWhValue, CurrentDatetime)
    print("Gleitkommazahl")
    
except ValueError:
    print("fehlerhafte Abfrage schaltsteckdose_tasmota_spuelmaschine_energy_today")


#d1-mini-herd Stromzählerenergy_id=1006
energy_id=1006
value = 4711
url = "http://192.168.2.227:8123/api/states/sensor.d1_mini_herd_stromzahler"
value = FuncRestApi(url, token)
print("Herd = ", value, " kWh heute")
try:
    kWhValue = float(value)
    #FuncInsertEnergyData(energy_id, kWhValue, CurrentDatetime)
    print("Gleitkommazahl")
    
except ValueError:
    print("fehlerhafte Abfrage sensor.d1_mini_herd_stromzahler")


#energy_production_today id=2000
energy_id=2000
value = 4711
url = "http://192.168.2.227:8123/api/states/sensor.shelly3em_tasmota_sicherungskasten_energy_todaysumimport"
value = FuncRestApi(url, token)
print("EVU = ", value, " kWh heute")

try:
    kWhValue = float(value)
    #FuncInsertEnergyData(energy_id, kWhValue, CurrentDatetime)
    print("Gleitkommazahl")
    
except ValueError:
    print("fehlerhafte Abfrage shelly3em_tasmota_sicherungskasten_energy_todaysumimport")
    
    
#energy_production_today id=2001
energy_id=2001
value = 4711
url = "http://192.168.2.227:8123/api/states/sensor.schaltsteckdose_tasmota_trockner_energy_today"
value = FuncRestApi(url, token)
print("Solar = ", value, " kWh heute")

try:
    kWhValue = float(value)
    #FuncInsertEnergyData(energy_id, kWhValue, CurrentDatetime)
    print("Gleitkommazahl")
    
except ValueError:
    print("fehlerhafte Abfrage sensor.schaltsteckdose_tasmota_trockner_energy_today")

Herzliche Grüße

Jan

Ich habe festgestellt, wenn ein einen Sensor in meinem Fall ein ESP32 der ein S0 Signal zählt, ausschalte und wieder einschalte dann nur die Sensorwerte nach dem wiedereinschalten für den kompletten Tag darstellt.

Der S0 pulse-counter fängt wieder von 0 an zu zählen wenn er neu eingeschaltet wird. Wenn du den Zählerstand durchgängig haben willst auch wenn der ESP32 zwischendurch wieder bei null startet, dann solltest du Wert des Total-Count vom ESP32 über einen Utility Count Helfer laufen lassen. Mit dem standardmäßig aktivierten periodically_resetting zählt er den Energiewert einfach weiter auch wenn der ESP32 zwischendurch wieder von 0 weg startet.

Mit der Utility Count - Calibration kann man dann noch den derzeitigen Absolutwert des Zählers einstellen. Damit hast du einen digitalen Zwilling des in HA vom realen Zählerstand erzeugt.

Ich hoffe zumindest, dass es in etwa das ist was du eigentlich wolltest, weil das ist mir sonst nicht so 100%ig eindeutig klar.