Написание драйверов устройств

Разработчикам / REST API для BOOCO Meteor (v 1.x)

В большинстве случаев для добавления новых драйверов не нужно писать скрипты. Достаточно создать конфигурационный yml-файл.

При необходимости можно создавать собственные драйверы с использованием внутренних или внешних скриптов. При добавлении устройств со скриптовым драйвером BOOCO будет запускать соответствующий скрипт, передавая ему параметры устройства.

Скрипт должен:

  • самостоятельно получать и обрабатывать информацию от устройства;
  • устанавливать соответствующие обратные связи;
  • подписаться на вызовы команд и исполнять их, отправляя необходимые данные на устройство.

Для скриптовых драйверов (как для любых конфигурируемых драйверов) необходимо создать конфигурационный файл. Пример конфигурационного файла:

MyScriptDevice:
  driver-type: script # тип драйвера
  script: my-script-device.js # имя скрипта-обработчика
  # Настраиваемые параметры — задаются произвольно
  ping-timeout: 10sec
  host:
  port: 5000

  # Описание обратных связей
  feedbacks:
    - status: [disconnected, connected]
      value: disconnected
    - power: [off, on]
      value: off
    - volume: number
      value: 0
  # Описание команд
  channels:
  - togglePower: [off, on]
  - setVolume: number

В данном примере ping-timeout, host и port — параметры устройства, которые можно устанавливать и изменять при добавлении конкретных устройств.

Для установки обратной связи в скрипте необходимо вызвать метод API setFeedback. Например: /api/v1/equipment/setFeedback/device1/volume/99 — установить значение обратной связи volume в значение 99 для устройства device1.

Для обработки команд нужно подписаться на equipment/channels/subscribe. При каждом вызове той или иной команды будет отправляться уведомление в скрипт, который должен будет обработать команду и отправить данные на устройство.