Langzeitdaten & Analyse in Home Assistant mit Grafana & InfluxDB

Danke für den Hinweis mit den Data Sources, genau das habe ich gesucht um die unterschiedlichen Datenbanken bei InfluxDB in Grafana anzeigen zu können.

Kann man Werte in InfluxDB als Entität in HA zur Verfügung stellen?

Ich nutze EVCC zum Überschussladen des E-Autos von der Photovoltaikanlage bei meinen Eltern. Ich kann die Werte der Stromerzeugung vom Wechselrichter (WR) aber nur mit EVCC abrufen und in der InfluxDB zur Verfügung stellen. Das Addon von HA funktioniert nicht zum abrufen des WR. Für das Energie Dashboard fehlt mir nur noch der erzeugte Strom des WR, der aber ständig von EVCC in die InfluxDB übrtragen wird. Könnte ich den Wert aus der InfluxDB zur Verfügung stellen, hätte ich zwar eine gewisse Verzögerung drin, aber die Daten des WR werden durch EVCC ohnhin nur alle 30 sekunden abgerufen und die Abweichungen sind nur marginal und stören nicht.

Kann man im Nachhinhein die Datenbank in InfluxDB umbennen?
finde es einfach nicht :see_no_evil:

Moin,

ausführliche Dokumentation findest Du hier ⇒ Update a bucket in InfluxDB | InfluxDB OSS v2 Documentation

Du kannst aber auch Messungen, die in Bucket A gespeichert sind, mittels Flux Abfrage in ein neues Bucket B schreiben.

Ein wenig kannst Du Dir hier anlesen → Manage data processing tasks in InfluxDB | InfluxDB OSS v2 Documentation

VG
Bernd

P.S.: Vergessen, wenn es sich um eine influxDB V1 handelt, dann kann man die Datenbank nicht einfach umbenennen, habe da auf die schnelle nichts gefunden, da bleibt einem nur, die alte Datenbank zu exportieren, eine neue anzulegen und dann die Daten da wieder zu importieren, oder aber wie oben, sich ein influxDb V1 eine Continuous Querry bauen und in eine andere Datenbank schreiben ⇒ InfluxQL Continuous Queries | InfluxDB OSS v1 Documentation

1 „Gefällt mir“

falls noch jemand wissen möchte wie man Werte aus der InfluxDB als entität in Ha zu verfügung stellt, findet hier alles:

https://community.home-assistant.io/t/import-influxdb-data-as-sensor-in-home-assistant/216722

Hallo zusammen,
ich hänge mich hier mal mit dran.
Als erstes meinen lieben Dank für dein tolles Tutorial, ich habe in der Zwischenzeit sehr tief in HA, InfluxDB und Grafana eingearbeitet. Das einzige was ich nicht hin bekomme ist eine Monatsübersicht für 12 Monate, also je einen Balken pro Monat und enität, hat hier jemand eine Idee, wie ich dies lösen kann? Auch würde ich gerne eine absoluten Zeitraum z.B. 01.08.2023 bis 31.07.2024 in einem Grafen angeben, dies ist z.B. mein Abrechnungszeitraum.

Vielen Dank für eure Unterstützung.

Gruß Christopher

Moin,

willkommen im Forum.

Es ist besser, wenn Du uns zeigst, was Du schon hast, den, wenn ich Dir etwas zeige, dann ist das vielleicht falsch, da ich influxDB V2 nutze, Du aber vielleicht influxDB V1

Hast Du die SuFu schon mal bemüht, kam das Monatswerte in Grafana, ob es Hilft kann ich nicht sagen, nicht gelesen.

Z.B.



Wenn man das mit dem Panel/Dashboard abspeichert, sollte das für dieses Jahr stimmen, muss man dann halt einmal jährlich anpassen.
Mit Variablen sollte das aber auch gehen, nur noch keine Zeit, zum suchen :wink:

VG
Bernd

nicht ganz zum thema aber warum wird an der stelle InfluxDB verwendet?
ich habe von InfluxDB keine ahnung, aber alles was ich bis jetzt gemacht habe, versuche ich wenn es nur möglich auf mysql/mariadb zu setzen
an sich liebe ich datenbanken, weil wenn die daten ein mal da sind, kann man damit so vieles machen
ich habe ha, nach dem ich erfahren habe das man es mit mariadb nutzen kann, direkt auf mariadb umgestellt, auch wenn simon davon nicht begeistert ist
aber mariadb ist mit mysqllite denke nicht vergleichbar, weil es früher oder später langsamer wird. oder irre ich mich da?
und wenn man schon mariadb einsetzt, warum sollte man dann noch InfluxDB nutzen? ist ein zusätzlicher addon. hab übrigens mariadb auf einem anderem raspi laufen, die wird noch für andere zwecke missbraucht

Moin,

