Подключение оборудования
В данном разделе документации мы расскажем об общей концепции работы с оборудованием в системе MajorDoMo.
Модель работы представлена на данной диаграмме:
scale 4/5
!theme plain
participant "Физическое\nустройство" as device
box "MajorDoMo" #LightBlue
participant "Модуль работы\nс определённым\nоборудованием" as module
participant "Виртуальный\nобъект" as object #LightGreen
participant "Внутренняя логика" as logic
participant "Интерфейс\nпользователя" as ui
end box
actor "Пользователь" as user
device<->module: Взаимодействие с устройством \n(протокол взаимодействия)
module<->object: Изменение свойства
module->object: Активация метода
object<->logic: Изменение свойства
object<->logic: Активация метода
object<->ui: Изменение свойства
object<->ui: Обновление интерфейса
object<->ui: Активация метода
ui<->user: Взаимодействие\nс пользователем
Физическое устройство – конкретное оборудование, выполняющее заложенную в него функцию (управляемый выключатель, датчик, умная лампочка и т.п.)
Модуль взаимодействия с оборудованием – программный код, являющийся частью платформы MajorDoMo, который “знает” протокол взаимодействия с оборудованием и умеет осуществлять двунаправленный обмен данными и управляющими командами между физическими устройствами и связанными с ними сущностями виртуальных объектов системы. Подобные модули обычно не являются частью ядра системы и устанавливаются дополнительно через маркет дополнений.
Виртуальный объект – внутренняя сущность хранение данных и методов, являющаяся связующим звеном между реальным оборудованием и другими частями системы. Подробнее данная сущность рассматривается в разделе Объектная модель. Дополнительно, для упрощения настройки и создания типовых объектов, в системе предусмотрена концепция Простые устройства.
Внутренняя логика – различные процедуры активации действий и реакции на события (таймеры, сценарии и т.п.)
Интерфейс пользователя – один из предоставляемых системой способов взаимодействия (веб-интерфейс, мобильное приложение, голосовой помощник и т.п.)
Таким образом, для успешной интеграции оборудования необходимо следующее:
- Модуль, поддерживающий работу с оборудованием
- Связанное (через модуль) виртуальное представление оборудования в системе
- (опционально) Настроенный интерфейс пользователя для взаимодействия с виртуальным объектом
- (опционально) Настроенная логика реакции на изменение параметров или управления виртуальным объектом