Skip to content

This server offers a HTTP interface to control GPIO outputs on a Raspberry Pi, specifically to transmit 433Mhz signals.

License

Notifications You must be signed in to change notification settings

Capevace/bridge-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 is used which requires gatttool internally
  • Pass --debug for easier development of BLE modes

Usage

npm install bridge-server
bridge-server

Environment Variables

HTTP

  • PORT - The HTTP server port

Example:

PORT=4001 bridge-server

Log

  • DEBUG - Enable debug modes (mock / log)

Example:

# 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:

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 <style></style> tag

1.2.0

  • Added bridge-server CLI command to package.json

1.1.0

  • Added /ble/restart route

1.0.0

  • Stable release

About

This server offers a HTTP interface to control GPIO outputs on a Raspberry Pi, specifically to transmit 433Mhz signals.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published