Influxdb import

Hallo!
Bin absolut neu in diesem Bereich, habe gestern mit etwas Mühe und dem Video von Simon meinen HA eingerichtet…

Jetzt bin ich mich am umsehen und ja, hab von Linux eine Plan…

Aber ich möchte so manche Daten in der Datenbank sammeln. Anzeige kann warten, was an Daten mal da ist, ist da.

Würde vorläufig gerne mal die Daten sammeln, welche über MQQT gesammelt werden. Kann man das auch pauschal machen und vielleicht manches dann ausschliessen?

Was mir halt wichtig wäre:
Wetterdaten
Wechselrichterdaten

Bin für Tips dankbar, wie sich das “vielleicht” einfach umsätzen lässt…

Lg Walter

Hallo Walter,

wie tief möchtest Du da einsteigen?

Vielleicht mal folgendes von mir.
Bei mir läuft HA als eine VM unter Proxmox und influxDB 2.0 als LCX, wie auch eine mariaDB und grafana. Alles auf einem terra i5 Prozessor.

Ich befülle meine InfluxDB über Homeassistant mit genau vorgegebenen Entitäten, da ansonsten die influxDB recht schnell voll laufen kann und viel Speicher benötigt.

Von daher wäre es hilfreich, welches influxDB du nutzt, die in HA integrierte (=influxDb 1.x) oder eine externe (1.x oder 2.x, denn das ist ein großer Unterschied) und was Du bisher wie konfiguriert hast.

Ich muss gleich sagen, ich bin weder ein influxDB, noch ein mariaDB Spezialist. Es hat mich einiges an Aufwand gekostet bis ich meine Wünsche realisiert hatte, helfe aber gerne soweit ich das kann.

Alles Gute

Claudius

Hallo Claudius,

nun ja, eigenlich sollte es die influxdb 4.7.0. im HomeAssistant sein.

Ich hab den HA auf nem Nuc installiert aber auch nur geschafft, da Simon das so super Schritt für Schritt erklärt hat…
und nun frag ich mich halt, wie ich die eine Datenbank löschen kann, angezeigt wird mir nichts.
Ob löschen und neu einrichten was bringt? Oder ob er wieder auf die alten Datenbanken zugreift?

LG Walter

Also du benutzt die influxDB nur für die Langzeitdatenspeicherung, Für die normalen HA-Daten wird weiterhin die interne SQL-LightDB genutzt. Meiner Meinung nach.
Mit der internen DB Konfig kenne ich mich leider nicht so aus, aber du hast ja sicherlich einiges in YAML eintragen müssen und da kannst du definieren was in die influxDB schreiben möchtest oder was auch nicht.

In meiner configuration.yaml steht folgendes

influxdb: !include influxdb.yaml #27.04.2023 aktiviert

in der influxdb.yaml steht folgendes.
Bei Dir sieht das eventuell komplett anders aus, da mein Setup für eine externe influxDB 2.0 ist. Die interne influxDB 1.x Konfiguration kann man ja in der Oberfläche machen. Aber es sollte auch bei Dir einen include: oder exclude: Bereich geben.

#Config für die influxDB - Achtung externe influxDB 2.0 Setup
api_version: 2
ssl: false
host: 192.168.178.252
port: 8086
token: #Das ist influxDB 2.0 Setting
organization: homeassistant
bucket: homeassistant
tags:
  source: HA
tags_attributes:
  - friendly_name
default_measurement: units
include: !include influxdb_include.yaml

Da ich meine Daten nicht pauschal in die influxDB laden will, habe ich keinen exclude-Bereich sondern alles in include: definiert. Darum habe ich diesen wiederum in eine eigene yaml-Datei ausgelagert und dort findest man dann folgendes:

entities:
  - input_number.korrekturwertsolarproduktion
  - input_number.strompreis
  - input_number.strompreis_in_cent_kwh
  - input_number.strompreiseinspeisung
  - input_number.strompreiseinspeisung_in_cent_kwh
  - sensor.ahoy_p_ac
  - sensor.ahoy_p_ac_total
  - sensor.ahoy_p_dc
  - sensor.ahoy_p_dc_1
  - sensor.ahoy_p_dc_2
  - sensor.ahoy_temperatur
  - sensor.ahoy_yieldday
  - sensor.ahoy_yieldday_1
  - sensor.ahoy_yieldday_2
  - sensor.ahoy_yieldtotal
  - sensor.ahoy_yieldtotal_1
  - sensor.ahoy_yieldtotal_2
  - sensor.buero_energy
  - sensor.buero_power
  - sensor.energy_daily
  - sensor.energy_monthly
  - sensor.energy_solar_daily
  - sensor.energy_solar_monthly
  - sensor.energy_solar_weekly
  - sensor.energy_solar_yearly
  - sensor.energy_weekly
  - sensor.energy_yearly
  - sensor.energy_zurueck_ins_netz_daily
  - sensor.energy_zurueck_ins_netz_monthly
  - sensor.energy_zurueck_ins_netz_weekly
  - sensor.energy_zurueck_ins_netz_yearly
  - sensor.epex_spot_de_average_price
  - sensor.epex_spot_de_highest_price
  - sensor.epex_spot_de_lowest_price
  - sensor.epex_spot_de_net_price
  - sensor.epex_spot_de_price
  - sensor.epex_spotpreis_in_ct_kwh
  - sensor.gefriertruhe_energy
  - sensor.gefriertruhe_power

