Ha algum tempo atrás criei um controle de acesso que se comunicava com o servidor MQTT da Adafruit funcionou muito bem mas não era local, migrei ele para o HA mas o Código ficou muito bagunçado e para adicionar usuários era necessário usar um aplicativo android a parte. Resolvi recriar o projeto fazendo ele completamente compatível com o HA.
Para se conectar ao WiFi eh so segurar um botão o ESP ira gerar um access point onde voce loga com a senha 12345678 e entra com os dados do WiFi e também do servidor MQTT.
Entidades:
Eh possível enviar comando diretamente para o portão social e da garagem.
Sao três sensores de digital:
SESOC - Sensor externo do portão social.
SISOC - Sensor interno do portão social.
SIGAR - Sensor interno do portão da garagem.
Digital inscrita detectada - Fica ativa por 500ms quando uma digital cadastrada eh detectada;
Digital não inscrita detectada - Fica ativa por 500ms quando uma digital não cadastrada eh detectada;
Log de acessos - Possui a data horário nome do usuário e confiança da digital (pretendo deixar um card com o log de acesso de cada sensor para fácil visualização);
Ultimo detectado - Possui o nome do ultimo usuário que acessou.
Cadastrando digitais:
Todos os nomes de usuários ficam armazenados na EEPROM (flash) do ESP32 por isso a quantidade limitada de nomes (não queria usar EEPROM externa e a do ESP eh limitada em 4096 bytes, me arrependi no meio do caminho) mas ainda da pra aumentar;
1 Membro - Digitar nome com ate 13 caracteres para ser adicionado ou removido da lista de membros apertando os botões Adicionar membro ou Remover membro.
2.1 Membro - Possui a listagem de todos os membros adicionados selecione um para realizar uma ação.
2.2 Sensor - Selecione o sensor para adicionar ou remover digital;
2.3 Ação - Pode ser selecionado Cadastrar digital, remover digital ou remover todas as digitais.
2.4 Executar ação - realiza a ação programada.
4 - Apagar todos os dados - Apaga todos os membros, e todas as digitais salvas em todos so sensores, apaga tambem a rede WiFi salva e os dados do servidor MQTT, o ESP automaticamente gfera o access point para a entrada dos novos dados, deve ser apertado 3 vez em um intervalos de 5 segundos entre cada aperto para confirmar;
5 - Horário - Hora atualizada a cada 1 minuto (fornecida por um relógio de tempo real DS3231), basta modificar o campo para atualizar o horário;
6 - Dara - Data atualizada cada 1 minuto (fornecida por um relógio de tempo real DS3231), basta modificar o campo para atualizar o data;
7 - Dialogo - Apresenta informações e avisos durante o cadastro e remoção de digitais, também informa se o formato do horário ou da data enviado estava incorreto, mostra varias informações;
Diagnostico:
CRC Memoria - Ficara com o status problema caso os dados na EEPROM estejam corrompidos, sera necessário apagar todos os dados caso ocorra (ocorrera sempre depois da gravação do firmware em um novo ESP32)
Quantidade de membros salva - Informa a quantidade salva e a maxima permitida;
SESOC/SISOC/SIGAR estado - Informa se o sensor esta Ok, se ele parar de se comunicar ficara com status problema.
SESOC/SISOC/SIGAR digitais salvas - Quantidade salva e maxima permitida;
Sinal - Forca do sinal WiFi
Status - Ficara offline se nenhum dado for recebido em 90 segundos dai todas as variáveis ficarão indisponíveis.
Esses dados estao diretamente na pagina do dispositivo:
Estou fazendo alguns testes finais.
O circuito esta todo em protoboard terminando posto o esquema, código e video mostrando.