Wer meinen Blog verfolgt, weiß: An meiner Haustür haben in den letzten Jahren schon einige Kameras und Klingeln ihren Dienst getan. Angefangen hat es mit einer Ring, danach kam eine Eufy, zuletzt eine Reolink – allesamt akkubetriebene Video-Türklingeln.
Und bei allen dreien bin ich am Ende über den gleichen Punkt gestolpert: den Kompromiss zwischen Bewegungsempfindlichkeit und Akkulaufzeit. Gerade zur kalten Jahreszeit, in der Akkus ohnehin schwächeln, und gerade an einer belebten Straße mit Durchgangsverkehr wird das schnell zur Zwickmühle. Stelle ich die Bewegungserkennung empfindlich ein, ist der Akku ratzfatz leer, weil jedes vorbeifahrende Auto und jeder Passant ein Event (PIR) auslöst. Drossle ich sie, verpasse ich womöglich genau die Bewegung, die mich interessiert hätte. So richtig glücklich macht das auf Dauer nicht.
Irgendwann war für mich klar: Ich will raus aus diesem Kompromiss – und zwar mit Dauerstrom. Wie ihr in meinem letzten Artikel gelesen habt, hängt an der entscheidenden Ecke inzwischen eine fest verkabelte Reolink TrackFlex Floodlight: Strom aus der Leitung, kein Akku, kein Nachladen, dauerhaft da.
Nur: Eine Kamera sieht zwar Bewegung, aber sie weiß nicht, wann tatsächlich jemand klingelt. Und genau dieses „Es hat geklingelt“-Signal wollte ich zurück in Home Assistant holen. Klingt nach einer Kleinigkeit. War es nicht. 🙈
Was ich eigentlich wollte
Die Anforderung war schnell formuliert, aber genau da lag der Haken:
Home Assistant sollte mitbekommen, wenn jemand am ganz normalen Klingeltaster drückt – für Push-Benachrichtigungen, Ansagen, was auch immer. Aber die Klingel sollte dabei um jeden Preis eine ganz normale Klingel bleiben. Heißt: Wenn Home Assistant, das WLAN oder irgendein Bastel-ESP mal streikt, muss es an der Tür trotzdem bimmeln. Einen Single Point of Failure lasse ich mir bei etwas so Grundlegendem wie der Türklingel nicht ins Haus.
Mit dieser einen Bedingung waren schon die halben „smarten“ Lösungen raus.
Was ich alles ausprobiert habe
Bevor ich bei der finalen Lösung gelandet bin, habe ich mich durch ein paar Sackgassen gearbeitet. Der Vollständigkeit halber – und weil euch das vielleicht den ein oder anderen Fehlversuch erspart:
- ❌ ESPHome-basierte Doorbell von Zuidwijk: Cooles Projekt, keine Frage. Aber bei dieser Art Lösung läuft das Klingeln über den ESP bzw. über die Smart-Home-Zentrale. Gibt es ein Problem mit ESPHome oder dem Smart Home, klingelt es nicht mehr. Genau das wollte ich nicht.
- ❌ Zigbee-Vibrationssensor am Gong: Sollte über die Erschütterung des Gongs auslösen. In der Praxis unzuverlässig – mal löste er aus, mal nicht.
- ❌ Zigbee Aqara Tür-/Fensterkontakt im Gong-Gehäuse: Der Reed-Kontakt sollte durch den beweglichen Anker des Gongs schalten. Das war schon besser, aber eben nicht verlässlich genug: mal blieb der Status hängen, mal wurde ausgelöst, obwohl gar niemand geklingelt hat. Für eine Türklingel? Nicht gut genug.
- ❌ ESP32 mit Optokoppler / Koppelrelais: Funktioniert prinzipiell, war mir aber zu viel Gebastel und zu fummelig für eine saubere Lösung im Sicherungskasten.
- ❌ Shelly Plus Uni: Betrieben wird er mit AC – messen kann er aber nur DC, nicht AC. Ergebnis: gegrillt. Mein Fehler, Amazon-Retoure. 🙂
- ✅ ESP8266 D1 Mini mit ESPHome und einem Eltako-Relais: Und das ist am Ende die Lösung geworden, mit der ich rundum zufrieden bin.
Die Lösung: Wemos D1 Mini + ESPHome + Eltako R12-100-12V
Der Trick an der Sache ist eigentlich unspektakulär – und genau deshalb so robust: Der Klingelkreis bleibt komplett eigenständig. Taster → Klingeltrafo → Gong. Der Gong bimmelt also ganz normal, völlig unabhängig von Home Assistant, ESPHome oder WLAN.
Parallel zum Gong hängt die Spule eines Eltako R12-100-12V. Das ist ein elektromechanisches Schaltrelais für die Hutschiene mit einem potenzialfreien Schließer. Sobald jemand klingelt, liegen die 12 V an, das Relais zieht an und schließt seinen Kontakt. Und dieser trockene Kontakt hängt am GPIO des ESP8266 D1 Mini. ESPHome erkennt das Schließen und meldet einen binary_sensor an Home Assistant.
Das Schöne daran: Home Assistant weiß jetzt Bescheid, wenn es klingelt – aber selbst wenn HAOS mal steht oder der ESP abraucht, klingelt es an der Tür trotzdem. Genau so wollte ich das.
Ein Wort zur Spannung, dann ist’s auch gut: Wichtig ist nur, dass die Steuerspannung des Relais zum Klingeltrafo passt. Bei mir sind das 12 V, also das R12-100-12V. Wer einen 8-V-Trafo hat, nimmt entsprechend die 8-V-Variante. Mehr Gedanken muss man sich da nicht machen.
Wichtig vorweg: In den Sicherungskasten gehört eine Elektrofachkraft. Ich beschreibe hier ganz bewusst keine Verdrahtung und keine Klemmenbelegung – das ist Sache vom Elektriker. Mir geht es hier ums Prinzip und vor allem um die Software-Seite.
Verwendete Komponenten
- ESP8266 D1 Mini – Mini-NodeMcu mit WLAN (Micro-USB)
- Eltako R12-100-12V – elektromechanisches Schaltrelais, 1 Schließer, Reiheneinbau (Hutschiene); die Spannungsvariante passend zum eigenen Klingeltrafo wählen
- MEAN WELL Netzteil 12W 5V 2,4A – Stromversorgung des ESP8266
- USB-C Pigtail – für 5V Netzteil
- USB-C > Micro-USB Adapter – USB-C Pigtail zukunftssicherer als reines Micro-USB
- der vorhandene Klingeltrafo / Netzteil (bei mir 12 V AC)
- der vorhandene Gong





