Здравствуй, Хабр!
Работая с MQTT, я столкнулся с утомляющим неудобством: инструменты либо только показывают сообщения, либо требуют написания кода для автоматизации, либо усложнены в развертывании. Захотелось единого локального решения — мониторинг трафика, ручная публикация команд, простая логика и HMI-панель в одном окне. Ну и графики, конечно же графики! Так я начал разрабатывать MQTT Control RS. Пользусь сам, теперь решил открыть сообществу.
Рекламой, полагаю, не является, поскольку коммерческого интереса нет, ПО бесплатно.

Несколько виджетов из набора дашборда для примера
Несколько виджетов из набора дашборда для примера

Что это такое

Это, как можете наблюдать, уже не просто клиент с текстовыми данными, а рабочая среда для IoT-инженеров и автоматизаторов:

  • Просмотр и ручная публикация в MQTT-топики.

  • Графики — возможны несколько источников на одном графике, плюс аналитика: минимум, максимум, медиана, сигма, перцентили и т.п.

  • Визуальный редактор логики на нодах (Autopilot) — без кода, посредством складывания графа из готовых настраеваемых узлов. Поддержание климата, расписание, реакция на события (например, упал уровень воды в бочке — наполнить до отметки). Все то, что должно быть автоматизировано "тихо", то есть работать без дополнительного внимания человека.

  • Конструктор HMI(Human-Machine Interface )-дашбордов — виджеты независимы, связываются через брокер. Кнопки, лампы, задвижки, моторы, индикаторы, и проч.

  • Экспорт/импорт страниц Dashboard вместе с логикой.

  • Встроенный редактор схем на сетке — задумывался для рисования проводов, труб и стен, но честно говоря, оказался ещё и занятной пиксельной рисовалкой 🎨.

Всё работает на локальной машине. Но брокер (например Mosquitto) нужен отдельно. Подходит для тестирования устройств, настройки стендов, отладки сетевого взаимодйствия приборов, создания операторских панелей и быстрой проверки гипотез.

Как это работает

Приоритет на простоту: чтобы программу можно было освоить "методом тыка", хотя некоторые знания для понимания все же нужны, например при использовании бинарной логики в автопилотах. Хотя у каждой ноды есть подробная справка по использованию, а ноды Log (из названия понятно) и Event (ручная генерация события) особенно помогут вам.

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

Одно из последних обновлений: виджеты двигателей и вентиляторов

Доработал соответствующие виджеты. Теперь имеют два независимых входа:

  • A — уставка (стоп/(пуск/обороты))

  • B — обратная связь (фактические обороты)

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

Платформы

Windows / Linux, есть сборка для одноплатников на базе Armbian. Приложение написано на Rust — потребление ресурсов скромное. Интерфейс переведён на 7 языков.

Статус и обратная связь

Проект активно разрабатывается: использую сам, закрываю реальные потребности. Ну или правлю, то что показалось неудачным . Не финальный продукт, а самый что ни на есть рабочий инструмент, который непосредственно допиливается и шлифуется.

Если нужно связать MQTT, графику и логику без написания кода — попробуйте. Набор нод компактный, меньше полусотни. Особо выделю ноду «Логический скрипт» (раздел «Поток») — это микроскрипт внутри графа, удобный для сложных вложенных условий, чем убивает необходимость использовать миллион других нод.

Реализация Blink(мигалка), на ноде скрипт, с разными периодами включения и выключения (влезло не полностью)
Реализация Blink(мигалка), на ноде скрипт, с разными периодами включения и выключения (влезло не полностью)

Буду рад фидбеку по UX, недостающим функциям и вашим сценариям использования. Используйте на здоровье! Связаться можно так же через меню Помощь - О программе.

📥 Скачать с сайта MQTT Control RS (возможно потребуется особый доступ к интернету), либо, взять напрямую с гита