I do talk more about this server in the video abuot connecting it to streamer bot for twitch notifications here https://www.youtube.com/watch?v=x9fZ-6AX4nM
run the server with
python server.pythen either setup your apps to handle notifications like with streamer bot
or run any of the example apps from the node-apps directory
to set them up run
cd node-apps
npm installand then choose an app while inside the node-apps folder
npm run clockcurrently used for twitch alerts and a background clock on my 6 key macro pad
server port is 8081
shows a list of the currently displayed widgets
response:
[
{
"id": "clock",
"indexes": [
3,
4,
5,
0,
1,
2
],
"config": {
"timeout": 0,
"progress": 0.9718055555555556
},
"type": "progress"
}
]parameters
| Parameter | Explanation |
|---|---|
| h | hue as number from 0 - 255 (0 being red 128 cyan) |
| s | saturation as number form 0 - 255 |
| v | value (lightness) as number form 0 - 255 |
| timeout | timeout in seconds |
| indexes | indexes of the used LEDs separated by comma |
example query
http://localhost:8081/notification?h=240&s=255&v=255&indexes=5,4&timeout=15
example response
{
"success": true,
"id": "01FNCD62EGBVFYCP23TB1FRC2Y"
}deletes the widget with the supplied id post request with json body and header "content-type": "application/json"
json body
{ "id": "01FGEWZ07EXCHP0CBFHT0CD3ZG"}adds a widget to the notification stack
post request with json body and header "content-type": "application/json"
| Parameter | Explanation |
|---|---|
| id | can be any string |
| indexes | indexes are an array of numbers |
| config.timeout | is a positive number in seconds (0 means no timeout) |
| config.color | is the hsv object with each value being 0-255 |
{
"id": "01FGEWZ07EXCHP0CBFHT0CD3ZG",
"indexes": [
0,1,2,3,4,5
],
"config": {
"timeout": 15.0,
"color": {
"h": 150,
"s": 255,
"v": 255
}
},
"type": "notification"
}| Parameter | Explanation |
|---|---|
| id | can be any string |
| indexes | indexes are an array of numbers |
| config.timeout | is a positive number in seconds (0 means no timeout) |
| config.progress | a number between 0-1 |
{
"id": "01FGEWZ07EXCHP0CBFHT0CD3ZG",
"indexes": [
0,1,2,3,4,5
],
"config": {
"timeout": 0,
"progress": 0.011199999999999998
},
"type": "progress"
}this can define multiple LEDs in separate colors
| Parameter | Explanation |
|---|---|
| id | can be any string |
| indexes | indexes are an array of numbers |
| config.timeout | is a positive number in seconds (0 means no timeout) |
| config.colors | an array of color objects each with hsv values from 0-255 , the first color gets applied to the first led in the indexes array and so on. so each led in the indexes array has its own color assigned and the array order of colors correspond to the indexes |
{
"id": "01FGEWZ07EXCHP0CBFHT1CD3Z9",
"indexes": [
0,5
],
"config": {
"timeout": 31,
"colors": [
{
"h": 255,
"s": 255,
"v": 255
}, {
"h": 182,
"s": 255,
"v": 255
}
]
},
"type": "image"
}update an existing widget identified by id
see above for examples on how to configure the widget data
post request with json body and header "content-type": "application/json"
{
"id": "01FGEWZ07EXCHP0CBFHT0CD3ZG",
"indexes": [
3
],
"config": {
"timeout": 0,
"progress": 0.04
},
"type": "progress"
}