ESPHome basierte, automatisierte Alarmauslösung über einen http request bei Alarmierung eines Melders in einer LGRA Ladestation.
Um automatisiert einen Alarm per http request (z.B. über DIVERA 24/7) auszulösen, wird der Relaiskontakt des Ladegeräts Swissphone LGRA Expert ausgewertet.
Das esp32-alarmlicht wertet zwei GPIO Eingänge aus. GPIO16 wird über ein Relais einer Funkfernbedienung angesteuert. Wird dieses Relais geschlossen, soll über ein Relais das Alarmlicht angesteuert werden.
GPIO18 wird über das Relais im Ladegerät des Melders (DME) gesteuert. Wird das Relais geschlossen, soll das Alarmlicht angesteuert werden und ein http request ausgelöst werden.
Das esp32-alarmlicht verfügt über drei Status LEDs:
- Auslösung des DME oder der Funkfernbedienung
- Drücken des Testknopfes
BUT1 - Wi-Fi Verbindung (kurzes Blinken alle
3 s)
Basis des esp32-alarmlicht ist ein ESP32-EVB-EA-IND Board mit einem ESP32-WROOM-32UE Modul.
Die Statusanzeige erfolgt über drei LEDs, die mit 3k Widerständen versehen sind.
Die beiden potenzialfreien Kontakte des Ladegerätes und des Funklichtes sind mit einem Pull-up Widerstand versehen und werden bei der Auslösung auf GND gezogen.
Die Stromversorgung des ESP32-EVB-EA-IND erfolgt über die Pins 2 und 4 des LGRA. Diese sind mit den Pads des unbestückten Steckers PWR2 des Olimex-Boards verbunden.
Für eine korrekte Funktion muss im LGRA eine Lötbrücke entfernt werden.
Vollständiges Schematic als KiCad Projekt oder als PDF in hardware/.
- ESP32-EVB-EA-IND
- BOX-ESP32-EVB-EA
- 3x LED
- Widerstände
- 2x
220R - 3x
3k - 2x
10k
- 2x
- DIN Stecker 5-polig male
- Plakette »Technisch fragwürdig«
Die Software basiert auf ESPHome. Das Konfigurationsfile ist alarmlicht.yaml.
Je nach Konfiguration wird bei Alarm- oder Testauslösung ein API-Request an DIVERA und ntfy gesendet. Das Verhalten wird über die Variablen global_send_* gesteuert. Eine Testauslösung erfolgt über BUT1 des ESP32-EVB-EA-IND.
Das File secrets.yaml enthält folgende Angaben:
- Wi-Fi Konfigurations- und Zugangsdaten
ntfyURLDIVERAAPI Key
Beispieldaten befinden sich in secrets-example.yaml. Diese Datei muss in secrets.yaml umbenannt werden und mit echten Daten gefüllt werden.
alarmlicht.yaml bindet folgende Dateien ein:
- on-but1-press.yaml:
BUT1wird betätigt - on-message-receive.yaml:
GPI016oderGPIO18werden aufGNDgezogen - send-alerts.yaml: Auslösen von
httprequests durch das Einbinden von- http-request-divera.yaml: Auslösen eines
DIVERAhttprequests - http-request-ntfy.yaml: Auslösen eines
ntfyhttprequests
- http-request-divera.yaml: Auslösen eines
Wird ein Alarm ausgelöst während keine Wi-Fi Verbindung besteht, wird der Alarm gespeichert und anschließend bei bestehender Wi-Fi Verbindung ausgelöst. Das Speichern geschieht über die globale Variable global_alert_pending.
Da der http request nicht immer erfolgreich ist, wird der Statuscode ausgewertet. Ist er nicht 200 und 429 wird mehrmals versucht, den http request zu senden. Das Verhalten und die maximale Anzahl der Versuche wird über die globalen Variablen global_divera_http_request_* gesteuert.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
esphome wizard alarmlicht.yaml
esphome run alarmlicht.yamlThe
esphome run <CONFIG>command is the most common command for ESPHome. It
- Validates the configuration
- Compiles a firmware
- Uploads the firmware (over OTA or USB)
- Starts the log view
esphome run alarmlicht.yamlThe
esphome logs <CONFIG>command validates the configuration and shows all logs.
esphome logs alarmlicht.yamlDas Ladegerät verfügt über einen fünfpoligen DIN-Stecker (female) mit folgender Belegung:
Quelle: Ladegerät (A)LGRA Expert (PDF)
Pin 4 ist mit der Stromversorgung des Netzteils verbunden (+5V), Pin 2 ist GND, Pins 1 und 3 werden potentialfrei durch ein Relais geschaltet.
Im Auslieferungszustand wird der Relaiskontakt geschlossen wenn der DME eine Meldung empfängt. Der Kontakt wird wieder geöffnet, wenn alle Meldungen quittiert wurden.
Über eine Lötbrücke wird das Verhalten des Relais konfiguriert. Wird diese Lötbrücke entfernt, so wird das Relais bei jedem Meldungseingang für ca. 10 s geschlossen, unabhängig vom Quittieren vorheriger Meldungen.
Für die Verwendung des Ladegerätes mit dem esp32-alarmlicht muss die Lötbrücke entfernt werden.
- https://esphome.io
- https://docs.ntfy.sh
- https://www.kicad.org
- https://api.divera247.com
- DIVERA Web-Schnittstelle (API Dokumentation)
- Olimex ESP32-EVB
- https://github.com/OLIMEX/ESP32-EVB
- ESP32-WROOM-32E & ESP32-WROOM-32UE Datasheet
Please use the projects issue tracker or create a GitHub pull request.
ESP32-Alarmlicht is licensed under CC BY-NC-SA 4.0



