An open API service indexing awesome lists of open source software.

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.

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