2 minutes
HomeAssistant Migration von interner in externe InfluxDB
Meine HomeAssistant-Installation läuft seit Beginn an mit dem AddOn InfluxDB
. Da ich jedoch von den Daten der Influx-DB leichter ein Backup machen wollte, und auch insgesamt leichter Zugriff auf die InfluxDB haben wollte, kam die Notwendigkeit auf die Daten aus der internen in eine externe InfluxDB zu migrieren.
Das erste Problem war hierbei, Shell-Zugriff auf die InfluxDB zu bekommen. Hierfür gibt es die Möglichkeit Debugging-SSH-Zugriff auf das HomeAssistant-OS zu bekommen. Dafür muss man einen FAT oder ext4 formatierten USB-Stick mit Namen CONFIG
und dort abgelegt einer authorized_keys
Datei an den HomeAssistant anschließen und in der Shell
ha os import
ausführen. Da mein HomeAssistant in einer QEMU/KVM VM läuft, musste ich erst noch den USB-Stick an die VM durchreichen.
# cat usb-stick.xml
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x090c'/>
<product id='0x1000'/>
</source>
</hostdev>
# virsh attach-device hassio01 --file usb-stick.xml
Im Anschluss kann man über SSH-Port 22222 auf das System zugreifen.
ssh -p 22222 root@HA-IP
InfluxDB Data exportieren
Nun ist es ein leichtes sich mit dem Docker-Container der Influx-DB zu verbinden und die Daten zu exportieren.
# docker ps
...
f3226b4d4625 ghcr.io/hassio-addons/influxdb/amd64:4.6.0 "/init" 12 days ago Up 12 days 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp addon_a0d7b954_influxdb
...
# docker exec -it f3226b4d4625 bash
root@a0d7b954-influxdb:/# influx_inspect export -database HomeAssistant -retention autogen \
-out /share/influx_homeassistant_202305191035 -lponly \
-datadir /data/influxdb/data/ -waldir /data/influxdb/wal/
InfluxDB Data in v2 schreiben
Diese Datei kann man im Anschluss per scp auf den Client kopieren und per influx-cli in eine InfluxDB v2 schreiben.
% scp -O -P 22222 root@HA-IP:/mnt/data/supervisor/share/influx_homeassistant_202305191035 .
% influx write --bucket hassio --file influx_homeassistant_202305191035
HomeAssistant Config anpassen
Als abschließenden Schritt muss man nur noch die HomeAssistant-Config anpassen. Alt:
influxdb:
host: localhost
port: 8086
database: HomeAssistant
username: HomeAssistant
password: PASSWORT
max_retries: 3
default_measurement: state
include:
domains:
- sensor
neu:
influxdb:
api_version: 2
ssl: false
host: INFLUX_HOST_IP
port: 8086
token: API_TOKEN
organization: hassio
bucket: hassio
default_measurement: state
include:
domains:
- sensor
- binary_sensor
Nach einem abschließenden Restart des HomeAssistant sollte dieser nun seine Werte in die neue InfluxDB-Instanz schreiben und man kann sie wie bisher entweder mit dem Grafana-AddOn oder einem externen Grafana aufbereiten.