https://github.com/capevace/bridge-server
This server offers a HTTP interface to control GPIO outputs on a Raspberry Pi, specifically to transmit 433Mhz signals.
https://github.com/capevace/bridge-server
arduino intertechno ir-device
Last synced: 28 days ago
JSON representation
This server offers a HTTP interface to control GPIO outputs on a Raspberry Pi, specifically to transmit 433Mhz signals.
- Host: GitHub
- URL: https://github.com/capevace/bridge-server
- Owner: Capevace
- License: mit
- Created: 2020-06-16T18:25:08.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2022-12-13T02:20:15.000Z (over 3 years ago)
- Last Synced: 2025-12-22T20:00:32.479Z (6 months ago)
- Topics: arduino, intertechno, ir-device
- Language: JavaScript
- Homepage: https://mission-control.js.org
- Size: 454 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
GPIO Bridge Server
This server offers a HTTP interface to control GPIO outputs on a Raspberry Pi, specifically to transmit 433Mhz signals.
Built for use with Homebridge and Mission Control
## Features
- Accepts HTTP requests to send 433Mhz data
- Currently works with Intertechno wireless outlets but can be adapted to send any 433Mhz codes
- Send RGB data to Bluetooth Low Energy (BLE) devices
- Currently RGB controllers with the _QHM-D461_ chipset are supported
- [`ble-led-driver`](https://github.com/capevace/ble-led-driver) is used which requires `gatttool` internally
- Pass `--debug` for easier development of BLE modes
## Usage
```bash
npm install bridge-server
```
```bash
bridge-server
```
### Environment Variables
**HTTP**
- PORT - *The HTTP server port*
*Example:*
```bash
PORT=4001 bridge-server
```
**Log**
- DEBUG - *Enable debug modes (mock / log)*
*Example:*
```bash
# This will show the debug color output
DEBUG=mock bridge-server
# This will log all GATTTOOL output
DEBUG=log bridge-server
```
**Infrared**
- IR_DEVICE_HOST - *The IP of the Arduino*
- IR_DEVICE_PORT - *The port of the Arduino*
*Example:*
```bash
IR_DEVICE_HOST="192.168.0.102" IR_DEVICE_PORT=4005 bridge-server
```
## 433Mhz route
### `/433mhz/:CODE/:STATE`
Send an intertechno 433Mhz code using the attached 433Mhz transmitter.
- CODE (String) - *The intertechno code (e.g. 'A1' or 'C3')*
- STATE (String) - *`on` or `off`*
## Infrared routes
### `/infrared/nec/:ADDRESS/:COMMAND`
Send an NEC infrared signal to the Arduino provided in arguments.
- ADDRESS (HEX/Decimal) - *The NEC address (most likely `0x0`)*
- COMMAND (HEX/Decimal) - *The NEC command*
### `/infrared/device/:DEVICE/:COMMAND`
Send a preconfigured IR command for a given device.
- DEVICE (String) - *The device to target (`panasonic`)*
- COMMAND (String) - *The command name (`ONOFF`)*
## BLE Routes (`/ble` and `/qhm-d461`)
### `/ble/rgb/:R/:G/:B`
Set a color to be displayed.
This will put the driver in mode 'solid' so active modes are paused.
- R, G, B (0...255) - *RGB color values*
### `/ble/mode/rainbow?speed=1`
Enable Rainbow mode (by rotating hue)
**Query**
- speed (int) Number of hue rotations per second
### `/ble/mode/random?speed=1`
Enable Random mode
**Query**
- speed (int) Seconds between color changes
### `/ble/restart`
Restart the custom RGB LED driver
## Changelog
### 1.2.4
- Fixed BLE logging & connectivity issues
### 1.2.3
- Fixed 433MHz queue: commands are no longer lost but are executed after each other in order of receival
### 1.2.2
- Switched back to normal `node:16` docker image, as Alpine wasn't working with BLE
### 1.2.1
- Fixed README displaying `` tag
### 1.2.0
- Added `bridge-server` CLI command to `package.json`
### 1.1.0
- Added `/ble/restart` route
### 1.0.0
- Stable release