{"id":15170381,"url":"https://github.com/spezifisch/esphome-entry","last_synced_at":"2026-02-11T23:03:32.596Z","repository":{"id":257421183,"uuid":"858150014","full_name":"spezifisch/esphome-entry","owner":"spezifisch","description":"A custom box to detect when someone rings on my analog doorbell.","archived":false,"fork":false,"pushed_at":"2024-09-17T15:40:22.000Z","size":30175,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-26T17:34:46.027Z","etag":null,"topics":["doorbell","esp32","esphome","homeassistant","kicad-schematics","open-hardware","sound-detection","wireless-remote"],"latest_commit_sha":null,"homepage":"","language":null,"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/spezifisch.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":"2024-09-16T11:56:26.000Z","updated_at":"2024-09-17T15:40:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"505de0cb-5a06-40ba-af62-9646b3412395","html_url":"https://github.com/spezifisch/esphome-entry","commit_stats":null,"previous_names":["spezifisch/esphome-entry"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/spezifisch/esphome-entry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spezifisch%2Fesphome-entry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spezifisch%2Fesphome-entry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spezifisch%2Fesphome-entry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spezifisch%2Fesphome-entry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spezifisch","download_url":"https://codeload.github.com/spezifisch/esphome-entry/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spezifisch%2Fesphome-entry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29349259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T20:11:40.865Z","status":"ssl_error","status_checked_at":"2026-02-11T20:10:41.637Z","response_time":97,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["doorbell","esp32","esphome","homeassistant","kicad-schematics","open-hardware","sound-detection","wireless-remote"],"created_at":"2024-09-27T08:01:37.525Z","updated_at":"2026-02-11T23:03:32.591Z","avatar_url":"https://github.com/spezifisch.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# esphome-entry\n\nA custom box to:\n\n* detect if someone rings on my analog doorbell\n* trigger a visual doorbell\n* integrate with HomeAssistant\n\n(*You can also use the Status LED of the ESP32 board as a proper light in HomeAssistant in case you want to use it as a notification or something.*)\n\n## Building the Hardware\n\n### Schematic\n\n![Schematic built around an ESP32-C3 SuperMini](./docs/esphome-entry%20schematic%20export.png)\n\n* The idea here is that we use the sound detector to trigger an event for HomeAssistant when it's loud enough (our primary audible doorbell rings)\n* This also triggers the remote of a secondary (visual) doorbell (a cheap wireless doorbell set with two LED units/wall warts)\n* The remote runs from a 12 V battery (A23), therefore the optocoupler instead of hooking us directly into it. The optocoupler's output is just connected to the two sides of the push button of the remote.\n* Our ESP32 and sound sensor are powered by the ESP32 board's 3.3 V regulator. That regulator is powered by 5 V from the USB-C port.\n\n### Sound Sensor\n\nWe're using one of these sound sensors which use an LM393 comparator for threshold detection:\n\n![PCB layout of the sound sensors](./docs/sound%20sensor.png)\n\nReverse-engineered schematic from that (LEDs and supply omitted):\n\n![Sound sensor schematic around an LM393](./docs/sound%20sensor%20schematic%20export.png)\n\nIt's basically just an amplifier for the electret microphone and the comparator *compares* that amplified voltage to the reference voltage level set by the potentiometer.\nThe output (`OUT`) signal is driven low when suffiently loud sound is detected, otherwise it's driven high.\nThe green LED near the output lights when `OUT` is low. (The other LED is just always on and I removed it later to save power.)\n\n## Building the Software\n\n### Install Dependencies\n\n```console\n$ pipx install esphome\n```\n\n### Configuration\n\n```console\n# add your secrets\n$ cp -i ./secrets.example.yaml secrets.yaml\n$ vim ./secrets.yaml\n```\n\n### Compile + Flash\n\n```console\n$ esphome run esphome.yaml\n```\n\n## Configuration\n\nFor initial configuration, you can use the fallback WiFi AP, [improv_serial](https://esphome.io/components/improv_serial), or just hard-code your WiFi based on `secrets.default.yaml`.\n\n### Fallback AP\n\nYou can connect to the fallback AP configured in `secrets.yaml` and set your proper WiFi credentials using the Web UI at port 80 of the gateway IP that you get via DHCP when connecting.\n\n**NOTE**: For prebuilt GitHub releases this feature is *deactivated*, or we would need to include a default password. Since ESPHome's `captive_portal` component seems to be triggered everytime the default WiFi connection is lost, I guess this would be otherwise insecure.\n\n### HomeAssistant\n\nThis is plug \u0026 play with ESPHome's HomeAssistant integration. If the sensor is not auto-detected, just lookup its IP (e.g. from your router) and configure it manually.\n\n## Development\n\n```console\n# install pre-commit python package\n$ pipx install pre-commit\n\n# install git commit hook in this repository\n$ pre-commit install\n\n# (optional) lint + fix all files in this repo\n$ pre-commit run --all-files\n```\n\n## Troubleshooting\n\n* If your doorbell remote isn't triggered reliably, play with the `switch.on_turn_on` delay parameter to vary how long the button is \"pressed\".\n\n## Licenses\n\nSchematics: CERN-OHL-S-2.0\n\nEverything else (except .pdfs): GPL-3.0-only\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspezifisch%2Fesphome-entry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspezifisch%2Fesphome-entry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspezifisch%2Fesphome-entry/lists"}