ich kann nur für mich sprechen, und ja, das ist etwas, wo man sehr gut streiten/diskutieren kann und wenn man n Personen fragt, dann bekommt man n+1 Antworten.
Weil influxDB eine sogenannte Time Series Datenbank und weil in einem Smart Home, vieles Zeitbasiert abläuft, ein Aktor hat um, das gemacht, jemand hat um das Haus verlassen, es soll zu einer bestimmten Zeit etwas passieren, usw. diese Aktionen können schnell sehr groß werden, nicht von den Daten aber vom auftreten, influxDB wurde extra für solche Datenmengen entwickelt.
Dass wir als Smart Homer noch weit weg sind, von diesen Datenmengen ist richtig, aber auch lang Zeitdaten, 5 - 10 Jahre Solardaten, wo Werte im Sekundentakt kommen, wollen später noch ausgewertet werden, genau dafür wurden Datenbanken wie influxDB usw. entwickelt.

Na ja, das ist ja auch gut so, da macht es auch keinen Unterschied, ob Du eine Relationale Datenbank wie mariaDB nimmst oder halt influxDB.
Ich möchte da auch nicht weiter drauf eingehen, aber in einer Standardinstallation wird die Relationale Datenbank mariaDB von Smart Home Systemen, egal ob HA oder ioB falsch genutzt, denn das Datenbankmodell ist nicht Relational aufgebaut, somit geht der größte Vorteil verloren.
Ich weiß, dass es auch für Relationale Datenbankmanager, wie z. B. Postgres Module gibt, die Time Series Nachrüsten, aber halt nicht im Standard vorhanden sind.

mysqlite, kenne ich nicht, Du meinst sqlite? sqlite ist ein sehr einfacher Datenbankmanager, der aber Millionenfach genutzt wird, denn auf den meisten Handys und Apps läuft eine sqlite Datenbank mit.
Generell, werden Datenbanken, wenn sie nicht gepflegt werden in der Performance schlechter, das trifft so gut wie jedes System, ich würde z.B. nicht auf eine Relationale Datenbank setzen, wenn ich einen Maschinenpark habe, wo ich Millionen Sensordaten pro Sekunde bekomme und die dann auch noch Auswerten muss, um Wartungspläne zu erstellen.

Ja, jeder so wie er möchte, kann :slight_smile:
Wenn Du damit zurechtkommst, dann hast Du alles korrekt gemacht. Ich setze Datenbanken so ein, dass es für den jeweiligen Anwendungsfall passt, wobei bei mir eher postgres und influxDB genutzt werden, auch alles schön getrennt in LX Containern unter Proxmox.

So, zum Schluss, hänge ich mal eine Internetseite hier an, diese gibt einen guten Überblick/Vergleich von Datenbankenmanagern → z. B. InfluxDB vs. MariaDB Vergleich

VG
Bernd

ja sqlite meinte ich auch, irgendwie hatte ich aber wohl mysql im kopf

danke dafür
da du ja scheinbar beide datenbanken kennst und benutzt hast, meine frage: hätte man nicht das selbe ergebniss auch unter mariadb bekommen, dnek nur andere syntax dann bei abfragen. ich denke das ein datensatz das selbe enthält, oder speichert influxdb es anders ab?

wenn man den vergleich so durchläuft, sind die meisten … also was datenbank kann … auf der mariadb seite. also mehr vorteile? mehr flexibilität?

Moin,

:slight_smile:

Selbstbeweihräucherung On
Ja, ich kenne, Adabas, DB2, Postgres, MariaDB, influxDB, sqlite, elstic und noch einige mehr Datenbankmanager, am meisten habe ich mit DB2 gearbeitet und privat mag ich Postgres, influxdb.
Selbstbeweihräucherung Off
Ne, Spaß bei Seite.

Was meinst du damit?

Die Werte, Ergebnisse, liegen in einer Datenbank, im Datenbankmodell, natürlich in identischer Form vor, nur halt je nach Datenbankmodell, sehen die Tabellen und Spalten, der Tabellen anders aus.

Ja, genau, die Meisten Relationalen Datenbanken nutzen SQL (ANSI) als Abfragesprache

db2 "select * from tabelle  "X" where ID = "Y" and date "2023-09-01""

Bei influxDB gibt es einmal influxQL

SELECT <field_key>[,<field_key>,<tag_key>] FROM <measurement_name>[,<measurement_name>]

und FLUX

data = from(bucket: "example-bucket")
    |> range(start: -1h)
    |> filter(fn: (r) => r._measurement == "example-measurement" and r._field == "example-field")

als Abfragesprache.

Ja, natürlich, liegen Werte gleich vor, eine Temperatur ist eine Temperatur und liegt nach der Abfrage auch wieder als Temperaturwert vor-

Anders, im Sinn von, das Datenbankmodell sieht bei influxDB und einer Relationalen Datenbank anders aus, dann ja, es wird anders abgespeichert.

Ja, wenn man nur nach dem Kriterium geht, wer hat den längeren :wink:

Das Beispiel hinkt vielleicht, aber ich hoffe, man versteht, was ich damit sagen will :slight_smile:
KleinWeich (Windows) ist jetzt mal MariaDB und konsole ist influxDB, wenn ich jetzt, nur einmal wissen möchte wie groß eine Datei ist, dann kann ich Windows starten, den Explorer öffnen, die Datei suchen, den Explorer so einstellen, dass alle Informationen zur Datei sehe oder mit Rechtsklick und dann Information. Wenn ich die Konsole nutze, ist das einfach nur

