Taster vs Reed in ESPHome

Grüß Euch!

Folgendes Script in ESPHome Funktioniert tadellos mit einem Mechanischen Taster

binary_sensor:
  - platform: gpio
    pin: 
      number: D3
      mode: INPUT_PULLUP
      inverted: true
    name: "Doorbell"

sensor:
  - platform: wifi_signal
    name: "Doorbell Signal"
    update_interval: 60s
    icon: mdi:wifi

Aber wenn ein Reed Schalter eingesetzt wird, geht das dann nicht mehr. Und ich kann den Fehler/Ursache nicht finden …

Wie ist der Aufbau der Schaltung und was für ein Reed-Kontakt verwendest Du? Normally Open oder Normally Closed?
Ein Reed-Kontakt ist auch nichts anderes als ein mechanischer Schalter. Das muss eigentlich funktionieren.
Ich würde die Konfigurationspins D3, D4 und D8 nicht unbedingt einsetzen, wenn noch andere unkritischere PINs (D1,D2, D5,D6,D7) verfügbar sind. Wenn D3 beim Booten auf GND liegen würde (also Taster beim Booten gedrückt) dann würde der ESP in den flash-Modus gehen.
Ich nehme lieber einen von den sicheren GPIOs und einen externen 10 kOhm Pull-Up oder Pull-Down Widerstand.
Dein Problem kann nur an dem Schaltungsaufbau liegen. Da dein D3 GPIO über den Pull-Up immer auf high (+3,3V) liegt, kann um ein Signal zu erzeugen, der Taster eigentlich nur eine Verbindung zu GND herstellen und den PIN auf low ziehen beim Drücken. Durch das “inverted: true” wird der Standardfall “high” (+3,3V) zu AUS un der Drückfall GND (0V) zu EIN.
Damit es genau so funktioniert wie der Taster, müsste dein Reed-Kontakt den GPIO mit GND verbinden und ohne Magnet geöffnet sein. Wenn du den GPIO D3 über den Reed-Kontakt mit +3,3V verbindest, dann funktioniert es nicht, da du von +3,3V auf +3,3V schaltest…

@LutzHB Die Schaltung ist die gleiche, mit dem Taster funktioniert es, und ja so habe ich es auch gesehen das ein Reed nichts anderes ist, aber es tut sich nichts. Mit dem Messgerät kann ich den Schaltvorgang erkennen. Der ESP nicht. Dann werde ich mal auf einen anderen GPIO wechseln und hoffen das es dann geht.

@Frank501 Ja der Reed funktioniert
Ja den richtigen Anschluss verwendet
GPIO0 verwende ich nicht

Beim D1 Mini ist D3 der GPOI0. Wäre der Reed-Kontakt defekt und würde die ganze Zeit geschlossen sein, dann würde dein ESP beim EInschalten in den flash-mode gehen, daher ist D3 ungünstig.
Das gleiche Problem hast du, wenn du ein “Normally-Closed” Reed-Kontakt hast. Dann geht der ESP in den flash-Mode, da D3 (GPIO0) beim Einschalten ja auf LOW liegt.
Irgendeine Form von Pull-Up oder Pull-Down Widerstand solltest du weiterhin verwenden, da der GPIO sonst im ungeschalteten Zustand in der “Luft” hängt und das Schaltergebnis nicht sicher ist (also wenn du beim Schalten auf GND ziehst, dann einen Pull-Up Widerstand vom GPIO nach +3,3V).