О проекте

MajorDoMo – это программное обеспечение, которое устанавливается на сервер в локальной сети и обеспечивает взаимодействие между оборудованием от различных производителей как в ручном режиме (через устройства управления), так и в автоматическом режиме по заданным сценариям.

Общая схема организации автоматизированной системы представлена на следующей диаграмме:

!theme plain
scale 4/5
node "Сервер MajorDoMo" as mjd #99FF99 {
 node "- Сервисы (HTTP, MQTT и т.п.)\n- Пользовательский интерфейс\n- Среда настройки\n- Программные модули\n- Сценарии автоматизации\n- База данных\n- API"
}
node "Устройство 1\nУстройство 2\nУстройство 3\n..." as wifidevices
node "Устройство 4\nУстройство 5\nУстройство 6\n..." as zigbeedevices
component "Сетевые хабы\n(Zigbee, KNZ, ZWave и т.п.)" as zigbeehub
usecase "Локальное управление:\n- Планшеты\n- Телефоны" as controldevices
cloud "CONNECT\n(сервис в Интернете)" as connect
usecase "Удалённое управление" as remotecontrol
node "Умные колонки:\n- Яндекс.Алиса\n- GoogleHome\n- Amazone Alexa" as smartspeakers
:Пользователи: as users

mjd<-->controldevices
mjd<-->wifidevices
mjd<-->zigbeehub
zigbeehub<-->zigbeedevices
users-->controldevices
mjd<..>connect
connect<-->smartspeakers
connect<-->remotecontrol
users-->remotecontrol
users-->smartspeakers

Не смотря на то, что сервер MajorDoMo является центральным узлом, это не означает, что оборудование не может или не должно взаимодействовать друг с другом напрямую. Более того, работа критически важного оборудования должна быть организована таким образом, чтобы минимизировать количество промежуточных узлы, которые потенциально могут стать точками отказа. Это справедливо в том числе и к системе MajorDoMo, так как надёжность её работы зависит от многих параметров конфигурации сервера.