Skip to content
/ bulbs Public

Ambient lighting system

License

Notifications You must be signed in to change notification settings

imjah/bulbs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bulbs

Not mature yet project of RGB lights that can be controlled from your phone or local terminal.

schema

Applications

There are several clients available.

bulbs-tui

TUI application written in rust created by @mtvrsh.

Source

bulbs-cli

CLI application written in python.

Source

Driver API

Method Endpoint Usage Returns
GET /led Get LED status status
GET /led/on Get LED power status true if LED power is ON, false otherwise
PUT /led/on Power on LEDs
GET /led/off Get LED power status true if LED power is OFF, false otherwise
PUT /led/off Power off LEDs
GET /led/color Get LED color color
PUT /led/color/{value} Set LED color
GET /led/brightness Get LED brightness brightness
PUT /led/brightness/{value} Set LED brightness

Installation

Make sure you have just, python and pip installed. From api directory:

  1. Install dependencies
just
  1. Flash MicroPython on your ESP8266 board
# Your board should be accessible from /dev/ttyUSB0 

just flash <your-firmware-release.bin>
  1. Install API
just sync
  1. Reboot the board

Usage

GET /led/color

Request

No parameters needed.

Response

On success, 200 OK and color object.

Example

Request

curl http://$DEVICE_IP/led/color

Response 200 OK

{
	"color": "#000000"
}

PUT /led/color/{value}

Request

Value as hex color without leading #.

Response

On success, 200 OK.

On invalid input, 400 Bad Request with message object.

Example

Request

curl -X PUT http://$DEVICE_IP/led/color/5a1010

Response 200 OK

GET /led/brightness

Request

No parameters needed.

Response

On success, 200 OK and brightness object.

Example

Request

curl http://$DEVICE_IP/led/brightness

Response 200 OK

{
	"brightness": 1.0
}

PUT /led/brightness/{value}

Request

Value as number from 0 to 1.

Response

On success, 200 OK.

On invalid input, 400 Bad Request with message object.

Example

Request

curl -X PUT http://$DEVICE_IP/led/brightness/0.5

Response 200 OK


Status object

Key Value type Value description
on boolean Power state
color string Hex color
brightness float Number from 0 to 1

Color object

Key Value type Value description
color string Hex color

Brightness object

Key Value type Value description
brightness float Number from 0 to 1

Message object

Key Value type Value description
message string Activities description