I finally got my rube goldberg doorbell into an installable state. On the left is the door button detector. It is an ESP8266 ESP-07 making use of the U.FL connector to allow the WiFi signal to punch through from my basement to the 2nd floor where the router is located. On the right is another ESP8266 and a doorbell transformer. Just barely peaking out from under that module is an actual doorbell.
A key aspect of the system is that the door button module doesn’t communicate directly with the door bell module. Both modules log into a Mosquitto MQTT broker. The button module “publishes” events on the MQTT topic of “DoorBell” and the bell module subscribes to the MQTT topic of DoorBell. Later, I can split the topic names and have something like OpenHAB conditionally copy events from one topic to the other depending on the time of day. OpenHAB can also translate MQTT events to a service like Notify My Android so that my phone buzzes in response to a door button push.
I am excited to install this at home and see how it does!