Die ESPHome-Konfiguration
Kommen wir zum spannenden Teil – der Software. Auf dem D1 Mini läuft ESPHome, die komplette Konfiguration ist erfreulich kurz. Hier meine YAML:
esphome:
name: azdelivery-d1-mini
friendly_name: AZDelivery D1 Mini
name_add_mac_suffix: true
esp8266:
board: d1_mini
logger:
api:
encryption:
key: "XXX"
ota:
- platform: esphome
password: !secret azdelivery_d1_mini__ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: D1 Mini Fallback
password: fallback1234
captive_portal:
binary_sensor:
- platform: gpio
name: "Haustürgong Flur EG"
id: haustuer_klingel
device_class: sound
pin:
number: D5
mode:
input: true
pullup: true
inverted: true
filters:
# Entprellung, damit ein Klingeldruck nicht zig Events erzeugt
- delayed_on: 30ms
- delayed_off: 150ms
on_press:
- logger.log: "Klingel gedrückt, Haustürgong wurde ausgelöst"
Ein paar Worte dazu, ohne dass daraus eine Schritt-für-Schritt-Anleitung wird:
- Der Kontakt hängt an D5 (GPIO14) gegen GND. Mit
pullup: trueundinverted: trueist der Pin im Ruhezustand HIGH und meldet „aus“ – erst wenn das Relais schließt und den Pin auf Masse zieht, wird daraus ein „erkannt“. - Die Entprellung (
delayed_on/delayed_off) sorgt dafür, dass ein einzelner Klingeldruck nicht als Salve aus zig Events durchrauscht. - Als device_class habe ich
soundgewählt – in Home Assistant taucht der Sensor dann als „Geräusch erkannt“ auf. Einen dedizierten „Türklingel“-Typ gibt es in HA leider nicht. - Das
on_press-Logging ist reiner Komfort fürs Debuggen.
Sobald der ESP läuft, erscheint der binary_sensor direkt in Home Assistant – ohne Gefummel, ganz normal über die ESPHome-Integration.

