Разработчикам / Язык конфигурации драйверов 1.0
Для описания конфигураций драйверов в BOOCO используется формат YAML. Это универсальный язык для описания различных структур и конфигураций в виде, доступном для чтения человеком.
Подробнее о YAML-формате (расширение .yml или .yaml).
Правила работы с файлами в формате YAML
При работе с файлами в формате YAML рекомендуется придерживаться следующих основных правил:
- Используйте ровно два пробела в качестве отступа.
- Не используйте символ табуляции (убедитесь, что в текстовом редакторе при нажатии на клавишу табуляции ставятся пробелы).
- Символ # означает комментарий (всё, что идет после него, игнорируется).
- Конфигурационные файлы BOOCO всегда начинаются с названия драйвера.
- Один файл — это один драйвер (хотя в одном файле можно указать и несколько драйверов, мы не рекомендуем так делать).
Формат интервалов времени
В качестве значений некоторых параметров нужно указать время.
Формат интервалов времени задается разными способами, например:
60000
;60000 ms
;60 sec
;60 s
;1 min
;1 m
.
Как задать логические значения
Логические значения задаются следующими способами:
true
false
;yes
no
;1
или0
.
Как задать обратные связи и аргументы команд
Обратные связи и аргументы команд имеют свои типы данных — они отличаются от типов данных, получаемых от устройств.
Какие типы данных поддерживаются
number
— числовое значение;string
— строка;[value1, value2, …]
— одно из значений, это может быть строка или число;none
— значение отсутствует (только для команд);any
— любое значение (рекомендуется использовать в исключительных случаях);boolean
— логическое значение (не рекомендуется использовать). Вместо этого типа данных лучше использовать список из двух значений, например:[
off
,
on
]
;object
— экспериментальный тип с неполной поддержкой (рекомендуется использовать в исключительных случаях — например, если нужно сохранить XML-объект или JSON-объект).
Пример:
MyDriver:
#свойства пропущены
feedbacks:
- volume: number
- power: [off, on]
channels:
- setVolume: number
- setPower: [off, on]
- powerOn: none
- powerOff: none
В этом примере заданы две обратные связи:
volume
(значение громкости) — может иметь числовое значение;power
(состояние питания) — может принимать значенияoff
илиon
.
В примере также определены три команды: setPower
, powerOn
и
powerOff
. Команда setPower
принимает аргумент off
или on
, а команды powerOn
и powerOff
вызываются без аргументов. При вызове этих команд с любым аргументом возникнет ошибка.
power
, а также значения команд setPower
, powerOn
, powerOff
и togglePower
являются специальными. Если они указаны в файле драйвера, то в веб-интерфейсе сервера BOOCO на странице Оборудование будет отображаться статус питания, а также будет доступна функция включения/выключения.