{"id":15170663,"url":"https://github.com/joeylemon/piopener-server","last_synced_at":"2026-01-25T01:02:36.859Z","repository":{"id":85081546,"uuid":"286886450","full_name":"joeylemon/piopener-server","owner":"joeylemon","description":"a web server for interacting with a garage door","archived":false,"fork":false,"pushed_at":"2021-04-16T01:55:04.000Z","size":196,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-14T07:44:28.539Z","etag":null,"topics":["garage-door-opener","github-actions","mochajs","nodejs","raspberry-pi","shouldjs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/joeylemon.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":"2020-08-12T01:30:40.000Z","updated_at":"2021-09-20T18:07:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"d6819e27-ae9b-41de-8efc-99cd68ae5d01","html_url":"https://github.com/joeylemon/piopener-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joeylemon/piopener-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeylemon%2Fpiopener-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeylemon%2Fpiopener-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeylemon%2Fpiopener-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeylemon%2Fpiopener-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joeylemon","download_url":"https://codeload.github.com/joeylemon/piopener-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeylemon%2Fpiopener-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28740399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T22:12:27.248Z","status":"ssl_error","status_checked_at":"2026-01-24T22:12:10.529Z","response_time":89,"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":["garage-door-opener","github-actions","mochajs","nodejs","raspberry-pi","shouldjs"],"created_at":"2024-09-27T08:20:57.328Z","updated_at":"2026-01-25T01:02:36.831Z","avatar_url":"https://github.com/joeylemon.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# piopener-server\n\n![Node.js Tests](https://github.com/joeylemon/piopener-server/workflows/Node.js%20Tests/badge.svg)\n\n### What is it?\n\nOur project, titled piopener, is the infrastructure designed to allow us to communicate with our garage door via our API and perform actions upon it. These actions can be opening, closing, checking history, checking current open status, etc.\n\n#### Repositories of piopener\n\n- [piopener-server](https://github.com/joeylemon/piopener-server): Node.js backend\n- [piopener-pi](https://github.com/joeylemon/piopener-pi): Raspberry Pi \u0026 Node.js client\n- [piopener-app](https://github.com/joeylemon/piopener-app): Swift \u0026 storyboards iOS frontend\n\n### Why?\n\nAfter continuously losing, forgetting, or otherwise destroying our garage door openers, my roommate and I decided it would be a fun idea to reverse-engineer our garage door and allow us to do whatever we wanted with it.\n\n### How?\n\nTo set up the endpoint for opening and closing the garage door, we simply connected wires from the Raspberry Pi to the circuit board inside of one of our broken garage door remotes. To determine whether the garage was opened or closed, we placed one magnetic reed switch at the beginning of the garage door frame and another at the end of the frame, with a magnet taped to the door's moving chain. When the moving magnet connects with one of the reed switches, the circuit is closed and we know what state the garage door is in.\n\n### What is piopener-server?\n\nThis repository is the code that lives on a dedicated server which serves as the backend to the piopener project. It includes every endpoint required to operate the piopener project, including opening and closing, checking status, checking history, changing user settings, etc. In order to actually open the garage, this server can send a request to the [Raspberry Pi](https://github.com/joeylemon/piopener-pi) via a websocket connection. The [iOS application](https://github.com/joeylemon/piopener-app) serves as the main interface to this server.\n\n#### Technologies:\n- Node.js: host a web server which handles all requests to administrate the piopener project\n- Socket.io: maintain real-time communication with [piopener-pi](https://github.com/joeylemon/piopener-pi) to interact with the garage door\n- MySQL: store the open and close history of the garage door, all of the users, and all of the users' settings\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoeylemon%2Fpiopener-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoeylemon%2Fpiopener-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoeylemon%2Fpiopener-server/lists"}