Push-Benachrichtigung mit Kamerabild
Der binary_sensor allein macht ja noch keine Benachrichtigung. Ich wollte nicht einfach nur ein „Es hat geklingelt“ aufs Handy, sondern direkt auch sehen, wer vor der Tür steht.
Dafür wird im Moment des Klingelns ein Schnappschuss der Haustürkamera gemacht und an die Push-Mitteilung angehängt. Per Force Touch / Haptic Touch wird das Bild dann groß. Der Clou dabei: Ohne diesen Schnappschuss würde beim Aufziehen immer das aktuelle Live-Bild geladen – und das zeigt eben nicht mehr den Moment, in dem geklingelt wurde. Der Schnappschuss friert genau diesen Augenblick ein.
alias: Benachrichtigung - Haustürgong Haustürklingel
description: ""
triggers:
- trigger: state
entity_id: binary_sensor.azdelivery_d1_mini_hausturgong_flur_eg
to:
- "on"
from:
- "off"
conditions:
- condition: template
value_template: |
{{ this.attributes.last_triggered is none
or (now() - this.attributes.last_triggered).total_seconds() > 30 }}
actions:
- action: camera.snapshot
target:
entity_id: camera.kamera_haustur_schnappschusse_in_standardauflosung
data:
filename: /config/www/reo_klingel_{{ snapshot_ts }}.jpg
- action: shell_command.cleanup_reolink_snapshots
metadata: {}
data: {}
- action: notify.mobile_app_nh_iphone
data:
title: 🛎️ Haustürklingel betätigt
message: Jemand ist an der Haustür!! (Haptic Touch = Großes Bild)
data:
url: /lovelace/kameras-webrtc
clickAction: /lovelace/kameras-webrtc
image: >-
https://external-homeassistant-url-tld/local/reo_klingel_{{
snapshot_ts }}.jpg
enabled: false
- action: notify.erwachsene
data:
title: 🛎️ Haustürklingel betätigt
message: Jemand ist an der Haustür!! (Haptic Touch = Großes Bild)
data:
url: /lovelace/kameras-webrtc
clickAction: /lovelace/kameras-webrtc
image: >-
https://external-homeassistant-url-tld/local/reo_klingel_{{
snapshot_ts }}.jpg
enabled: true
mode: single
variables:
snapshot_ts: "{{ now().strftime('%Y%m%d-%H%M%S') }}"
Damit mir die Schnappschüsse nicht mit der Zeit das Home Assistant OS vollmüllen, räumt ein kleiner shell_command regelmäßig (immer beim Auslösen der Automation) auf und löscht alles, was älter als 30 Tage ist. Der kommt in die configuration.yaml:
shell_command:
cleanup_reolink_snapshots: "find /config/www -name 'reo_*.jpg' -mtime +30 -delete"

