From 8b26e8044bca1eff5925b96bf28ebd6fe9836adb Mon Sep 17 00:00:00 2001 From: Patrick Balsiger Date: Sun, 23 Sep 2018 15:05:41 +0200 Subject: [PATCH] update api docs --- README.md | 47 ++++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index b93a14a..da251d6 100644 --- a/README.md +++ b/README.md @@ -2,42 +2,47 @@ This is the brain of the the almighty [Illumination Cat](https://www.thingiverse.com/thing:2974862). ## API +Two API architectures are supported: WebSocket and REST. +Both can be used with the same set of fields. +Everything is propagated to the mesh network automatically. + +Fields: +| Field | Type | Description | +| ------- | ------- | -----------------------------------------------| +| topic | String | Name of the topic where the data is dispatched | +| payload | Integer/String | Data | + ### WebSocket Endpoint: /pixel - -Fields: -|Field|Type|Description| -| --- |---| ---| -| topic | String | Defines which functionality is executed, usually to set a value or activate a pattern | -| payload | String | data to be set | +Send a JSON String containing the mandatory fields. Example: ``` json { "topic": "pixels/color", - "payload": "13505813" + "payload": 13505813 } ``` #### Topics -| Topic | Data | -| ----- | ---- | -| pixels/color | | -| pixels/color2 | | -| pixels/pattern | | -| pixels/totalSteps | | -| pixels/brightness | | +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. | ### REST #### Endpoints -POST /pixel/state -POST /config - -### Mesh - +Content-Type: application/x-www-form-urlencoded +POST /pixel/api + ## Features - Enduser setup: initial setup where the cat opens an access point for configuration - WiFi: connect to existing AP as client or build a mesh network where all cats act as a collective - Web controls: colors and patterns can be changed through the web interface - OTA plugin: cats connected to an AP can be updated over-the-air via TCP flash method -- [0%] audio output -- [0%] OctoPrint plugin: connect to an OctoPrint instance and reflect print status via colors \ No newline at end of file +- [0%] audio output \ No newline at end of file