Files
sprocket-device-illucat/api.md
2025-08-14 20:15:09 +02:00

2.3 KiB

API

Two API architectures are supported: WebSocket and REST. Both can be used with the same set of fields.
As everything can be controlled with topics, only a few fields are required:

Field Type Description
topic String Topic where the payload is dispatched
payload String Payload to be dispatched
broadcast Integer Where to send the payload; 0 = local, 1 = broadcast
  • topic
  • payload
  • broadcast

Topics

All functionality can be used by sending messages to these topics.

topic type payload
pixels/colorWheel Integer Value from 0 to 255 to cycle through all colors
pixels/color Integer RGB color as integer. By calling this topic, all LEDs of the strip are set synchronously, stopping current running animation.
pixels/color2 Integer RGB color as integer. Sets the second color used in animations. Does not stop current running animation.
pixels/pattern Integer Value from 0 to 5 to set the current animation. Available animations: { NONE = 0, RAINBOW_CYCLE = 1, THEATER_CHASE = 2, COLOR_WIPE = 3, SCANNER = 4, FADE = 5 }
pixels/totalSteps Integer Number of steps of an animation.
pixels/brightness Integer Integer from 0 to 255 to set the overall brightness of the strip by bitshifting the current colors in memory. Use with caution as running the LEDs on full brightness requires a lot of power.

WebSocket

Endpoint: /ws Send a JSON String containing the mandatory fields.

Example:

{
    "topic": "pixels/color",
    "payload": 13505813
}

REST

Endpoints

Content-Type: application/x-www-form-urlencoded
POST /pixel/api
Request: Form post with topic and payload as fields
Response: 200 + final payload as JSON

Examples:

# set color by wheel
curl -v -X POST \
    --data "topic=pixels/colorWheel" \
    --data "payload=20" \
    http://192.168.4.1/pixel/api  

# set color only on current node
curl -v -X POST \
    --data "topic=pixels/colorWheel" \
    --data "payload=20" \
    --data "broadcast=1"\
    http://illucat/pixel/api  

# set brightness
curl -v -X POST \
    --data "topic=pixels/brightness" \
    --data "payload=10" \
    http://illucat/pixel/api  

# run rainbow pattern
curl -v -X POST \
    --data "topic=pixels/pattern" \
    --data "payload=1" \
    http://illucat/pixel/api