{"id":15142098,"url":"https://github.com/bootswithdefer/esp32-relay-controller","last_synced_at":"2025-04-06T15:17:47.298Z","repository":{"id":208096305,"uuid":"718906847","full_name":"bootswithdefer/esp32-relay-controller","owner":"bootswithdefer","description":"ESP32 Relay Controller with Web Interface","archived":false,"fork":false,"pushed_at":"2023-11-19T18:19:13.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-12T21:19:12.590Z","etag":null,"topics":["adafruit","circuitpython","fastapi","feather","garage-door-opener","mqtt","nicegui","relay"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bootswithdefer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-11-15T03:02:30.000Z","updated_at":"2023-12-15T20:53:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"6864b0cd-fe62-4163-91ab-833421e51619","html_url":"https://github.com/bootswithdefer/esp32-relay-controller","commit_stats":{"total_commits":4,"total_committers":2,"mean_commits":2.0,"dds":0.25,"last_synced_commit":"efcfe2217c2601aa58f86dc710e7765ef474f973"},"previous_names":["bootswithdefer/garage-door-opener"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootswithdefer%2Fesp32-relay-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootswithdefer%2Fesp32-relay-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootswithdefer%2Fesp32-relay-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootswithdefer%2Fesp32-relay-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bootswithdefer","download_url":"https://codeload.github.com/bootswithdefer/esp32-relay-controller/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247500464,"owners_count":20948881,"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":["adafruit","circuitpython","fastapi","feather","garage-door-opener","mqtt","nicegui","relay"],"created_at":"2024-09-26T09:22:45.669Z","updated_at":"2025-04-06T15:17:47.278Z","avatar_url":"https://github.com/bootswithdefer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP32 Relay Controller with Web interface\n\n## Components\n* [Adafruit ESP32-S3 Feather with STEMMA QT / Qwiic](https://www.adafruit.com/product/5323)\n* [Adafruit Non-Latching Mini Relay FeatherWing](https://www.adafruit.com/product/2895)\n* [CircuitPython](https://circuitpython.org/)\n* [NiceGUI](https://nicegui.io/)\n* [FastAPI](https://fastapi.tiangolo.com/)\n* [Eclipse Mosquitto](https://mosquitto.org/)\n* [Cloudflare Zero Trust](https://cloudflare.com)\n* Docker\n* Ubuntu\n\n## Overview\n\nThis project contains the code for an ESP32 based relay controller, used by the author as Garage Door Opener.\nIt consists of an Adafruit feather with relay board and some Python based web services.\nThe feather connects to your Wifi and listens for messages on an MQTT broker.\nA Linux server with Docker hosts the MQTT broker, a NiceGUI web site, and a FastAPI API service.\n\nNOTE: The Web site and API should be secured, it is not recommended to run these apps directly on the internet as-is.\nThe author uses Cloudflare Zero Trust for this, but that is out of scope for this project.\n\nThe UI is a very simple button in your web browser that toggles the relay:\n\n![image](https://github.com/bootswithdefer/garage-door-opener/assets/415790/8019b9e9-a5fd-4dce-8319-3c3c67fb88b7)\n\nPressing the button sends an request to the API service.\nThe API service publishes a message to the MQTT broker.\nThe feather receives the message and triggers the relay.\n\n## Garage Door Opener notes\nIt is designed to interact with a garage door opener via a relay so if your garage door opener uses encryption you will have to modify one of it's controllers.\nThe author soldered wires onto the switch contacts on his wall-mounted opener control.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootswithdefer%2Fesp32-relay-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbootswithdefer%2Fesp32-relay-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootswithdefer%2Fesp32-relay-controller/lists"}