Im Hintergrund speichert Home Assistant Daten, Zustรคnde und die Verlรคufe deiner Entitรคten in Datenbanken. Standardmรครig kommt dafรผr SQLite zum Einsatz. Falls du schon lรคnger Home Assistant nutzt, hast du vielleicht irgendwann auf eine extern gehostete Datenbank wie MariaDB umgestellt. Wenn du an der Datenbank deines Home Assistants nichts verรคndert hast, verwendest du sehr wahrscheinlich SQLite. Auf diese Daten kann man direkt zugreifen, wenn man ein wenig SQL beherrscht.
Um manuell รผber die Befehlszeile mit der SQLite-Datenbank zu arbeiten, benรถtigst du eine Installation von sqlite3 (Installationsanleitung). Alternativ kannst du den DB Browser for SQLite nutzen. Damit erhรคltst du einen praktischen Viewer zum Erkunden der Daten und einen Editor fรผr SQL-Befehle. In meinem Video zeige ich dir, wie du das Addon SQLite Web verwendest, das du รผber den Addon-Store installieren kannst โ vorausgesetzt, du betreibst Home Assistant auf einem Raspberry Pi.
Je nachdem, ob du SQLite oder MariaDB verwendest, gibt es kleine Unterschiede in der SQL-Syntax. Achte also darauf, welchen Code-Schnipsel du kopierst/nutzt!
Bedenke auรerdem, dass du mit SQL-Befehlen auch Dinge kaputt machen kannst. Kopiere also nicht einfach irgendwelche SQL-Befehle, die du online findest, ohne zu verstehen, was sie tun. Die von mir bereitgestellten SQL-Befehle sind Select-Abfragen. Damit kannst du nichts kaputt machen โ sie lesen lediglich Daten aus.
In meinem Video erklรคre ich dir konkret, wie du fรผr eine Energie-Entitรคt den Verbrauch รผber einen beliebigen Zeitraum berechnest. Dazu wird per SQL-Select der Zustand der Entitรคt am Ende des Zeitraums ermittelt und der Zustand zu Beginn des Zeitraums abgezogen. Die Differenz ergibt dann den Zuwachs in diesem Zeitraum.
Du magst Home Assistant? Dann abonniere kostenlos meine Beitrรคge mit Tipps, Tricks und Anleitungen rund um Home Assistant:
Follow Home Assistant
Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders รผberlegen!
Du musst dabei natรผrlich die Entitรคt in meinem Code (sensor.shellyplug_s_dcbaf7_energy) durch deine eigene Entitรคt ersetzen. Ebenso kannst (und musst) du die Timestamps anpassen: fรผr den Beginn des Zeitraums (‚2024-09-01 00:00:00‘) und fรผr das Ende des Zeitraums (‚2024-12-01 00:00:00‘).
SQL-Code aus dem Video fรผr MariaDB:
SELECT ROUND((SELECT state FROM statistics INNER JOIN statistics_meta ON statistics.metadata_id=statistics_meta.id WHERE statistics_meta.statistic_id='sensor.shellyplug_s_dcbaf7_energy' AND created_ts < UNIX_TIMESTAMP('2024-12-01 00:00:00') ORDER BY created_ts DESC LIMIT 0,1) - (SELECT state FROM statistics INNER JOIN statistics_meta ON statistics.metadata_id=statistics_meta.id WHERE statistics_meta.statistic_id='sensor.shellyplug_s_dcbaf7_energy' AND created_ts > UNIX_TIMESTAMP('2024-09-01 00:00:00') ORDER BY created_ts ASC LIMIT 0,1),2) AS wert
SQL-Code aus dem Video fรผr SQLite (Home Assistant Default):
SELECT ROUND((SELECT state FROM statistics INNER JOIN statistics_meta ON statistics.metadata_id=statistics_meta.id WHERE statistics_meta.statistic_id='sensor.daily_shelly_energy' AND created_ts < strftime('%s','2024-12-01 00:00:00') ORDER BY created_ts DESC LIMIT 0,1) - (SELECT state FROM statistics INNER JOIN statistics_meta ON statistics.metadata_id=statistics_meta.id WHERE statistics_meta.statistic_id='sensor.daily_shelly_energy' AND created_ts > strftime('%s','2024-09-01 00:00:00') ORDER BY created_ts ASC LIMIT 0,1),2) AS wert
Weitere SQL-Befehle fรผr Home Assistant
Du brauchst einen anderen SQL-Befehl um individuelle Daten zu ermitteln? Schreibe was du benรถtigst als Kommentar und ich versuche sehr gerne dir dabei zu helfen. Solche SQL-Befehle werde ich dann auf dieser Seite fรผr alle anderen ergรคnzen!
Produktempfehlungen
Hi Gunter, du hast vollkommen Recht – sorry fรผr den Fehler! Ich habe es im Beitrag korrigiert! Vielen Dank fรผr deinen Hinweis!
Viele Grรผรe
Olli
Jetzt hat die Formularfunktion den Text „
...
“ entcodet 😉Hallo Olli,
ich denke im SQL Code fรผr SQLite ist ein Copy/Past Fehler 😉
… FROM
statistics
…… weitere
...
Viele Grรผรe
Gunter