Dank all der genialen Integrationen komme ich in meinem HomeAssistant an viele, viele Daten. Nun möchte ich gerne einige davon in eine SQL-Datenbank auf einem anderen Server schreiben. Am besten direkt, ohne eine REST-API (o.ä.) dazwischen zu betreiben.
Es geht darum, dass ich einen separaten SQL-Server habe, in dem diverse andere, Nicht-HA-Datenbanken laufen. In diesem SQL-Server gibt es eine Datenbank, wo ich in einer Tabelle entsprechend Werte speichern möchte, die über HA-Sensoren kommen.
Tja, da wirst du dir eine eigene Instanz bauen müssen um Daten von einer DB in die andere zu schaufeln. Mir ist keine solche Anwendung/Integration für HA bekannt.
Oder du stellst komplett auf eine externe Datenbank für HA um, vielleicht wird es dann einfacher die von dir benötigten Daten zu extrahieren. Muss aber nicht sein.
HomeAssistant kann von Haus aus mindestens 3 verschiedene Datenbanken benutzen:
Wenn du nichts sagst, wird eine interne SQLite-Datenbank benutzt, die auf dem Hauptverzeichnis von HA liegt.
Man kann eine MariaDB als App (früher PlugIn) installieren oder man benutzt eine eigene MariaDB, die irgendwo im Netz steht. Man muss dazu nur die Zugangsdaten der DB in der configuration.yaml eintragen.
Eine Postgres-Datenbank muss man selber bereitstellen - es gibt keine App. Sie lässt sich aber genauso einfach wie die MariaDB über die configuration.yaml integrieren.
Alle drei Datenbanken haben einen vergleichbaren Datenaufbau und man kann auf sie zugreifen: Auf die selbst bereitgestellten selbstverständlich (sind ja eigene Datenbanken) und bei den internen bzw. per App installierten muss man eventuell deren Netzwerk-Einstellungen modifizieren. Die SQLite müsste notfalls per sftp gehen; die ist aber im Multi-User-Zugriff sowieso nicht so prickelnd
Um mit dem Datenbank-Zugriff etwas anfangen zu können muss man sich allerdings etwas mit deren Struktur auseinandersetzen. Aber wenn man nur einige wichtige Daten extrahieren will hält sich der Aufwand in Grenzen.
Eine weitere - sehr schöne - Möglichkeit ist die zusätzliche InfluxDB, die man als HA-App installieren kann oder auch extern bereitstellen kann. Das ist eine Time-Series-Datenbank, die im wahren Leben gerne benutzt wird, um Messwerte aller Art chronologisch aufzuzeichnen. Sie wird ebenfalls über die configuration.yaml eingebunden und übernimmt dann automatisch alle neuen Daten, die in die normale Datenbank (egal welche) geschrieben werden. Sie hat ein für Menschen deutlich verträglicheres Datenformat und kann über eine SQL-ähnliche Sprache abgefragt werden. Ich benutze sie, um die Daten ewig aufzubewahren; meine PostgresDB ist über HA auf ein Vergessen nach 30 Tagen gestellt (Standard ist 8 oder 10 Tage). Man kann mit allen gängigen Programmiersprachen und vielen Grafik-Programmen (z.B. Grafana (auch als HA-App)) auf die InfluxDB zugreifen. Ich erstelle die meisten meiner Langzeit-Statistiken, die ich dann auch in HA darstelle, mit Python-Programmen mit MatPlotLib als Bibliothek. Die InfluxDB kann man natürlich auch sichern; eine Übertragung aller oder ausgewählter Daten in normale SQL-Datenbanken ist ebenfalls recht einfach.
Ich kann den “Umweg” über die InfluxDB nur wärmstens empfehlen.