Painel Bem-estar: Xiaomi Mi Scale 2 com perfis da família, avatar animado e IMC

Queria que a balança da casa deixasse de ser só um número no app e virasse um painel no Home Assistant: cada pessoa da família com seu histórico, sem precisar escolher o perfil antes de subir. O resultado é este painel, com uma cena animada que reage à pesagem em tempo real.

Todas as imagens usam dados fictícios.

✨ O que ele faz

  • Separa as pesagens por pessoa (dois adultos e uma criança) usando faixas de peso. Ninguém precisa tocar em nada antes de subir.
  • Grava cada pesagem num CSV por pessoa e mantém as últimas 120 nos atributos do sensor, sobrevivendo a reinícios.
  • Cena animada: ao subir na balança, o avatar caminha até ela e aparece a varredura de leitura; quando o peso estabiliza, surge o check de registrado e o perfil certo é selecionado sozinho.
  • IMC com a tabela de faixas adultas convertida em kg para a altura de cada pessoa, e a meta de referência (IMC 24,9). Para a criança, só o valor, sem faixas de adulto.
  • Gráficos de 7 e 30 dias com um ponto por pesagem real e histórico individual com data e hora.
  • Botão de prévia para ver a animação sem gravar peso, e layout responsivo para celular.

🔧 Como funciona

EtapaO que acontece
RecepçãoA integração Xiaomi BLE recebe o peso por Bluetooth (adaptador no servidor ou proxy ESPHome)
ClassificaçãoUma automação espera 3 s, confere o peso final e escolhe a pessoa pela faixa; ignora a repetição do mesmo peso em até 15 s
GravaçãoUm shell_command acrescenta a linha ao CSV da pessoa, fora de www
SensoresSensores template por evento guardam último peso, anterior e os 120 registros
CenaO peso não estabilizado liga o modo medindo; o evento de gravação mostra o resultado; um timer volta ao acompanhamento

Tudo fica em dois packages e uma visualização do painel, usando button-card e layout-card do HACS. Os avatares são SVG desenhados dentro do próprio cartão, sem imagens externas.

⚠️ Limitações

  • A identificação é só pela faixa de peso: pessoas na mesma faixa se confundem, e um adulto segurando a criança conta como adulto.
  • O IMC é uma referência geral (categorias adultas do CDC), não uma meta clínica. Para crianças, a avaliação é com o pediatra.
  • Os gráficos usam as últimas 120 pesagens de cada pessoa; o CSV guarda tudo, mas não há rotina para reimportá-lo.

📄 Código e instalação

Os packages, a aba e o passo a passo de instalação estão no GitHub:

Sugestões e melhorias são bem-vindas! Uma ideia para a próxima versão é confirmar a pessoa pelo celular quando o peso ficar perto do limite entre duas faixas.

2 curtidas