{"id":19840502,"url":"https://github.com/zefer/retro-doorbell","last_synced_at":"2026-05-11T01:09:03.169Z","repository":{"id":170359267,"uuid":"646123765","full_name":"zefer/retro-doorbell","owner":"zefer","description":"An ESP32 smart upgrade to a 1960s (or any traditional) doorbell","archived":false,"fork":false,"pushed_at":"2024-11-09T16:15:48.000Z","size":479,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-11T11:35:43.121Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zefer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-27T11:10:16.000Z","updated_at":"2024-11-09T16:15:51.000Z","dependencies_parsed_at":"2024-01-01T18:28:46.726Z","dependency_job_id":"7e554390-37dd-47d4-8ce8-b0f39d40cd75","html_url":"https://github.com/zefer/retro-doorbell","commit_stats":null,"previous_names":["zefer/retro-doorbell"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefer%2Fretro-doorbell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefer%2Fretro-doorbell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefer%2Fretro-doorbell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefer%2Fretro-doorbell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zefer","download_url":"https://codeload.github.com/zefer/retro-doorbell/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241209957,"owners_count":19927761,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T12:27:10.498Z","updated_at":"2026-05-11T01:09:03.116Z","avatar_url":"https://github.com/zefer.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Retro Doorbell\n\nAn ESP32 solution to fix a retro doorbell. It:\n\n- Holds the doorbell chime circuit closed for 3 seconds, to ensure it chimes\n- Publishes an MQTT message to allow home automations\n\n## Why?\n\n- Our doorbell chime has a massive flaw, it doesn't ring unless you hold down\n  the button for ~3 seconds!\n- It allows us to keep the old doorbell chime, it has lots of character\n- It allows us to trigger home automations such as playing a sound through the\n  home music system, sending notifications, etc\n\n## The Doorbell Chime\n\nThis will work with any standard chime, but the particular one this was built\nfor is a 1961 Friedland Westminster Mark II Model 60.\n\n![Photo of the chime](images/friedland.png)\n\n## The Iterations\n\n### V1\n\n![Photo of v1](images/v1.jpg)\n\n### V2\n\n![Photo 1 of v2](images/v2a.jpg)\n![Photo 2 of v2](images/v2b.jpg)\n\n## The Hardware\n\n- ESP32\n- 3.3v DC / 12v AC relay with optocoupler\n- 10KΩ resistor\n- a 5v ~1A power supply for the ESP32\n\n## The Circuits\n\nThe doorbell is split into 2 circuits:\n\n1. Doorbell push button -\u003e ESP32 5V -\u003e DC control side of relay\n2. Doorbell chime -\u003e 12V AC power -\u003e AC appliance side of relay\n\n2 ESP32 GPIO pins are used:\n\n1. Pin 17 detects the doorbell button push\n2. Pin 16 controls the relay\n\n## The Program\n\nTo help with reliability:\n\n- The doorbell button and chime still operate if WiFi is disconnected\n- The device occasionally checks if WiFi is connected and reboots if it is not\n- The loop avoids blocking\n\n## Web API\n\n- `GET /status` view JSON status data: config, system\n- `PUT /reboot` reboot the device\n- `PUT /reset` forget the WiFi \u0026 MQTT config and reboot\n\n## Development\n\nInstall platformio core and refer to the `Makefile` for common dev commands.\n\nSee https://platformio.org/install/cli. I used `brew install platformio`.\n\n- `make compile` compile the code\n- `make upload` compile and flash to the device\n- `make erase` fully erase the device flash, a factory reset\n- `make serial` watch the serial output log\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzefer%2Fretro-doorbell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzefer%2Fretro-doorbell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzefer%2Fretro-doorbell/lists"}