## Девайс с набором физически кнопок без фиксации состояни.
**Примечание.** Устройство имеет индикацию состояния кнопок. 
Состояние кнопок хранится на сервере. 
Индикаторы и кнопки - развязаны, индикаторы могут принимать любое значение из доступных.
Хоть кнопки и программируемые, в первую очередь организация общения устройства с сервером предполагает режим переключателя.

### Доступные значения индикаторов
  - `setup` (global) - Белое мигание раз в секунду. Это значение нельзя установить намеренно, подразумевает, что устройство не подключено к серверу.
  - `nowifi` (global) - Синие мегание раз в секунду. Это значение нельзя установить намеренно. Это значит, что устройство не подключено к вайфай и разраёт свою точку доступа.
  - **Не используется!** `inprogress` (global) - Синие свечение конкретного индикатора. Это значение нельзя установить намеренно. Это значит, что устройство по указанному каналу, выполняет запрос.
  - `enabled` (channel) - Зелёное, постоянное свечение. Может использоваться для обратной связи включения какого-то устроства.
  - `disabled` (channel) - Белое, постоянное свечение. Может использоваться для обратной связи выключения какого-то устроства.
  - `mute` (channel) - Отключеная индикация, значит, что нажатие на кнопку не приведёт к какому либо действию. Например если кнопка была отключена или её нужно заглушить на время разработки.
  - `waiting` (channel) - Жёлтое, постоянное свечение. Это значение нельзя установить намеренно. Это значение устройство устанавливает на время ожидания ответа от сервера, **по таймауту 1 секунда устройство признает попытку обращения к серверу неудачной**
  - `warning` (channel) - Оранжевое мигание раз в пол секунды. Это значение подразумевает неудачное выполнение предыдущей операции. Может использоваться для обратной связи.
  - `error` (channel) - Красное мигание раз в секунду. Может использоваться для обратной связи. Например чтоб обозначить какую-то ошибку.


---

### `GET /status`

#### Пример запроса состояния индикаторов
Состояние индикаторов

```json
{
  "status": "ok",
  "indicators": "nowifi", 
  "channels": [
    {
      "id": 0,
      "indicator": "enabled"
    },
    {
      "id": 1,
      "indicator": "disabled",
    },
    {
      "id": 2,
      "indicator": "mute",
    }
  ]
}

```

### `POST /action`

#### Пример запроса на изменения состояния индикаторов

```json
{
  "action": "set_channel_state",
  "params": {
    "channel": 0,
    "state": "enabled"
  }
}

```