Sensorwerte in Influxdb in neue Datenbank kopieren

Hallo Gemeinde

Ich betreibe in HomeAssistant eine Influxdb Version 1.10.2 (vermutlich, ich weiß nicht, wo man das ablesen kann) und die Influxdb-App Version 5.0.2. Die Daten werden von HomeAssistant in die Datenbank “home_assistant” geschrieben. Ich verweise in der configuration.yaml auf “influxdb: !include influxdb.yaml”.
Der Inhalt der influxdb.yaml lautet:

`tags:`
`source: HA`
`tags_attributes:`
`- friendly_name`
`default_measurement: state`
`include:`
`entities:`
`- sensor.b2500_01_b2500_1_b2500_01_total_power_in`
`- sensor.b2500_01_b2500_1_b2500_01_total_power_out`
`- (das sind nur zwei der 34)`

Nun will ich von den mehreren hundert Sensoren, die bereits in die Datenbank “home_assistant” geschrieben wurden, 34 in eine neue Datenbank namens “home_assistant2” kopieren und künftig nur noch diese 34 sensordaten in die neue Datenbank “home_assistant2” schreiben lassen. Die DB “home_assistant” will ich dann wegen der Größe löschen. Wie kann ich das machen?
Ich habe schon viele KI´s gefragt. Die sage zwar alle fast dasselbe. Aber funktioniert tut nix.
Keine einzige Query-Abfrage hat irgendein Ergebnis angezeigt. Ich sehe immer nur “Success”
Was ich bereits gemacht habe:
In der Influxdb-App eine neue Database Namens “home_assistant2” angelegt.
Weiter bin ich nicht gekommen, weil ich nicht herausgefunden habe, wie meine 34 alten Sensordaten von der alten “home_assistant” in die neue “home_assistant2” Datenbank geschrieben werden können.

Ich hoffe, das Ganze ist nicht zu verwirrend.
Vielleicht kann mir da jemand von Euch helfen?

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)

Hallo Gemeinde

InfluxDB scheint in der Community ein Buch mit sieben Siegeln zu sein. Was auch nicht schlimm ist. Ich habe in den letzten Tagen gelernt, dass InfluxDB (zumindest für mich) unendlich kompliziert ist. Aber womöglich ist das bei allen Datenbanken so.

Ich habe jetzt einen anderen Weg gewählt. Ich habe “einfach” alle nicht benötigten Entitäten aus der aktiven Datenbank gelöscht. Natürlich hab ich vorher ein Komplettbackup gemacht.

Zusammen mit der KI Claude ist es gelungen. Ich habe ca. 750 Entitäten aus der DB entfernt. Mein Komplettbackup ist jetzt von etwa 1900 MB auf ca. 550 MB geschrumpft. Darum ging´s mir in erster Linie.

Claude hat mir aus dem ganzen Chat einen saubere Anleitung extrahiert und in einen Word-Datei gepackt. Leiderkann ich .docx hier nicht hochladen. Deshalb der ganze Text direkt hier darunter.

Ich bin zufrieden und betrachte die Sache als gelöst.

InfluxDB: Alte Sensordaten in Home Assistant löschen

Anleitung für Home Assistant OS mit InfluxDB 1.10 – Datenbank verkleinern durch Löschen einzelner Sensoren

Stand: 22. Juli 2026

1. Zwei Strategien im Überblick

Um eine InfluxDB-Datenbank in Home Assistant wieder zu verkleinern, gibt es grundsätzlich zwei Ansätze, die sich auch kombinieren lassen:

  • Retention Policy: Legt automatisch fest, wie lange Daten insgesamt behalten werden (z. B. 90 Tage). Alte Shards werden dann automatisch im Hintergrund gelöscht – ideal für eine dauerhafte, zeitbasierte Bereinigung aller Sensoren.

  • Gezieltes Löschen einzelner Sensoren (DROP SERIES): Löscht alle historischen Daten eines oder mehrerer bestimmter Sensoren komplett, unabhängig vom Alter – der Weg, der in dieser Anleitung im Detail beschrieben wird.

