Сценарии в MajorDoMo - создавай без программирования

Сценарии в MajorDoMo Комментариев нет

Всем доброго дня!

Сегодня я хочу поговорить о том, какой есть интересный способ писать сценарии для оборудования в системе MajorDoMo.
Зачастую написание сценария ассоциируется с программированием и, на самом деле, это так.
Однако, само по себе программирование бывает разным и не стоит заранее настраивать себя на то, что это будет сложно и скучно.
В этой небольшой статье я хочу рассказать, как может быть “по-другому”.

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

Тем не менее, мы пошли ещё дальше и задумались о том, можно ли создавать сценарии в MajorDoMo вовсе без написания кода?

И в наших поисках вышли на такой проект, как Google Blockly.
Этот проект представляет собой инструмент так называемого “визуального программирования”, когда вместо написания кода применяются графические блоки и для написания программы пользователю достаточно лишь составить их в нужном порядке. Google Blockly является проектом с открытым исходным кодом с лицензией, позволяющей свободно использовать этот инструмент как часть любого другого проекта, так что мы с удовольствием внедрили его в MajorDoMo и теперь везде, где в MajorDoMo можно вставить свой код, появился переключатель перехода в режим программирования с помощью Blockly. Например, вот как это выглядит этот переключатель в разделе сценариев:

Таким образом, выбрав режим программирования Blockly можно нажать на ссылку Редактировать и откроется окно визуального редактора:

Как мы видим, в левой части идёт список основных категорий, на которые разбиты все доступные блоки. По клику на категорию открывается список блоков и любой из доступных блоков можно переместить в правую часть в основную рабочую область, где как раз строится наша программа. По нажатию на кнопку OK в верхней правой части окна, наша программа автоматически сохранится в качестве сценария для системы MajorDoMo.

На самом деле, в результате работы в среде Blockly мы получаем всё тот же код, который можно посмотреть, переключившись в режим PHP:

Но переключаться в этот режим в большинстве случаев и не понадобится, так как все возможности системы доступны и режиме визуального редактирования блоков.

Какие же бывают блоки и что с ними можно делать? Во-первых, блоки делятся по типам “встраивания” их в программу. Некоторые блоки могут быть встроены последовательно друг за другом, как определенные инструкции (блок “произнести”):

Другие же блоки могут быть использованы как параметры (текстовые фразы в примере выше). Визуально вариант использования блока четко определяется по его внешнему виду, так что тот, кто хоть раз собирал паззл, сразу поймет, как блоки стыкуются друг с другом.

Существуют также блоки, которые могут включать в себя “дочерние” наборы блоков. Например блоки из категории Логика или Циклы:

Таким образом, можно собирать довольно сложные конструкции, не заботясь о том, что необходимо знать особенности написания кода для их реализации.

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

  • Общее -- некие общие функции системы MajorDoMo (произнести, проиграть звуковой файл и т.п.)
  • Объекты -- блоки работы с объектами, их методами и свойствами
  • Время -- блоки работы с текущим временем и таймерами
  • Логика -- блоки условий и логических операций
  • Циклы -- блоки повторов и циклов
  • Математика -- математические операции
  • Текст -- блоки работы с текстовыми строками
  • Списки -- работа со списками (массивами данных)
  • Цвет -- работа с цветом
  • Переменные -- возможность создания и повторного использования переменных
  • Функции -- блоки создания собственных функций и их применение в программе
  • Простые устройства -- блоки операций со всеми добавленными в систему устройствами и их данными
  • Сценарии: … -- созданные пользователем сценарии (каждый из сценариев автоматически становится блоком, который можно использовать в другом сценарии).

Из полезных возможностей редактора можно также отметить функцию добавления комментариев, доступную по клику правой кнопкой мыши на любой выбранный блок:

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

Подводя итоги, можно сказать, что работа в режиме Blockly является простой и увлекательной альтернативой написанию кода, так что даже тот, кто никогда не сталкивался с программированием, может легко создавать сценарии автоматики в системе MajorDoMo.

Поделитесь в соц сетях

Теги: