L’add-on MariaDB: Database
MariaDB è un vero e proprio Database Management System (DBMS) realizzato da uno dei creatori di Mysql. Rispetto al DB standard di Home Assistant, MariaDB supporta più database, più utenti e le impostazioni di autorizzazione. Un DBMS così richiederebbe una buona dose di preparazione e competenza per essere installato, ma a noi viene in aiuto il sistema di “virtualizzazione” di Hass.io basato su Docker che rende disponibile come add-on MariaDB.
Quindi per installare MariaDB occorre seguire questi passi:
- installare l’addon attraverso il consueto pannello Hass.io/add-on store
- configurare l’add-on
- procedere alla opportuna configurazione in configuration.yaml
Di seguito la configurazione dell’add-on, ovviamente al posto di "password" inserite la password che più vi aggrada, ricordatevi anche del nome del DB che qui è stato configurato come "homeassistant":
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
{ "databases": ["homeassistant"], "logins": [ { "username": "hass", "host": "homeassistant", "password": "password" } ], "rights": [ { "username": "hass", "host": "homeassistant", "database": "homeassistant", "grant": "ALL PRIVILEGES ON" } ] } |
Come scritto nella guida del repack e ottimizzazione del DB di Home Assistant tra le opzioni del componente recorder c’è anche l’indicazione dell’URL del database, occorre quindi configurarlo, io ho preferito non esporre direttamente user e password nella configurazione ma utilizzare il file secrets.yaml, quindi sotto il componente recorder in configuration.yaml inserite:
1 2 |
recorder: db_url: !secret maria_db |
Se si desidera connettersi solo da Home Assistant, si può utilizzare core-mariadb come indirizzo host, per cui basta aggiungere la seguente riga alla configurazione del file secret.yaml
1 |
maria_db: mysql://hass:password@core-mariadb/homeassistant |
Veniamo alla domanda fondamentale, perché installare MariaDB? Un DBMS come MariaDB ha un senso se intendiamo separare il back-end con i dati e metterlo per esempio su NAS, c’è anche chi ha evidenziato dei miglioramenti nella velocità complessiva di HA, ma in un sistema all-in-one su Raspberry probabilmente i benefici non sono così eclatanti: posso però dirvi che finalmente sono spariti molti errori che mi ritrovavo nel log e anche questa per alcuni può essere un motivazione valida 🙂
Completata e verificata la configurazione, è utile inserire un sensore da inserire nella sezione sensor in configuration.yaml che monitorizzi la grandezza del DB che avete appena installato:
1 2 3 4 5 6 7 8 |
#https://www.home-assistant.io/components/sensor.sql/ - platform: sql db_url: !secret maria_db queries: - name: DB size query: 'SELECT table_schema "database", Round(Sum(data_length + index_length) / 1048576, 1) "value" FROM information_schema.tables WHERE table_schema="homeassistant" GROUP BY table_schema;' column: 'value' unit_of_measurement: MB |
9 risposte
Salve, articolo interessante. Ho alcune domande:
1) Seguendo la guida si crea un database solo per hassio ?
2) come posso portare il valore richiesto con la query sull’interfaccia?
3) avendo installato su un server Mariadn all’IP 127.0.0.1 e porta “pppp” posso collegarlo ad Hassio per avere sensori su alcune query di una basedati esterna? Se si come realizzo un config aggiuntivo? Dove trovo materiale per studiare questa integrazione?
Grazie
1) l’addon installa il DBMS e crea il DB solo per hassio
2) è un sensore che puoi visualizzare con lovelace o in maniera standard: sensor.db_size
3) non ho capito bene la domanda, cmq se intendi creare dei sensori su Hassio/HA basati su dati contenuti in DB su DBMS installati da qualche parte nella tua LAN, ti conviene guardare qui la sintassi: https://www.home-assistant.io/components/sensor.sql/
Ciao ma alla fine quali sarebbero i benefici di installare questo DB?
Ciao, ho “spostato” il recorder su un database mariadb
ora il problema è che gli orari salvati nel database li vedo con timezone UTC (se li inserisco su un grafico di grafana) mentre nel registro di hass.io li vedo in UTC+1
in hass.io ho già impostato il timezone corretto
come posso sistemare?
Ciao, ho il tuo stesso problema. Hai risolto?
Salva vorrei spostare il db su una unità usb, potresti indicarmi come fare, grazie
Cercando su Google: https://www.cribbstechnologies.com/index.php/home-assistant/moving-home-assistant-logs/
Sarebbe stato interessante anche una guida su come migrare i dati da SQLite 3 a mariadb perché altrimenti si perde tutto lo storico
Il db di home-assistant non é stato pensato per mantenere dati storici, per fare questo esistono db appositi come InfluxDB