MariaDB SQL - Gravar informações em Banco de Dados

Neste tutorial venho compartilhar como configurar o banco de dados MariaDB no seu HA.

Documento oficial do HA sobre MariaDB

Para quem utiliza o Hass.io basta adicionar o Add-On

Após adicionar, o complemento do servidor MariaDB pode ser ajustado conforme sua preferência.
Abaixo um exemplo como você pode configurar o seu complemento.

{
  "databases": [
    "homeassistant"
  ],
  "logins": [
     {
      "username": "douglas",
      "host": "%",
      "password": "senhaSecreta"
    }
  ],
  "rights": [
    {
      "username": "douglas",
      "host": "%",
      "database": "homeassistant",
      "grant": "ALL PRIVILEGES ON"
    }
  ]
}

Após isso, basta clicar em SAVE e Iniciar o Add-On.

Home Assistant

Após o add-on instalado e configurado, é necessário configurar seu HA para começar a salvar as informações no banco de dados que acabou de ser criado.

Para isso vamos configurar o Recorder.

Dentro do arquivo configuration.yaml

recorder:
  db_url: mysql://douglas:senhaSecreta@192.168.0.200/homeassistant?charset=utf8
  purge_keep_days: 3 #aqui é opcional, define a frequência (em dias) a tarefa de limpeza é executada.

Resumindo:

mysql+pymysql://SERVER_IP/DB_NAME?charset=utf8

Após configurar o HA, você deve reiniciar. Após reiniciar você pode verificar o log, caso tenha ocorrido algum erro, irá aparecer neste log.

Se funcionar, o arquivo home-assistant_v2.db (que antes salvava o histórico) vai parar de ser alimentado, você também pode acessar e verificar o tamanho do arquivo e quando foi a última modificação.

Além disso você pode criar um sensor (sensor:) para obter a informação do tamanho da sua base de dados (MariaDB) e acompanhar conforme vai aumentando cada vez que você vai executando ações em seu HA.

Sensor

- platform: sql
  db_url: mysql://douglas:senhaSecreta@192.168.0.200/homeassistant?charset=utf8
  queries:
    - name: MariaDB Database 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

Basicamente é isso. Sem muito segredo. Se você usa o Home Assistant sem o Hass.io a instalação basicamente é através do comando pip install mariadb.

Dica

Caso não funcione, tente configurar desta maneira (troque o IP por core-mariadb):

recorder:
  db_url: mysql://douglas:senhaSecreta@1core-mariadb/homeassistant?charset=utf8
  purge_keep_days: 3 #aqui é opcional, define a frequência (em dias) a tarefa de limpeza é executada.

Na comunidade há alguns relatos de pessoas que só funcionaram dessa forma. Se no log aparecer algum erro, tente pesquisar pelo erro, normalmente tem alguém que já postou o mesmo problema e pode encontrar a solução.

3 Curtidas

Obrigado, configurei o meu usando seu tutorial!! Parabéns!

Segui o tutorial aqui e funcionou perfeitamente. tks

Bom dia, ótimo tutorial.

Estou com uma ideia de realizar algo assim porém com um trigger vinculando a localização para calcular o tempo de trajeto trabalho -> casa e casa -> trabalho.
Seriam alguns triggers:
Saindo de Casa (Dia + Horário Atual) -> Até o Trabalho (Dia + Horário Atual)
Saindo do trabalho (Dia + Horário Atual) -> Até Casa (Dia + Horário Atual)

Sabe se é possível?