Bonus: Kamera-Popup am Flur-Tablet per browser_mod
Weil’s so schön ist, hängt im Flur direkt vor der Haustür ein Wand-Tablet als Smart-Home-Display. Klingelt jemand, poppt dort automatisch das Live-Bild der Haustürkamera im Vollbild auf – so sieht man schon beim Vorbeigehen, wer draußen steht, ohne irgendwas antippen zu müssen. Umgesetzt ist das mit browser_mod (Custom-Integration). Nach 30 Sekunden schließt sich das Popup von selbst wieder.
alias: Flur EG - Kamera Popup SmartHome Tablet wenn Türklingel betätigt wurde
description: ""
triggers:
- trigger: state
entity_id: binary_sensor.azdelivery_d1_mini_hausturgong_flur_eg
to: "on"
- type: occupied
device_id: 23d8fca3c34d49c66c69fab01ff171af
entity_id: 4e07233bd9ae1e6bc3518c19299b5da9
domain: binary_sensor
trigger: device
enabled: false
- type: motion
device_id: c7a6afa0006a640602693c7ca5a6ac5c
entity_id: 9b8f3b126e90737861727d9a7592b1bc
domain: binary_sensor
trigger: device
enabled: false
conditions: []
actions:
- action: browser_mod.popup
data:
dismissable: true
autoclose: false
allow_nested_more_info: false
browser_id:
- 5d8d15f92258392314b0680315dbc8e3
title: Kamera Haustür
initial_style: tablet-camera
style_sequence:
- tablet-camera
popup_styles:
- style: tablet-camera
include_styles:
- classic
styles: |
ha-dialog {
--dialog-surface-margin-top: auto !important;
--popup-width: 92vw;
--popup-min-width: 92vw;
--popup-max-width: 92vw;
--popup-min-height: 75vh;
--popup-max-height: 75vh;
--dialog-content-padding: 0px;
--padding-x: 0px;
--padding-y: 0px;
}
.content {
padding: 0px !important;
}
.container {
padding: 0px !important;
}
content:
type: picture-entity
show_state: false
show_name: false
camera_view: live
fit_mode: cover
entity: camera.kamera_haustur_standardauflosung
image: camera.kamera_haustur_schnappschusse_in_standardauflosung
timeout: 30000
timeout_hide_progress: true
- delay:
hours: 0
minutes: 0
seconds: 30
milliseconds: 0
mode: single

Fazit
Tja, was gibt es abschließend zu sagen … der Weg war deutlich länger, als das Ziel groß ist. 😅 Am Ende ist es eine schlichte, kleine Lösung geworden – aber genau eine, die tut, was sie soll, und die mich nicht im Regen stehen lässt, wenn irgendwo mal der Strom bzw. das Netzwerk hakt.
Was mir an der Lösung gefällt:
- Die Klingel funktioniert weiter, auch wenn Home Assistant, WLAN oder der ESP mal streiken – kein Single Point of Failure
- Dauerstrom, kein Akku, keine Cloud, alles schön lokal
- Potenzialfreie Trennung zwischen Klingelkreis und ESP – sauber und sicher
- Spottbillig: D1 Mini ein paar Euro, das Eltako-Relais rund 25 €
- Reaktion in Home Assistant praktisch verzögerungsfrei – inklusive Kamerabild aufs Handy und Popup am Flur-Tablet
Was man wissen muss:
- In den Sicherungskasten gehört eine Elektrofachkraft
- Das Eltako-Relais klackt hörbar beim Schalten (neben dem Gong fällt das aber nicht auf)
- Der Weg dahin war … nun ja, ein paar Sackgassen mehr, als mir lieb war 😉
Unterm Strich bin ich rundum zufrieden. Aus dem ewigen Kompromiss zwischen Bewegungsempfindlichkeit und Akkulaufzeit ist eine grundsolide, dauerstromversorgte und lokale Lösung geworden – und die Türklingel ist und bleibt einfach eine Türklingel.
Wie habt ihr eure Klingel in Home Assistant eingebunden? Fertige Lösung, Shelly, Bastel-ESP oder ganz anders? Ab damit in die Kommentare!

Schreibe einen Kommentar