Releases: rodolfomenardi/we-are-home
Releases · rodolfomenardi/we-are-home
Release list
v0.1.0-beta.1 — We Are Home
We Are Home — Beta 1
Primeiro beta do simulador de presença inteligente para Home Assistant.
Funcionalidades
- Aprendizado automático: TimeProfiles com EMA (α=0.3), clustering weekday/weekend via Jensen-Shannon, regras de sequência A→B com distribuição Gaussiana de delay
- Simulação realista: Boost system com decaimento Gaussiano, sampling probabilístico, state capture/restore
- ConfigFlow + OptionsFlow: Seleção multi-entidade com 9 domínios suportados
- 5 serviços: start, stop, train, get_profile, list_rules
- Multi-instance: Múltiplas configurações com switches independentes
- 199 testes, 97.6% de cobertura
Fixes
- Corrige loop de tick nunca agendado: SimulationEngine.start() definia active=True mas nunca agendava a chamada periódica de tick() via async_track_time_interval — a simulação ficava "ligada" sem nunca enviar comandos. Agora start() agenda o loop usando o simulation_interval configurado e stop() cancela-o corretamente.
- Corrige OptionsFlow que não atualizava entry.data: OptionsFlow escrevia apenas em entry.options, mas o coordinator, simulator e serviços liam de entry.data. Mudanças de entidades (adicionar/remover) eram silenciosamente ignoradas. Agora o OptionsFlow atualiza entry.data diretamente via async_update_entry.
- Corrige novas entidades sem perfil inicial: Ao adicionar entidades via reconfiguração, o coordinator carregava perfis do storage mas não criava perfis para as novas entidades — ficavam inativas até acumular observações via incremental_update. Agora o coordinator deteta entidades sem perfil e constrói perfis iniciais do histórico completo.
- Limpeza total de entidades removidas: Ao remover uma entidade da configuração, seus perfis são apagados do storage e as sequence rules que a referenciam são removidas. O coordinator também se auto-corrige: no primeiro ciclo de aprendizado após qualquer reload, purga do disco perfis e regras de entidades que não estão na configuração atual (incluindo sobras de versões anteriores ao fix).
- Adiciona logging estruturado em todas as operações assíncronas: Logs INFO para ciclo de aprendizado, início/fim de simulação, comandos enviados e chamadas de serviço. Logs DEBUG para queries de histórico, persistência, e detalhes de cada tick. Formato key=value para facilitar filtragem.
- Corrige switch que não ativava a simulação: async_turn_on acessava coordinator.simulation (sempre None) em vez de chamar _get_simulation() para criar o SimulationEngine sob demanda
- Corrige serviços que falhavam quando chamados via script: handlers de serviço agora são registrados com wrapper que captura hass via closure, corrigindo TypeError ao chamar get_profile/list_rules a partir de scripts/automações
- Corrige ícone e logo na raiz do repo para exibição na UI do HACS
- Substitui vol.Any(int, None, Coerce(int)) por vol.Maybe(int) para serialização correta do schema no HA
- Adiciona licença MIT
Monitoramento
Adicione ao configuration.yaml para ver os logs:
logger:
default: warning
logs:
custom_components.we_are_home: infoFluxo típico: train → get_profile / list_rules → start → ticks a cada 30s → stop
Instalação
Adicione este repositório como custom repository no HACS, ou instale manualmente copiando custom_components/we_are_home/ para o diretório de configuração do HA.
Requer Home Assistant 2024.10.0+
Notas
Esta é uma versão beta. Reporte issues em https://github.com/rodolfomenardi/we-are-home/issues