Skip to content

Releases: rodolfomenardi/we-are-home

v0.1.0-beta.1 — We Are Home

Pre-release

Choose a tag to compare

@rodolfomenardi rodolfomenardi released this 13 Aug 15:33

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: info

Fluxo típico: trainget_profile / list_rulesstart → 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