{"id":20654985,"url":"https://github.com/capevace/bridge-server","last_synced_at":"2026-05-16T17:01:36.725Z","repository":{"id":57190415,"uuid":"272782578","full_name":"Capevace/bridge-server","owner":"Capevace","description":"This server offers a HTTP interface to control GPIO outputs on a Raspberry Pi, specifically to transmit 433Mhz signals.","archived":false,"fork":false,"pushed_at":"2022-12-13T02:20:15.000Z","size":465,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-22T20:00:32.479Z","etag":null,"topics":["arduino","intertechno","ir-device"],"latest_commit_sha":null,"homepage":"https://mission-control.js.org","language":"JavaScript","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/Capevace.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}},"created_at":"2020-06-16T18:25:08.000Z","updated_at":"2025-02-23T22:24:18.000Z","dependencies_parsed_at":"2023-01-28T05:01:38.161Z","dependency_job_id":null,"html_url":"https://github.com/Capevace/bridge-server","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/Capevace/bridge-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capevace%2Fbridge-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capevace%2Fbridge-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capevace%2Fbridge-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capevace%2Fbridge-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Capevace","download_url":"https://codeload.github.com/Capevace/bridge-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capevace%2Fbridge-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33111496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"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":["arduino","intertechno","ir-device"],"created_at":"2024-11-16T18:07:55.520Z","updated_at":"2026-05-16T17:01:36.676Z","avatar_url":"https://github.com/Capevace.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- This CSS is only included in the rendered docs.html of the server --\u003e\n\u003c!-- PASTE INTO docs.html WHEN REGENERATING --\u003e\n\u003c!-- \n\u003cstyle type=\"text/css\"\u003e\n    body {\n        max-width: 700px;\n        margin: auto;\n        font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n    }\n\n    h2 {\n        margin-top: 50px;\n        margin-bottom: 20px;\n        padding-bottom: 5px;\n        border-bottom: 1px lightgray solid;\n    }\n\n    h3 {\n        margin-top: 20px;\n    }\n\n\n\n    ul {\n        margin-bottom: 40px;\n    }\n\n    li ul {\n        margin-bottom:  0px;\n    }\n\u003c/style\u003e \n--\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://mateffy.me/mission-control-project\"\u003e\n        \u003cimg src=\"resources/icon-web.png\"\u003e\n    \u003c/a\u003e\n    \u003ch1\u003eGPIO \u003ci\u003eBridge Server\u003c/i\u003e\u003c/h1\u003e\n    \u003cp\u003e\n        This server offers a HTTP interface to control GPIO outputs on a Raspberry Pi, specifically to transmit 433Mhz signals.\n    \u003c/p\u003e\n    \u003cp\u003e\n        Built for use with \u003ca href=\"https://github.com/homebridge/homebridge\"\u003eHomebridge\u003c/a\u003e and \u003ca href=\"https://mission-control.js.org\"\u003eMission Control\u003c/a\u003e\n    \u003c/p\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n## Features\n- Accepts HTTP requests to send 433Mhz data\n    - Currently works with Intertechno wireless outlets but can be adapted to send any 433Mhz codes\n- Send RGB data to Bluetooth Low Energy (BLE) devices\n    - Currently RGB controllers with the _QHM-D461_ chipset are supported\n    - [`ble-led-driver`](https://github.com/capevace/ble-led-driver) is used which requires `gatttool` internally\n- Pass `--debug` for easier development of BLE modes\n\n## Usage\n```bash\nnpm install bridge-server\n``` \n\n```bash\nbridge-server\n``` \n\n### Environment Variables\n**HTTP**\n- PORT - *The HTTP server port*\n\n*Example:*\n```bash\nPORT=4001 bridge-server\n``` \n\n**Log**\n- DEBUG - *Enable debug modes (mock / log)*\n\n*Example:*\n```bash\n# This will show the debug color output\nDEBUG=mock bridge-server\n\n# This will log all GATTTOOL output\nDEBUG=log bridge-server\n``` \n\n**Infrared**\n- IR_DEVICE_HOST - *The IP of the Arduino*\n- IR_DEVICE_PORT - *The port of the Arduino*\n\n*Example:*\n```bash\nIR_DEVICE_HOST=\"192.168.0.102\" IR_DEVICE_PORT=4005 bridge-server\n``` \n\n## 433Mhz route\n### `/433mhz/:CODE/:STATE`\nSend an intertechno 433Mhz code using the attached 433Mhz transmitter.\n\n- CODE (String) - *The intertechno code (e.g. 'A1' or 'C3')*\n- STATE (String) - *`on` or `off`*\n\n## Infrared routes\n### `/infrared/nec/:ADDRESS/:COMMAND`\nSend an NEC infrared signal to the Arduino provided in arguments.\n- ADDRESS (HEX/Decimal) - *The NEC address (most likely `0x0`)*\n- COMMAND (HEX/Decimal) - *The NEC command*\n\n### `/infrared/device/:DEVICE/:COMMAND`\n\nSend a preconfigured IR command for a given device.\n- DEVICE (String) - *The device to target (`panasonic`)*\n- COMMAND (String) - *The command name (`ONOFF`)*\n\n## BLE Routes (`/ble` and `/qhm-d461`)\n\n### `/ble/rgb/:R/:G/:B`\nSet a color to be displayed.\n\nThis will put the driver in mode 'solid' so active modes are paused.\n\n- R, G, B (0...255) - *RGB color values*\n\n### `/ble/mode/rainbow?speed=1`\nEnable Rainbow mode (by rotating hue)\n\n\n**Query**\n- speed (int) Number of hue rotations per second\n\n### `/ble/mode/random?speed=1`\nEnable Random mode\n\n\n**Query**\n- speed (int) Seconds between color changes\n\n### `/ble/restart`\nRestart the custom RGB LED driver\n\n\n## Changelog\n### 1.2.4\n- Fixed BLE logging \u0026 connectivity issues\n\n### 1.2.3\n- Fixed 433MHz queue: commands are no longer lost but are executed after each other in order of receival\n\n### 1.2.2\n- Switched back to normal `node:16` docker image, as Alpine wasn't working with BLE\n\n### 1.2.1\n- Fixed README displaying `\u003cstyle\u003e\u003c/style\u003e` tag\n\n### 1.2.0\n- Added `bridge-server` CLI command to `package.json`\n\n### 1.1.0\n- Added `/ble/restart` route\n\n### 1.0.0\n- Stable release","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcapevace%2Fbridge-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcapevace%2Fbridge-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcapevace%2Fbridge-server/lists"}