Für mich hat dies den Vorteil, dass ich in HA auch mal neue Sensoren/Entitäten anlegen kann oder angelegt werden, die nicht sofort in die Langzeit-influxDB gespeichert werden. Erst wenn ich mir sicher bin nehme ich die Entität dann in die Datei influxdb_include.yaml auf. So versuche ich dem Datenchaos in der influxDB Herr zu bleiben. Unbenötigte Daten dort zu löschen ist nicht so einfach.

Wie gesagt, mit der internen influxDB kenne ich mich nicht so aus, aber vielleicht hilft Dir das trotzdem ein bisschen. Ich habe z.B. alle Sensoren weg gelesen die irgendwie “Steckdose AN/AUS”, “Licht AN/AUS” etc. beinhalten. Ich kann mir nicht vorstellen, dass mich in einigen Monaten noch interessiert ob gestern eine Steckdose an oder aus war und wann sie an- oder ausgeschaltet wurde. Für andere mag diese Information wiederum sehr wichtig sein.

Viel Erfolg
Claudius

Hallo Claudius!
Danke für die Hilfe!

Hab Influxdb gelöscht und neu installiert. Hat soweit geklappt…aber dann war da das Problem mit Name und Passwort. Hat gedauert bis das endlich geklappt hat. Keine wo oder was da falsch war…
Jetzt zeichnet er mal auf :smiley:

Muss man jeden Sensor extra angeben oder geht sowas auch mit Wildcard?? allias sensor.gefriertruhe.* ??

Oder alle Daten welche per MQQT eingelesen werden?

LG Walter

Das sollte auch mit wildcards gehen.
Du musst mal in den HA Hilfen schauen man kann auch alle sensoren frei schalten etc. Aber genau das wollte ich ja nicht.
Für die wildcards sollte es in den HA Hilfen auch Beispiele geben. Habe aber damit keinerlei Erfahrungen.
Alles Gute
Claudius

P.S. solely dass es so lange gedauert hat mit der Antwort. Ich bekomme anscheinend keine eMails mehr, wenn auf meine Nachrichten geantwortet wird. :flushed:

Hallo Claudius,

danke für den Tip mit den aufgelisteten Entitäten in einer include.yaml. Ich habe seit einem halben Jahr so gut wie alle Sensoren ect. aufgezeichnet und habe jetzt gut ein GB an Daten (Müll) zusammengetragen…

Nun habe ich die für mich wichtigen Entitäten vgl. Deiner Liste zusammengestellt und die bisherige Gruppenaufstellung aus der configuration.yaml gelöscht. Nun sollten (nach meiner Theorie) nach dem Neustart des Systems nur noch die in meiner include.yaml Datei aufgelisteten Entitäten geloggt werden. Leider ist das aber nicht der Fall… alle anderen Entitäten (auch die alten, die nun nicht explizit gelistet sind und die vorher durch die globale Einstellung aufgezeichnet wurden) werden weiter gesammelt…

Hast Du eine Idee, wie das beendet werden kann und wie ich nur noch die in der include.yaml aufgelisteten Entitäten weiter aufzeichen kann und die nicht benötigten entfernen kann?

Grüße

Thomas

Edit:
Ich habe nun testweise alle domains in den exclude-Bereich geschrieben → nun werden nur noch die Entitäten geloggt, die sich neu im include-Bereich befinden. :slight_smile:

kannst Du mal Deine yaml-Dateien hier als Code-Schnipsel posten?

User und Passwort bitte anonymisierten.

Deine Alten Daten bleiben natürlich im System gespeichert. Ich habe damals meine manuell sehr umständlich über die Kommandozeile gelöscht. Wie das mit der integrierten InfluxDB geht weiss ich nicht. Ich habe aber ziemlich gezittert, dass ich nicht zu viel lösche.

Wie hast Du HA neu gestartet?
Ich habe es komplett rebootet.
Also “System neu starten” ausgewählt. Dann werden auch alle Adens neu gestartet. Eventuell wird dies benötigt. Dann musst du etwas warten um zu sehen, dass keine neuen Werte für alte Einstellungen gespeichert werden. Es kann etwas dauern bis man das in der influxDB sieht.

Hast Du influxDB in einer eigenen VM oder LXC, dann kannst du über die Konsole in der die influxDB läuft folgendes versuchen.

