Newer
Older
smart-home-server / docs / devices / button.md

Девайс с набором физически кнопок без фиксации состояни.

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

Доступные значения индикаторов

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

GET /status

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

Состояние индикаторов

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

POST /action

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

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