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
| Etapa | O que acontece |
|---|---|
| Recepção | A integração Xiaomi BLE recebe o peso por Bluetooth (adaptador no servidor ou proxy ESPHome) |
| Classificação | Uma 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ção | Um shell_command acrescenta a linha ao CSV da pessoa, fora de www |
| Sensores | Sensores template por evento guardam último peso, anterior e os 120 registros |
| Cena | O 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.