Retention Policy setzen (für alle Sensoren, zeitbasiert)

influx -database home_assistant

SHOW RETENTION POLICIES ON home_assistant

ALTER RETENTION POLICY "autogen" ON "home_assistant" DURATION 90d SHARD DURATION 1d DEFAULT

SHARD DURATION 1d sorgt dafür, dass alte Daten in kleinen, täglichen Blöcken automatisch fallengelassen werden, statt in einem einzigen großen Shard.

2. Zugriff auf die InfluxDB-Konsole unter Home Assistant OS

Bei Home Assistant OS läuft InfluxDB als Add-on in einem eigenen Docker-Container. Der direkte Weg über “docker exec” funktioniert im Terminal-&-SSH-Add-on standardmäßig nicht (Protection Mode, kein Docker-Zugriff). Der zuverlässige Alternativweg führt über die HTTP-API von InfluxDB mit curl, direkt aus dem normalen Terminal:

curl -s -G 'http://10.1.1.24:8086/query' \

--data-urlencode "db=home_assistant" \

--data-urlencode "u=username" \

--data-urlencode "p=DEIN_PASSWORT" \

--data-urlencode "q=SHOW MEASUREMENTS"

Die Zugangsdaten (Benutzername/Passwort) findet man entweder in der Konfiguration des InfluxDB-Add-ons (Reiter “Konfiguration”) oder im influxdb:-Abschnitt der Home-Assistant configuration.yaml.

3. Wichtige Erkenntnis: Measurements sind Einheiten, nicht Domains

Bei der Standard-Konfiguration der Home-Assistant-InfluxDB-Integration ist das “Measurement” nicht die Domain (z. B. sensor), sondern die Einheit des jeweiligen Sensors – also z. B. °C, kWh, %, MB, Wh, hPa. Das erklärt, warum eine Abfrage wie SHOW TAG VALUES FROM “sensor” WITH KEY = “entity_id” leer bleibt.

Praktischer Trick: Lässt man FROM “…” einfach weg, wird über alle Measurements gleichzeitig gesucht:

curl -s -G 'http://10.1.1.24:8086/query' \

--data-urlencode "db=home_assistant" \

--data-urlencode "u=username" \

--data-urlencode "p=DEIN_PASSWORT" \

--data-urlencode 'q=SHOW TAG VALUES WITH KEY = "entity_id"'

Das gilt genauso beim späteren Löschen mit DROP SERIES: Ohne FROM-Klausel wird die Serie in allen Measurements (Einheiten) gelöscht, in denen der entity_id-Tag vorkommt.

4. Liste der zu löschenden Sensoren zusammenstellen

Die Ausgabe von SHOW TAG VALUES WITH KEY = “entity_id” liefert alle Entity-IDs in der Datenbank. Aus dieser Liste wählt man die Sensoren aus, die komplett gelöscht werden sollen – am einfachsten, indem man die reinen Entity-Namen (ohne Anführungszeichen, ohne “entity_id”) in eine Textdatei im /config-Verzeichnis schreibt, z. B. mit dem File-Editor-Add-on:

/config/entities_to_delete.txt





device_tracker_iphone_von_hanshiasl_app_battery

disk_pve_ssd_m_2_pcie3_256gb_innovationit_verschleiss

evcc_wallbox_01_vehicle_soc

qemu_win11_101_cpu_auslastung

…

(ein Entity-Name pro Zeile)

5. Sensoren gezielt löschen (DROP SERIES)

Statt jede Entität einzeln von Hand einzutippen, liest ein kleines Bash-Skript die Liste aus der Textdatei und löscht jede Entität einzeln per DROP SERIES. Wichtig: Da Copy & Paste von mehrzeiligem Code im Browser-Terminal fehleranfällig ist (erste Zeichen gehen oft verloren), wird das Skript nicht direkt ins Terminal eingefügt, sondern als Datei über den File-Editor angelegt.