influx delete \
--t TOKEN \
--bucket BUCKETNAME \
--org-id ORG_ID \
--start '1910-01-01T01:00:00Z' \
--stop '2030-12-31T23:00:00Z'  \
--predicate 'entity_id="gas"'

ohne TOKEN sieht das bei mir dann wie folgt aus. Damit habe ich es getestet und dann den korrekten bucketname eingesetzt. Eine umfangreiche Datumsrange, damit sich wirklich alles erwischt wird.
Mit folgendem Code wird alles gelöscht das im Zeitraum abgelegt wurde und als measurement=“Wh” stehen hat. Man kann als predicate alles einsetzen was man in der influxDB auch auswählen kann.
entity_id, measurement, field, friendly_name, source etc. Aber ACHTUNG. Es wird dann alles gelöscht was darunter fällt. Darum dieses klug wählen. Ich habe in der Regel mir die Mühe gemacht und jede entity_id einzeln gelöscht.

influx delete \
--TOKEN \
--bucket homeassistant \
--org-id f2bf41fa598d250b \
--start '1910-01-01T01:00:00Z' \
--stop '2030-12-31T23:00:00Z'  \
--predicate '_measurement="Wh"'

Hi Claudius,

bei mir sieht es wie folgt aus:

Auszug aus der configuration.yaml

influxdb:
  username: "NAME"
  password: "PSWD"
  tags:
    source: HA
  tags_attributes:
    - friendly_name
  default_measurement: state
   exclude: !include influxdb_exclude.yaml
   include: !include influxdb_include.yaml

Teil der include Datei influxdb_include.yaml

    entities:
      - scene.smart_water_timer_4
      - sensor.plenticore85_inverter_state
      - sensor.plenticore85_solar_power
      - sensor.plenticore85_ac_power
      - sensor.plenticore85_DC1_power
+ca 100 weitere Einträge

influxdb_exclude.yaml

    entities:
      - zone.home
    domains:
      - persistent_notification
      - sensor
      - binary_sensor
      - sun
      - light
      - cover
      - number
      - automation
      - calendar
      - camera
      - climate
      - device_tracker
      - image
      - lock
      - media-player
      - scene
      - script
      - select
      - switch
      - text
      - update
      - vacuum
      - weather

Diese Domains wurden bei mir alle in der Datenbank geloggt. Durch die Aufnahme im exclude-Bereich konnte ich hier die Aufnahme stoppen (eine Aufnahme der rein aufzuzeichnenden Entitäten im include-Bereich ist nicht ausreichend - es wird ohne Definition im exclude Bereich weiter fleißig aufgezeichnet). Ich hoffe, dass nun die Datenflut etwas eingedämmt wird. Bisher hat mein System ca 2GB in Summe an Größe gewonnen. Durch die influxdb sind täglich zig MB mehr dazu gekommen.
Wie ich sehe, hast Du hier einiges an Zeit beim Löschen verbracht - das werde ich auch vor mir haben… Super, dass Du den zu nutzenden Code mitgegeben hast - das macht es einfacher für mich :slight_smile:
Schade, dass es hier keinen konfortableren Weg gibt. Dadurch, dass beim mir so gut wie alles im HA aufgezeichnet wurde, ist er Aufwand schlussendlich imens…

Viele Grüße!
Thomas

Hallo Thomas,

bin leider im Urlaub und etwas unzuverlässig :wink:
Du hast, das sehe ich an Deiner configuration.yaml eine InfluxDB 1.x Da kenne ich mich leider gar nicht aus. Wie dort include und exclude funktioniert ist mir unbekannt. Ich verwende eine influxDB 2.x und da scheint es anders zu funktionieren.
Sobald man include: festgelegt hat wird nur das auch mitgeloged.

Ich drück Dir die Daumen, dass Du alles gut aufgeräumt bekommst.

Alles Gute
Claudius

P.S. ich saß auch 2-3h da um alles überflüssige zu löschen. Ich muss aber anmerken, dass auch meine Löschbefehle für influxDb 2.x sind. Ich habe keine Ahnung ob die auch unter influxDB 1.x funktionieren.

Hi Claudius,

eine Frage habe ich noch - wie hast Du die InfluxDB 2.x installiert? Bei mir unter Add-Ons finde ich nur die von mir installierte Version 1.x.

Ich wünsche Dir weiterhin einen schönen Urlaub :slight_smile:

Grüße

Thomas

Hallo Thomas,
ich habe HA auf einem terra (Baugleich NUC) in einer Proxmox-Umgebung installiert und 3 weitere virtuelle Maschinen (LXC) für mariaDB, influxDB und grafana dort drauf laufen. Bei den dortigen Installationsmöglichkeoten habe ich mich dann für eine influxDB 2.x entschieden. Mittlerweile soll es ja erste Versionen von 3.0 geben :flushed:

viel Erfolg
Claudius