Valores errados após migrar para MariaDB

Boa tarde a todos,

Depois de umas boas lutas e purges lá reduzi o tamanho da minha base de dados (que já tinha 35GB) e consegui converter para MariaDB.
Aparentemente tudo ficou bem. Consigo consultar o histórico, os dados do painel Energy, …

No entanto, desde aí, os sensores passaram a apresentar valores errados, como temperaturas muito fora do normal, o processador com utilização negativa, até valores de integrações externas como a da Renault, AccuWeather, …
Não fiz mais nenhuma alteração, todos estes sensores sempre funcionaram bem até à conversão para MariaDB.

Estes erros estão-me a causar varias falhas em automações, como por exemplo desligar o aquecimento central por ter ultrapassado a temperatura definida, desligar o circuito da AQS, gerar falsos alertas, …

imagem

imagem

imagem

Já alguém passou por isto?
Como resolver? Já procurei por soluções mas ainda não encontrei nada.

Já descobri a origem do problema.

Ao converter para MariaDB com o PIP sqlite3-to-mysql, as colunas last_changed_ts e last_updated_ts da tabela States ficaram como Float em vez de Double.
Com isso, os gráficos no Histórico apareciam “às escadas” e originava estes picos, que só ficavam registados na tabela Statistics_short_term.
Não sei bem qual o fluxo de dados na base de dados, mas aparentemente era só isso.

Infelizmente não consegui resolver! Converti as colunas para Double, mas passou a dar erros de integridade em índices secundários, tentei otimizar a tabela mas não deu, …

Apaguei tudo e comecei uma base de dados limpa e está tudo a funcionar bem!
Só tenho pena de ter perdido os dados históricos de Energia.

boa noite @Peixeiro, como fizeste a migração para MariaDB?

Olá Marcio,

Eu acabei por iniciar uma base de dados nova e perdi 12 meses de histórico!

O método que tentei usar e que li que deveria funcionar é via : https://pypi.org/project/sqlite3-to-mysql/

No entanto a minha BD sqlite já tinha mais de 30GB. Tentei migrar no RPI4 de 2GB de ram e dava erro, tentei migrar no meu PC e dava erro!
Acabei por conseguir a conversão numa máquina virtual lá no trabalho, com 20 CPUs e 40GB de ram (o máximo que lá tinha disponível para a VM). E foi um processo lento e mesmo com estas specs tive que usar o parametro:
–chunk INTEGER

No final tive o problema de as colunas last_changed_ts e last_updated_ts da tabela States ficaram como Float em vez de Double. Não o consegui resolver, fartei-me de conversões e desisti.

Aconselho a leitura do tópico no fórum do home assistant, em especial o tópico que indico, que aparentemente apresenta um método que funciona. Infelizmente já foi depois de eu ter andado de volta disso!


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade