Das charmante an Home Assistant ist, dass man nach der Installation auf einem Raspberry Pi zum Beispiel sofort loslegen kann das eigene Smarthome einzurichten. Nach der ca. 20minütigen Installation (was natürlich von der Rechenleistung der gewählten Hardware abhängt) kann es sofort losgehen! Home Assistant wählt automatisch alle Einstellungen, damit die Freude am Smarthome möglichst schnell beginnt.
Doch eine Sache ist hierbei, meiner Meinung nach, wirklich unglücklich umgesetzt und vermutlich auf Kurz oder Lang auch der Grund für Hardware-Probleme mit Home Assistant: Home Assistant benutzt im Hintergrund natürlich auch Datenbanken, um die ganzen Einstellungen und Messwerte zu speichern. Diese Datenbank wird bei der Nutzung eines Raspberry Pi natürlich auch auf der SD-Karte abgelegt. Da ein Raspberry Pi keinen eigenen Speicherplatz mitbringt (was den Pi unter anderem auch so günstig macht), gibt es für Home Assistant (um ehrlich zu sein) auch bei der Einrichtung fast keine andere Möglichkeit, als die SD-Karte für die Datenbank zu nutzen.
Grundsätzlich funktioniert dies auch ohne Probleme (sonst würde dein Home Assistant nach der Installation ja nicht einsatzbereit sein), jedoch liegt hierin, meiner Meinung nach, eine große Gefahr für alle größeren bzw. umfangreicheren Smarthome-Installationen:
Home Assistant: kaputte SD-Karte
Je mehr Smarthome-Komponenten du in Home Assistant einbindest, desto mehr Messwert wird Home Assistant auch in die Datenbank schreiben. Und jeder dieser einzelnen Schreibvorgänge macht
- deine DB und somit die SD-Karte voller und
- schaden Schreibvorgänge handelsüblichen SD-Karten, so dass der SD-Karten-Tod quasi vorprogrammiert ist.
Mir persönlich ist so etwas (zum Glück) noch nicht passiert. Ich nutze aber aktuell meine dritte Neuinstallation (aus verschiedenen Gründen), mit jeweils komplett neuer Hardware. Ich nutze Home Assistant seit etwas mehr als einem Jahr und hatte keine Probleme mit defekten SD-Karten, jedoch ist bei mir, wie gesagt, auch mittlerweile die dritte SD-Karte im Einsatz!
Du magst Home Assistant? Dann abonniere kostenlos meine Beiträge mit Tipps, Tricks und Anleitungen rund um Home Assistant:
Follow Home Assistant
Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders überlegen!
Home Assistant: Kein Speicherplatz auf der SD-Karte
Selbst wenn du vor einer kaputten SD-Karte keine Angst hast, solltest du dir Gedanken um den zur Verfügung stehenden Speicherplatz machen!
Warum? Ich nutze einige Z-Wave Komponenten wie Rollladensteuerungen und Thermostate. Und insbesondere die Thermostate liefern Unmengen an Messwerten, die natürlich alle in die Datenbank geschrieben werden. Wie viel das an Speicherplatz ausmacht, veranschaulicht folgendes (echtes) Beispiel:
Ich habe bei uns im Haus 7 smarte Thermostate installiert, die in Home Assistant eingebunden sind. Anhand der Snapshot-Sicherungen (jeweils komplette Sicherungen), kann ich sehr einfach erkennen wie viel Daten in einer bestimmten Zeit tatsächlich gesammelt wurden. Zwar handelt es sich bei Messwerten von Thermostaten faktisch nur um Timestamps und Temperaturen, jedoch verdeutlicht meine Beobachtung, wie viel Daten tatsächlich im Hintergrund gespeichert werden:
Was du im vorstehenden Screenshot siehst, sind die Snapshots (komplette Sicherungen), die Home Assistant erstellt hat. Die Thermostate habe ich ab ca. dem 24.02. in Home Assistant eingebunden und ab dem 10.03. waren alle 7 Thermostate in Betrieb. Zwischen dem 10.03. und dem 14.03. ist die Sicherungsdatei um ca. 40 MB angestiegen, also ca. 10 MB Zuwachs pro Tag. Diesen Zuwachs führe ich einzig auf die Thermostate zurück, da ich ansonsten keine Änderungen vorgenommen habe.
Home Assistant: Externe Datenbank nutzen
Damit die SD-Karte deiner Home Assistant-Installation auf einem Raspberry Pi geschont wird, empfiehlt es sich eine externe Datenbank für das Speichern von Messwerten etc. zu nutzen. Hier wiederum ist Home Assistant, meiner Meinung nach, wirklich vorbildlich unterwegs, da es möglich ist nahezu jede Datenbankart als externe Datenbank zu nutzen.
Aufgrund der bei mir vorhandenen Komponenten, habe ich mich für eine MySQL-Datenbank auf meinem Netzwerklaufwerk entschieden. Hierfür habe ich mich aus 3 Gründen entschieden:
- Ich möchte die Daten lokal liegen haben, also keine im Internet aufrufbare Datenbank nutzen (was möglich wäre). Hierfür wiederum habe ich zwei Gründe: Zum einen die zusätzliche Sicherheit einer lokalen Datenbank und zum anderen keine Abhängigkeit von einer aktiven Internetverbindung.
- Ich verfüge über ein Netzwerklaufwerk (NAS), welches das Betreiben einer MySQL-Datenbank sehr einfach ermöglicht.
- Sowohl das NAS als auch Home Assistant sind direkt an dem Router über LAN angeschlossen, so dass ein möglichst störungsfreier (und somit schneller) Datenaustausch möglich ist.
Home Assistant: Wie richtet man eine externe Datenbank ein?
Vorausgesetzt du verfügst über ein vergleichbares Setup wie ich, ist das Einrichten einer externen Datenbank für Home Assistant in wenigen Minuten erledigt:
- Bereite die Datenbank auf dem externen Medium (z. B. ein NAS) vor. Setze eine komplett neue Datenbank auf, die nur von Home Assistant genutzt wird. Lege hierfür auch einen neuen Datenbank-User an, der nur Zugriff auf die Home Assistant-Datenbank haben wird!
- Öffne die configurations.yaml und füge dort zwei Zeilen ein, die du an deine DB-Zugangsdaten und die IP deiner lokalen Datenbank entsprechend anpasst:
- Führe einen Neustart deiner Home Assistant-Instanz aus, damit Home Assistant mit der neuen Konfiguration die Arbeit wieder aufnimmt.
Ab sofort werden somit alle sonst auf der SD-Karte gespeicherten Messwerte etc. in der lokalen MySQL-Datenbank gespeichert:
Produktempfehlungen
Tach auch, danke für deine Ideen rund um HA hier im Blog. Einige werde ich mir sicherlich mal zu Gemüte führen. Als jemand, dessen System auch auf einem RPi (ein 4er) läuft, wollte ich dir als Alternative zum Auslagern der Datenbank vorschlagen: https://community.home-assistant.io/t/installing-home-assistant-on-a-rpi-4b-with-ssd-boot/230948
Da der RPi4 mittlerweile auch von einer via USB angeschlossenen SSD booten kann, hat man dann das beste aus beiden Welten. Enorme Schreibraten und eine noch bessere Latenz als via LAN. Mein Hauptaugenmerk lag aber da drauf, dass mir HA sonst bei Updates/Neustarts des NAS aussteigt und ich beides lieber auf einem Host haben will. Ich hatte ohnehin noch einen USB3-to-SATA Adapter von einem Samsung-SSD-Kit herumliegen, da kam das wie gelegen. Seit über einem Jahr problemlos im Einsatz und unfassbar schnell/responsive.
LG Daniel
Hi Daniel! Vielen Dank für dein Feedback und den Hinweis auf die andere Anbindung der DB! Schaue ich mir, bei Gelegenheit einmal an!
VG
Olli
Hallo Olli,
die Config wie oben beschrieben läuft einwandfrei mit einer lokalen Datenbank auf Synology mit MariaDB 10.
Anscheinend lässt Strato wirklich keinen Zugriff von aussen zu, ich konnte jedenfalls keine Verbindung herstellen.
Vielen Dank nochmal für die Hilfe!
Hallo Olli,
läuft bei mir leider nicht… ich hab in der configuration.yaml folgenden Eintrag:
(natürlich mit meinen Zugangsdaten zur DB)
recorder:
db_url: mysql://user:password@rdbms.strato.de/dbname?charset=utf8
Hast du vielleicht noch ne Portweiterleitung oder sowas zusätzlich machen müssen?
Vielen lieben Dank!
Hi Chris, ich kann dir die Syntax von Strato leider nicht im Detail prüfen. Kannst du denn mit einer SQL-Software darauf zugreifen (also HeidiSQL oder so)? Und erlaubt Strato überhaupt Zugriffe von außerhalb? Häufig ist das in der der Standards-Einstellung geblockt.
Ne Port-Weiterleitung? Meinst du damit deinen Router? Nein, das ist ja nur für eingehende Verbindungen. Die Home Assistant DB-Verbindung ist nur ausgehend! Das kann also keine Ursache sein!
Hi Oli,
du lässt die DB unabhängig auf der NAS laufen ( was verwendest du da) oder hast du die NAS als Speicher in den Rasp eingebunden und die mysql-Instanz läuft dort und legt nur die Daten auf die NAS? Was passiert wenn dein LAN/WLAN in dem Fall nicht verfügbar ist? Dann hast du zwar über Z-Wave und Zigbee vom WLAN unabhängige Protokolle aber dein Backbone ist vom Netzwerk abhängig oder?
Gruß
Jörg
Hi Jörg!
Zu dem Zeitpunkt hatte ich die DB auf meinem WD-NAS und dort phpMyAdmin im Einsatz. Per IP-Adresse hat sich Home Assistant dann mit dem NAS lokal verbunden. Das LAN kann ja eigentlich nur nicht verfügbar sein, wenn der Router keinen Storm hat. Selbst wenn der Router offline ist, klappt die DB-Anbindung so!
Mittlerweile läuft die DB aber sogar auf einem meiner Webspaces im WWW.
Theoretisch kann es durch offline-Zeiten zu einem nicht synchronen Stand kommen. Dies „korrigiert“ Home Assistant aber im Nachgang wieder. Und in Echtzeit konnte ich bislang keine Probleme der Funktionalität von Home Assistant beobachten deswegen.
Viele Grüße
Olli
Hi Olli,
ich versuche auch grade Homeassistant mit einer Datenbank bei Strato zu koppeln – leider spuckt HA „Operational Error“ aus. Kannst du mir nen Tipp geben, wie deine recorder-config in HA aussieht?
Ich komme leider nicht weiter…
Hi Chris,
in meiner recorder.yaml habe ich für die URL der DB lediglich folgende Zeile:
db_url: mysql://DB-ID:GEHEIMES_PASSWORT@EINEURL.DE/DB-ID?charset=utf8
Das ist natürlich noch um deine Daten anzupassen 😉
Hoffe das passt bei dir, viel Erfolg!
Olli