sistema pubblico delle presenze sviluppato per la nuova sede della Metro Olografix.
questo progetto è ispirato a BITS (Gitlab).
il progetto è diviso in due parti:
- ESP32 (S3 consigliato), correttamente testato su Xiao ESP32-S3.
- RGB LED Light Switch momentaneo / 3-6V
- 3 resistenze da 330ohm
Schematic:
il firmware è sviluppato utilizzando il framework ESPHome ed è modificabile qui.
per flashare il firmware sul proprio ESP32 è necessario avviare ESPHome in locale o su una istanza remota, per lanciarlo in locale:
git clone git@github.com:Metro-Olografix/sede.git
cd sede/hardware
docker compose up -dora, aprire http://localhost:6052 sul proprio browser e sarà già disponibile pulsante-sede.yaml nella schermata iniziale.
il backend è un semplice web server in Go, multi-tenant: una sola
istanza serve N sedi tramite prefisso di path /s/{slug}/.... Le rotte
"bare" restano come alias della sede di default (DEFAULT_SPACE_SLUG,
pescara) per compatibilità con i client già deployati (pulsante
ESP32, MCP server).
Endpoint per ciascuna sede:
GET /s/{slug}/status(alias:GET /status): rispondetrueofalsePOST /s/{slug}/toggle(alias:POST /toggle): cambia lo stato. RichiedeX-API-KEYdella sede.GET /s/{slug}/stats(alias:GET /stats): statistiche orarieGET /s/{slug}/spaceapi.json(alias:GET /spaceapi.json): metadati SpaceAPI v15GET /s/{slug}/ui(alias:GET /ui): heatmap, attiva solo seDEBUG=true
Le sedi sono dichiarate in config/spaces.yaml (vedi
backend/deploy/spaces.example.yaml): slug, nome, coordinate, API key
(supporta $VAR), chat/thread Telegram, metadati SpaceAPI. Il file è
caricato al boot e fa upsert sulle righe del DB per slug.
per lanciarlo in locale:
git clone git@github.com:Metro-Olografix/sede.git
cd sede/backend
docker build -t sede .
docker run -p 8080:8080 -e DEBUG=true -v ./database:/app/database sedeperchè non dare la possibilità agli LLM di sapere se la sede è aperta o chiusa?
aggiungere dentro claude_desktop_config.json:
{
"mcpServers": {
"mx-sede": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/metro-olografix/sede/mcp:latest"
]
}
}
}https://modelcontextprotocol.io/quickstart/server#set-up-your-environment
