feat(ao-vivo): indicador ao vivo do sensor PIR

Cada disparo do PIR vira um evento SSE 'pir' (mesmo dentro do intervalo do
historico) e o painel mostra 'presenca agora' por 8 s em Ao vivo e no
Historico; /estado inclui o estado do PIR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
julio
2026-10-06 03:47:11 -03:00
co-authored by Claude Opus 5.5
parent 4b9e805801
commit 6029c79645
7 changed files with 70 additions and 4 deletions
+1
View File
@@ -192,6 +192,7 @@ class Historico:
if time.monotonic() - inicio < 2: # o pino "assenta" ao ligar o pull-down
continue
self.pir['ultimo'] = time.time()
self.publicar('pir', dict(ultimo=self.pir['ultimo'])) # todo disparo, ao vivo
self.registrar('pir', 'presença')
erro = (self.processo_pir.stderr.read() or '').strip()[:200]
except OSError as e: