Ik lees:
You have to connect the RX and TX pins of the ESP module to the target serial device.
Het is dus firmware die serial uitleest en vervolgens via TCP/IP doorzet. Via software alles wat naar de seriele poort geschreven wordt 'aftappen' kan niet - heb ik gegoogeld

En hoe verstuurt ie data dan? Wifi wordt niet gebruikt las ik en je moet een apparaat pairen

Via WiFi 'vendor frames'. Pakketjes die vrij laag in de stack van het WiFi protocol zitten. Dus geen scans, handshakes, connects etc voor een WiFi verbinding nodig. Beveiliging gebeurt (optioneel) dan ook op de ESP zelf. Vergelijk het met zelf UDP pakketjes sturen vs. een HTTP request.
Je moet het MAC address van de andere node weten. Je voegt deze via een functieaanroep toe aan bekende nodes en je bent 'gepaird' (beetje kromme term 'pairen' in deze context) Of je stuurt een broadcast (werkt alleen op de ESP32)
Mijn idee voor de el-cheapo deursensoren is om een ESP32 als 'server' te gebruiken. Deze draait in station en access point mode. De deursensornode start de eerste keer met WiFi. Connect met de server en haalt het MAC address van de server en het WiFi kanaal op. Deze gaan naar de flash van de ESP. De node schakelt zichzelf uit (via power latch) Als nu het deurcontact verbroken wordt start de ESP, leest MAC en WiFi kanaal uit flash, stuurt bericht via ESPNow naar de server, wacht op een antwoord (simpele ACK) en schakelt zichzelf weer uit. Server zet het signaal via MQTT door naar Home Assistant.
Als de ACK niet komt moet de deursensornode opnieuw de configuratie op gaan halen. Dat moet ik nog uitwerken.
Het mooie is dat de ESP dus bijna permanent uit staat en alleen bij het verbreken van de deursensor aan. Voor twee tiende van een seconden

En, dat het geen seconden duurt voor het signaal binnen is. Wil er ook een aan de deurbel hangen en dan vind ik vijf seconden veel te lang.
(al denk ik dat een CR2032 knoopcel het niet gaat trekken qua amperage

)