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…
Hallo Olli,
ich denke im SQL Code für SQLite ist ein Copy/Past Fehler 😉
... FROM statistics
...
... weitere ...
Viele Grüße
Gunter
Jetzt hat die Formularfunktion den Text "...
" entcodet 😉
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
Hallo Olli
Über Grafana werden über eine InfluxDB für einen Sensor Werte angezeigt, die nicht sein können, da ich die Daten über ein input_select fülle.
Gefüllt wird dieser input_select über eine Automatisierung (theoretisch auch manuell) und dann in einen Sensor übernommen und in zweiten Sensor nur die 1. Stelle.
- name: Tibber Status Solvis SG-Ready state: >- {{states('input_select.solvis_sg_ready') }} unique_id: tibber_status_solvis_sg_ready - name: Tibber Status Solvis SG-Ready num state: >- {{states('input_select.solvis_sg_ready')|truncate(1, true, '') }} unique_id: tibber_status_solvis_sg_ready_num
Bei bestimmten Schaltvorgängen sehe ich in Grafana an stelle des von 4 auf 2 geschalteten Wertes aber 3 (einmal sogar 3,5 ???)
Die Anzeige der Sensoren in HA zeigen doch immer 2 an.
Um dieses Verhalten aufzuspüren wollte ich direkt in die DB schauen und habe deinen Beitrag gefunden. Doch meine Anpassung deines Beispiels erzeugt kein Ergebnis
SELECT ROUND((SELECT state FROM statistics INNER JOIN statistics_meta ON statistics.metadata_id=statistics_meta.id WHERE statistics_meta.statistic_id='sensor.tibber_status_solvis_sg_ready_num' AND created_ts < strftime('%s','2025-02-04 14: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.tibber_status_solvis_sg_ready_num' AND created_ts > strftime('%s','2025-02-04 11:00:00') ORDER BY created_ts ASC LIMIT 0,1),2) AS wert
(leider klappt das hier nicht mit Zeilenumbrüchen)
Siehst du evtl den Fehler in meinem Select?
Danke
Produktempfehlungen