{"id":26028594,"url":"https://github.com/will-white/dahua-companion","last_synced_at":"2026-05-12T15:34:58.517Z","repository":{"id":276718575,"uuid":"930071212","full_name":"will-white/dahua-companion","owner":"will-white","description":"Small, simple, and fast event driven Dahua (Amcrest) doorbell processor for home automation integration","archived":false,"fork":false,"pushed_at":"2026-05-07T05:23:51.000Z","size":25057,"stargazers_count":0,"open_issues_count":12,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-07T07:31:49.750Z","etag":null,"topics":["containerization","event-driven","golang","mqtt","pubsub","stream-processing"],"latest_commit_sha":null,"homepage":"","language":"Go","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/will-white.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-02-10T02:36:34.000Z","updated_at":"2026-01-10T19:49:01.000Z","dependencies_parsed_at":"2025-08-06T23:15:42.673Z","dependency_job_id":"671dcfe5-4a98-48fa-aa93-20312d3c799b","html_url":"https://github.com/will-white/dahua-companion","commit_stats":null,"previous_names":["will-white/dahua-companion"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/will-white/dahua-companion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/will-white%2Fdahua-companion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/will-white%2Fdahua-companion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/will-white%2Fdahua-companion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/will-white%2Fdahua-companion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/will-white","download_url":"https://codeload.github.com/will-white/dahua-companion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/will-white%2Fdahua-companion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32945704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T09:19:52.626Z","status":"ssl_error","status_checked_at":"2026-05-12T09:17:33.438Z","response_time":102,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["containerization","event-driven","golang","mqtt","pubsub","stream-processing"],"created_at":"2025-03-06T17:18:49.640Z","updated_at":"2026-05-12T15:34:58.498Z","avatar_url":"https://github.com/will-white.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dahua Companion\n\nThe Dahua Companion allows you to integrate your [Dahua](https://www.dahuasecurity.com/) and [Amcrest](https://amcrest.com/wifi-video-doorbell-cameras.html) doorbell's button/ring/buzzer with any home automation that can listen to queue / events.\n\nThe Dahua Companion will listen for the button/ring/buzzer and then send a message/event/topic via MQTT e.g. `doorbell/pressed` with no payload.\n\n## How it works\n\nDahua cameras report events via a long polling HTTP connection. And what you subscribe to effects what events the camera reports back with.\n\nDahua's API is included in the documentation folder.\n\nFor this project we're only concerned with the `AlarmLocal` event (This is the buzzer/ringer/button pressed event). And more specifically we publish only the `AlarmLocal` started events since we don't care when Dahua decides an alarm is \"over\".\n\nAfter we receive an event we publish a `doorbell/pressed` to the MQTT broker.\n\nThis project also has wrappers around the HTTP subscription and MQTT broker to always make sure it's connected. The only thing we don't have is an internal queue to monitor in between MQTT outages. Since it doesn't make sense to send events that no longer matter.\n\n## Home Assistant Example\n\n```\nalias: Doorbell buzzer\ntriggers:\n  - trigger: mqtt\n    topic: doorbell/pressed\nactions:\n  - action: notify.echos\n    metadata: {}\n    data:\n      message: Someone is at the front door\n      data:\n        type: tts\nmode: single\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwill-white%2Fdahua-companion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwill-white%2Fdahua-companion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwill-white%2Fdahua-companion/lists"}