Tenho andado as voltas a tentar optimizar a minha instance de HASSIO dado a escassez de recursos (RPI3B) .
O 1o passo foi passar o servidor de Node Red (que consome bastante memória) para uma box antiga que tinha aqui encostada e que está actualmente a correr Armlogic (S905) . Tendo em conta que só tinha 1GB de memória RAM disponível ganhei quase 25% de memória adicional .
Mas aquilo de que vos queria falar é de um processo extremamente simples mas muito útil para quem corre o HA através de um cartao SD, a migraçao da base de dados para uma VPS externa !
Neste caso, recomendo utilizarem uma instance Free Tier da AWS (grátis!), sao rápidas, tem disco SSD e é mais do que suficiente para o que queremos !
Entao passando aos passos :
-
Criar uma instance Free Tier na AWS cloud (eu escolhi Frankfurt dado a proximidade geográfica e menor latencia)
-
Configurar o security group da AWS para aceitar ligacoes externas na porta 3306 !
-
Ligar ao servidor através do painel da AWS ou SSH como preferirem e instalar o SQL (no meu caso optei por MARIADB)
Em Ubuntu :
sudo apt-get update
sudo pt-get install mariadb-server
-
Criar um utilizador e base de dados
-
Editar o ficheiro de configuracao Mysql para permitir o acesso remoto dos ips que quiserem na linha onde diz bind-address .
A localizacao pode mudar, por exemplo no caso de uma instance Ubuntu do AWS o ficheiro seria /etc/mysql/mariadb.conf.d/50-server.cnfTmb é importante ter atencao ao iptables , em princípio quando adicionamos a regra para a porta 3306 no ponto 2 esta já ficou acessível mas poderao ter que desactivar ou adicionar regra para que a porta aceite ligacoes externas dos vossos ips !
-
Tudo pronto a funcionar, agora basta editar a vossa configuracao do HA e em recorder por os dados da nova base de dados criada da seguinte forma :
db_url: mysql://user:password@1.1.1.1:3306/homeassistant?charset=utf8
E pronto, muito facilmente terao dado um salto em performance e fiabilidade sem terem de estar preocupados com corrupcao de bases de dados , de cartoes, etc .
Edit: Conforme comentado abaixo nos posts dos moderadores esta nao é uma soluçao ideal a longo prazo. Talvez a utilizaçao ideal seja sincronizar a vossa base de dados local com a base de dados externa criada na AWS de forma a terem sempre um backup online disponível !