KREMEN Реклама
KREMEN Реклама

Включаем MQTT нотификацию в Klipper/Moonraker

klausko
Идет загрузка
Загрузка
07.05.2026
82
0
Техничка

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

1
Статья относится к принтерам:
Flashforge AD5X

MQTT протокол позволяет дистанционно мониторить и управлять различными устройствами. Возможно использовать это как альтернативу или дополнение к "облачным сервисам" от производителя. Все широко известные системы "умных домов" основаны на этом протоколе, например "Home Assistant".

Включаем MQTT нотификацию в Klipper/Moonraker

Выбор хостингов MQTT брокеров огромен, большая часть из них имеют бесплатные тарифы. Это и не удивительно, так как вы "оплачивате" доступ к ним информацией с ваших подключенных к нему устройств.  

Я как всегда предложу использовать собственный брокер, установленный у вас локально. Для любителей использовать отечественные сервисы, имеет смысл посмотреть на Yandex, при этом интеграция с "Алисой" будет из коробки:

Включаем MQTT нотификацию в Klipper/Moonraker

- Пользователь: "Принтер, сколько ты уже напечатал?"

- Алиса: "Как вы ко мне обращаетесь!?!"

Поддержка MQTT в последних версиях moonraker присутствует "из коробки", необходимо включить её в конфигурационном файле.

Включаем MQTT нотификацию в Klipper/Moonraker

Шаги по включению будем рассматривать на примере AD5X с установленным zmod'ом.

Данные настройки идентичны для всех принтеров с установленными klipper и moonraker. Для модификаций настроек необходимо иметь доступ к конфигурационным файлам.

Добавляем в файл "/mod_data/user.moonraker.conf" следующие строки:

[mqtt]

address: 192.168.0.1

port: 1883

enable_tls: False

username: ad5x

password: 12345

mqtt_protocol: v5

enable_moonraker_api: True

instance_name: sensor/ad5x

status_interval: 10

status_objects:

       webhooks

       print_stats

       display_status

       virtual_sdcard=progress

publish_split_status: True

Естественно предварительно редактируем учётные данные, такие как address/port сервера и username/password. Если вы будете использовать сторонний хостинг, необходимо включить SSL/TLS:

enable_tls: True

Также, если вы хотите использовать подключение к локальной службе MQTT с использованием SSL/TLS, котрая использует самоподписанный сертификат, то вам потребуется установить корневой сертификат самоподписанного CA на принтере, где размещён Moonraker.

Какие данные можно получить?

- "ваш-логин/klipper/state/virtual_sdcard/file_path": полный путь файла выведенного на печать.

- "ваш-логин/klipper/state/virtual_sdcard/file_size": размер файла выведенного на печать.

- "ваш-логин/klipper/state/virtual_sdcard/file_position": позиция файла выведенного на печать.

- "ваш-логин/klipper/state/virtual_sdcard/progress": прогресс текущей печати в процентах.

- "ваш-логин/klipper/state/virtual_sdcard/is_active": есть ли активные задачи которые выполняет принтер.

- "ваш-логин/klipper/state/print_stats/filename": имя файла выведенного на печать.

- "ваш-логин/klipper/state/print_stats/state": состояние принтера - "printing", "standby", "paused", "complete", "cancelled" или "error".

- "ваш-логин/moonraker/status": состояние принтера - "offline" или "online".

- "ваш-логин/klipper/state/idle_timeout/printing_time": время текущей печати.

- "ваш-логин/klipper/state/print_stats/print_duration": время текущей печати.

- "ваш-логин/klipper/state/print_stats/total_duration": ожидаемое время до окончания печати.

- "ваш-логин/klipper/state/idle_timeout/printing_time": время текущей печати.

Это только малая часть наиболее востребованных данных, полный список и описание настроек можно найти на:

https://moonraker.readthedocs.io/en/latest/configuration/#mqtt

Пример плиток принтера в MQTT Dash (Android):

Включаем MQTT нотификацию в Klipper/Moonraker

Для визуализации результата работы, взял китайский LED-BAR, который по случаю валялся без дела.

Включаем MQTT нотификацию в Klipper/Moonraker

В него "ушла" плата LOLIN (Wemos D1 mini), разъем питания, кнопка и диод.

Диод надо ставить от разъема питания к плате, чтобы в случае подключения к USB порту для прошивки, светодиоды не получали питание от компьютера.

На скорую руку набросал подставку, для размещения электроники и крепления LED-BAR'а.

Файлы для печати подставки разместил в разделе "3D модели", но там нет возможности разместить дополнительные файлы.

Скетч доступен на printables:

https://www.printables.com/model/1713160-visual-printer-operation-indicator-mqtt-protocol-k

В скетче так же необходимо править адрес, порт, логин и пароль для MQTT сервера. В коде есть комментарии.

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

1
Комментарии к статье
Lider 3D Реклама
Lider 3D Реклама