Вместо предисловия
Признаюсь честно, Node-Red открыл для себя только со второго раза и вот почему. Вот уже более 20 лет я занимаюсь пусконаладочными работами оборудования, которое в своей основе имеет контроллеры - ПЛК (PLC) и множество периферийных исполнительных и измерительных устройств: электропривода, датчики, измерительные устройства и т.д. Так что я прекрасно представляю работу систем промышленной автоматизации и, пользуясь этим опытом, стараюсь построить свою домашнюю систему автоматизации.
Почему не ПЛК (PLC)?
Возникает периодически много споров на нашем канале в Телеграмм и хочу высказать свое мнение по этому поводу. Я бы с большим удовольствием создал управление умным домом на основе ПЛК, даже имею знакомых, которые это сделали. Есть одно большое но в этом случае. Все, кто использовал ПЛК, имели возможность получить контроллер в пользование даром или за минимальные деньги. Надеюсь ответ на главный вопрос, почему я не пошел по этому пути - это банальное отсутствие лишних средств. Контроллеры Siemens стоят достаточно дорого, чтобы забыть о них для большинства. Любителям использования ПЛК дома, на советы искать на вторичном рынке, использовать других производителей, я отвечу одно. На всех дешевых вторичных ПЛК не хватит, а более дешевые модели от менее известных производителей - это все равно не дешево. При том, это - отсутствие нормальной поддержки производителя, отсутствие обширного сообщества, которое может поделится опытом в реализации ваших задач.
Node-red
Node-Red - это свободно распространяемое ПО (Open sourse), которое выпустила всемирно известная компания IBM, что уже заставляет относится к этому c уважением. Эта платформа активно развивается и позволяет использовать дополнительные модули (плагины), написанные сообществом, для упрощения реализации индивидуальных задач. При желании или при отсутствии необходимых модулей, можно создать необходимую автоматизацию, используя только базовые блоки Node-Red.
Почему я его выбрал только со второго раза?
Выше я писал, что пришел в Node-red не с первого раза и причина была в следующем. Я искал среду, похожую на ту, в которой я программирую промышленные контроллеры. Для удобства и по визуализации Node-red подходил, но как оказалось, принципы работы с данными совсем различны. Контроллеры (ПЛК) работают по циклам (общий цикл, циклы по различным прерываниям), постоянно опрашивая как свои модули, так и модули децентрализованной периферии (удаленные устройства, подключенные по шине передачи данных). Как правило, основные данные всегда глобальны, т.е. всегда можно извне получить к ним доступ для отладки и анализа происходящего. В Node-Red я такой возможности сразу не обнаружил и поэтому я его не воспринял сходу.
Node-Red работает с прилетающими сообщениями, причем совершенно асинхронно. Сообщение прилетело, прошло сквозь ноды, видоизменяясь или блокируясь, и выполнив (или не выполнив) свою задачу, оно больше не доступно. Чуть более глубокое погружение в Node-Red показало мне наличие неплохих возможностей тестирования и отладки. Ноды: Inject и Debag позволяют посылать тестовые сообщения и отображать результат работы. С глобальными данными, которые потом можно анализировать и использовать, оказалось тоже просто. Вы сами их определяете в процессе создании автоматизации. Также для меня пригодился инструмент, позволяющий формировать самому статус под нодой функции, чтобы наглядно видеть происходящее, не обращаясь к Debug ноде.
Выводы
У Node-Red все же очень много общего с той средой, в которой программируются ПЛК (PLC) и, наверное, это подтолкнуло меня выбрать именно его в качестве инструмента для создания домашних автоматизаций. Для использования Node-Red коллегами, занимающихся программированием контроллеров, я бы советовал изменить подход к данной платформе и не воспринимать ее буквально как тоже самое. То, чего не хватает, необходимо создать самому. Все необходимые инструменты для создания полноценных автоматизаций, а именно, возможность использовать программный код, триггеры, таймеры, элементы сравнения и булевой алгебры, имеются в базовой версии или загружаются как внешние ноды. Коллегами нашего сообщества написаны не только прекрасные Node-Red плагины для работы с Z-Vawe и Zigbee Deconz, которые существенно облегчают работу с устройствами, поддерживающими данные протоколы, но и плагины для работы с готовыми умными устройствами. Загляните в раздел плагины на sprut.ai и убедитесь сами.
С какими контроллерами работаете? Сам работаю в асутп.
В основном с Siemens, очень редко с Элен Бредли, но их почти не знаю, помогают коллеги.
Спасибо за статью!
Скажите, как сделать отображение статуса под нодой?
Статус делается внутри функции
https://nodered.org/docs/creating-nodes/status">https://nodered.org/docs/creat...