Schritt 1: Skript-Datei anlegen

Im File-Editor-Add-on eine neue Datei /config/delete_entities.sh anlegen mit folgendem Inhalt:

while read -r entity; do

[ -z "$entity" ] && continue

echo "Lösche: $entity"

curl -s -XPOST 'http://10.1.1.24:8086/query' \

--data-urlencode "db=home_assistant" \

--data-urlencode "u=username" \

--data-urlencode "p=DEIN_PASSWORT" \

--data-urlencode "q=DROP SERIES WHERE \"entity_id\" = '$entity'"

echo ""

done < /config/entities_to_delete.txt

Hinweis: -XPOST wird verwendet, weil DROP SERIES als reine GET-Abfrage (-G) von InfluxDB als veraltet markiert wird (“deprecated use of DROP SERIES … in a read only context, please use a POST request instead”).

Schritt 2: Skript ausführbar machen und starten

Im Terminal (kurze, unkritische Befehle, kein riskantes Copy & Paste von Mehrzeilern nötig):

chmod +x /config/delete_entities.sh

Das Skript gibt für jede Entität eine Fortschrittszeile (“Lösche: …”) aus und führt die Löschung einzeln aus.

Schritt 3: Kontrolle

curl -s -G 'http://10.1.1.24:8086/query' \

--data-urlencode "db=home_assistant" \

--data-urlencode "u=username" \

--data-urlencode "p=DEIN_PASSWORT" \

--data-urlencode 'q=SHOW TAG VALUES WITH KEY = "entity_id"' \

| grep -o '"entity_id","[^"]*teil_des_namens[^"]*"'

Kommt hier kein Treffer mehr, ist die jeweilige Entität erfolgreich entfernt.

6. Praktische Tipps & Stolperfallen

  • Terminal & SSH-Add-on: Ohne Docker-Zugriff (Protection Mode) funktionieren docker ps / docker exec nicht – die HTTP-API mit curl ist der zuverlässige Alternativweg.

  • Fehlende erste Zeichen beim Einfügen: Browserbasierte Terminals (ttyd/xterm.js) verlieren beim Copy & Paste manchmal die ersten ein bis zwei Zeichen. Abhilfe: kurz warten nach dem Klicken ins Terminal, oder vor dem Einfügen ein Dummy-Zeichen tippen und danach wieder löschen.

  • Hängender > -Prompt: Erscheint nur noch “>”, fehlt ein schließendes Anführungszeichen. Mit Strg+C abbrechen und neu versuchen.

  • Mehrzeilige Befehle (z. B. while-Schleifen) besser als Skript-Datei über den File-Editor anlegen statt direkt ins Terminal einzufügen – dort funktioniert Copy & Paste zuverlässig.

  • “Permission denied” beim Ausführen eines Skripts: Datei ist noch nicht ausführbar – einmalig chmod +x Dateiname.sh ausführen.

  • DROP SERIES löscht Daten und Metadaten vollständig (im Gegensatz zu DELETE, das nur Datenpunkte entfernt, Tag-Werte aber sichtbar lässt).

  • Speicherplatz wird nach dem Löschen nicht sofort sichtbar frei (Tombstone-Mechanismus) – ggf. hilft ein Neustart des InfluxDB-Add-ons, damit die Kompaktierung durchläuft.

7. Nachbereitung

  • Hilfsdateien /config/entities_to_delete.txt und /config/delete_entities.sh können nach erfolgreicher Löschung wieder entfernt werden.

  • Zur Kontrolle stichprobenartig mit SHOW TAG VALUES prüfen, ob die gelöschten Sensoren wirklich verschwunden sind.

  • Bei Bedarf InfluxDB-Add-on neu starten, damit belegter Speicherplatz tatsächlich freigegeben wird.