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

logo

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

Essa integração salva dados constantemente. Se você usar a configuração padrão, os dados serão salvos na mídia em que o Home Assistant está instalado.

Home Assistant usa SQLAlchemy, que é um Object Relational Mapper (ORM). Isso significa que você pode usar qualquer back-end SQL para o gravador que seja compatível com SQLAlchemy, como MySQL , MariaDB , PostgreSQL ou MS SQL Server .

Tudo isso está na documentação do recorder. Mas você pode visualizar mais informações também no endereço a seguir: SQL - Home Assistant

Documento oficial do HA sobre MariaDB:

Para quem utiliza o Supervisor basta adicionar o Add-On!

Vá em Supervisor, vá até a Loja de Add-on e clique em MariaDB.

Clique em Instalar.

Com ele instalado vá até as Configurações do MariaDB.

Configure o Add-on 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
    password: senhasecreta
rights:
  - username: douglas
    database: homeassistant

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

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

Dentro do arquivo configuration.yaml coloque a seguinte linha:

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:

31b2b13719529e152aa0ecce13a4351b2fd9f26c

Dica:

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

recorder:
  db_url: mysql://douglas:senhaSecreta@core-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.

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.

Opcional:

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 Supervisor a instalação basicamente é através do comando pip install mariadb.

Vídeo:

8 Likes

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?

Acabei de instalar, funcionando bem na versão 106.2 :slight_smile:

Meu da Erro!

Provavelmente você configurou algo incorretamente.

Na mensagem mostra que você colocou 1core-mariadb

1 Like

Muito bom, @douglas!

Deu certo aqui também!!

Abraços,
José Henrique.

2 Likes

Consegui ! Obrigado, @douglas!

1 Like

Fala @douglas, tranquilo? Como está a vida na casa nova? Qual seria principal vantagem de migrar o banco de dados padrão para o MariaDB?

Abraços

1 Like

Muito bom dia a todos!

Perdoe-me a ignorância, mas o HA cria automaticamente as tabelas após configurado?

Cria, através do recorder

Essa integração salva dados constantemente. Se você usar a configuração padrão, os dados serão salvos na mídia em que o Home Assistant está instalado.

Home Assistant usa SQLAlchemy, que é um Object Relational Mapper (ORM). Isso significa que você pode usar qualquer back-end SQL para o gravador que seja compatível com SQLAlchemy, como MySQL , MariaDB , PostgreSQL ou MS SQL Server .

Tudo isso está na documentação do recorder. Mas você pode visualizar mais informações também no endereço a seguir: SQL - Home Assistant

Tutorial atualizado!

2 Likes

Boa tarde!
Ótimo tutorial, funcionou aqui! (eu acho, rsrs)
Como tenho a certeza que esta gravando os dados no MariaDB?

só uma dúvida, posso excluir a data base antiga?
a minha tem quase 1,8GB (deve ser o motivo de demorar tanto a inicialização do HA em máquina virtual)

database