O projeto é uma API python cujo objetivo é receber eventos via http e replicar os mesmo para o RabbitMQ.
O projeto é uma API python cujo objetivo é receber eventos via http e replicar os mesmo para o RabbitMQ, com algumas alterações e regras:
Exemplo POST /api/v1/zone-event
:
{
"zone": "HOME",
"person": "joao",
"action": "enter"
}
Esse evento é registrado em memória e enviado para o RabbitMQ, quando um evento do tipo action = leave
é recebido ele calcula o tempo em que a pessoa ficou na zone
e envia um novo evento para o RabbitMQ.
Exemplos de eventos enviados aqui
No meu caso essa API é chamada a partir do Home Assistant onde o mesmo monitora minha localização e quando entro em uma zona monitorada o mesmo dispara a requisição.
Python: É Python, da para fazer de tudo com ela.
FastAPI: Framework.
RabbitMQ: A solução de mensageria para comunicação assíncrona.
Testcontainers: Utilizado para fazer testes de integração.
Poetry: Um ótimo gerenciador de ambientes virtuais.
git clone https://github.com/alves-dev/life-assistant-link.git
cd life-assistant-link
poetry shell # para iniciar o ambiente
poetry install # para instalar as dependências
uvicorn app.main:app # para iniciar a API no ambiente de DEV
Ou acesse aqui para ver o projeto funcionando juntamente com outros componentes
Atualizado em: 2025-06-17 08:21