ls -la /pfad/zur/datei/dateiname

Was ich damit sagen will, es gibt Spezialisten und Eierlegendewollmilchsäue, influxDB, ist der Spezialist, nur für eine Sache entwickelt, dafür aber genau dafür optimal gerüstet.
Relationale Datenbanken, wie MariaDB, sind zwar flexibel, und für Anwendungsfälle gedacht, die weit über das Abspeichern einer Zeitreihe hinaus gehen, daher auch der Name Relational, ich kann im Datenbankmodell Beziehungen, Verknüpfungen von Tabellen oder Spalten herstellen, sodass ich Daten nicht doppelt speichern muss, z.B. Kundendaten und Verkäufe, ein Kunde hat aber mehrere Waren gekauft, jetzt kann ich fragen welche Kunden haben X gekauft, oder Kund A hat letztes Jahr welche Waren gekauft.

Im Fall von Time Series Daten schleppst du bei MariaDB einen gewaltigen Overhead mit, der bei influxDB nicht vorhanden ist.
Das Thema hier aber zu beleuchten, würde das Forum sprengen und gehört auch nicht hier her.

Lesestoff

Abschließend kann ich dazu nur sagen, du hast ja alles richtig gemacht, dich für eine Sache entschieden und du musst deswegen nicht ständig nach links und rechts schauen, in den Regionen in denen wir uns mit Hausautomatisierung befinden, oder einer Fotodatenbank, oder Musikdatenbank bewegen, ist das zugrundeliegende Datenbanksystem uninteressant, weil wir sowieso nur an der Oberfläche von MariaDB, influx, oder sonstigem kratzen :slight_smile:

VG
Bernd

P.S.: Wichtig ist glaube ich, nur zu verstehen, was die unterschiedlichen Datenbanksysteme ausmacht.

Danke für deine Rückmeldung.
Ich verwende InfluxDB Current version: 5.0.0, wird so zumindest im ADD-ons im HA angezeigt. Ist dies die Version, welche du meinst oder wo bekomme ich die korrekte Version her?
grafik
Der Link zum Artikel https://community.simon42.com/t/monatswerte-in-grafana/12282 welchen du oben gepostet hattest, beschreibt genau mein Problem aber leider keine Lösung

vielleicht hilft dir das weiter

Moin,

nein, das ist die Version des Add-ons, die Version von influxDB.

Macht aber nichts, Du kannst auch einfach ein Screenshot von Grafana machen.
Wenn Dein Dashboard so aussieht wie im verlinkten Artikel, dann nutzt Du influxDB V1.x da bin ich raus, da ich keine V1 mehr habe.

Wo klemmt es denn jetzt genau, da Du ja zwei Fragen in einem Post gestellt hast, an der Monatsberechnung, oder an dem Abrechnungszeitraum Aug. - Juli?

VG
Bernd

P.S.: kannst Du Dir die Monatswerte nicht als Karte in HA bauen?
Z.B.: so etwas:

Wie kann man das InfluxDB Addon dazu bringen, nur bestimmte Entitäten zu speichern und nicht den sonstigen Datenmüll zu speichern.

Ich habe versucht ohne exclude nur mit include, aber das funktioniert nicht.
Die Dokumentation sagt,

Only includes - Entity listed in entities include: include

influxdb:
  username: admin
  password: meinpasswort
  tags:
    source: HA
  tags_attributes:
    - friendly_name
  default_measurement: state
  include:
    entities:
      - sensor.bezug

Moin,

Ich habe gerade nicht die Dokumentation vor mir, aber Du musst, glaube ich, erst alles excluden und dann alles das includen was Du in influxDB speichern willst.

VG
Bernd

Danke fürs Feedback.
Das wäre natürlich ein super Krampf. Ich habe ca. 600 Entitäten. Wie soll das mit einem vernünftigen Aufwand funktionieren.

Moin,

Ich bin vielleicht noch nicht ganz wach, oder weil ich erst beim zweiten Kaffee bin, verstehe ich das nicht, was da ein Krampf sein soll?

 exclude:
    entities:
      - zone.home
      - sensor.watchman_last_updated
      - sensor.watchman_missing_entities
      - sensor.watchman_missing_services
      - update.watchman_update
    domains:
      - persistent_notification
      - person
  include:
    domains:
      - sensor
      - binary_sensor
      - sun

Schau mal hier ob Du noch etwas für Dich nützliches findest

Ich würde nicht auf Entitäten includen, da, wenn neue Geräte kommen, dann muss ich daran Denken, diese auch mit aufzunehmen, ich würde Domain, oder èntity_globs`nutzen.

VG
Bernd

Danke für den Link zu den Beispielen.
Ganz am Schluss steht ja eine Konfiguration, die ich haben will, aber leider funktioniert das bei mir so nicht.

Update:
Er loggt trotzdem alles.
Jetzt starte ich Home Assistant mal neu, vielleicht ändert das das Verhalten.

Der Neustart von Home Assistant hat mein Problem gelöst!!
Danke für die Rückmeldung.

:crayon:by HarryP: Zusammenführung Doppelpost