Перейти к содержимому
Bambu Bar

Руководство

MQTT в Bambu Lab — простыми словами

Принтеры Bambu Lab сообщают свой статус по MQTT — лёгкому протоколу обмена сообщениями — напрямую приложениям в вашей сети. Вот как устроено это подключение и как его использует Bambu Bar.

Коротко

На каждом принтере Bambu Lab работает сервер MQTT в вашей локальной сети — на порту 8883 с шифрованием TLS. Приложение входит с именем пользователя bblp и кодом доступа принтера, подписывается на топик отчётов принтера и получает обновления статуса примерно раз в секунду.

Чтение статуса работает в любом режиме. Отправлять команды, например паузу и остановку, сторонние приложения могут только в режиме Только локальная сеть с включённым режимом разработчика. Так работают и подключение Bambu Studio по локальной сети, и Bambu Bar.

Подключение

Протокол MQTT поверх TLS
Порт 8883 на принтере
Имя пользователя bblp
Пароль 8-значный код доступа принтера
Топик статуса device/<serial>/report
Топик команд device/<serial>/request

Принтер — это сервер: приложения подключаются к нему напрямую по вашей сети, без облака Bambu Lab.

Отчёты: что отправляет принтер

После подключения приложение один раз запрашивает полный отчёт (запрос pushall), а затем получает изменения по мере их появления — во время печати примерно каждую секунду. Отчёты приходят в формате JSON и содержат задание и его этап, прогресс и слои, оставшееся время, температуры сопла, плиты и камеры печати, вентиляторы, лотки AMS с их филаментом и ошибки принтера (коды HMS).

Bambu Bar сводит эти изменения в единую картину принтера — её и показывают строка меню, окно и виджеты. Разные модели сообщают разные поля, поэтому A1 не показывает температуру камеры печати, а H2D показывает два сопла.

Запросы: что отправляют приложения

Команды отправляются в топик запросов: пауза, возобновление, остановка, скорость печати, подсветка камеры печати или запрос полного отчёта. Что принять, решает принтер: в актуальных прошивках сторонние приложения могут отправлять команды печати, только когда принтер в режиме Только локальная сеть с включённым режимом разработчика. Иначе Bambu Bar показывает на этих кнопках замок. См. почему управление заблокировано.

Сертификаты: как убедиться, что это ваш принтер

Подключение зашифровано с помощью TLS, и каждый принтер предъявляет сертификат. Bambu Bar принимает принтер, только если этот сертификат выстраивается в цепочку до собственных центров сертификации Bambu Lab, которые поставляются вместе с приложением, и выдан на серийный номер этого принтера. Так никакое другое устройство в вашей сети не сможет выдать себя за принтер и перехватить код доступа.

Обнаружение и камера

  • Обнаружение: принтеры объявляют о себе в вашей сети по UDP (порт 2021). Так приложения находят принтеры без IP-адреса, и так Bambu Bar замечает, что принтер получил новый адрес.
  • Камера работает не через MQTT: принтеры X1, H2, H3C, P2S и X2D передают видео по RTSPS (порт 322, при включённом LAN Only Liveview), а принтеры P1, A1 и A2L — зашифрованным потоком JPEG (порт 6000). См. камера на вашем Mac.

Посмотрите отчёты сами

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

mosquitto_sub -h <printer-ip> -p 8883 -u bblp -P <access-code> --insecure -t "device/<serial>/report"

--insecure пропускает проверку сертификата, поэтому используйте его только в сети, которой доверяете, и только для чтения. Никогда не вставляйте свой код доступа или серийный номер в сообщения на форумах и отчёты об ошибках.

Не публичный API

Это протокол, который собственные приложения Bambu Lab используют в локальной сети, а не документированный стабильный API: поля различаются в зависимости от модели и версии прошивки, и Bambu Lab может изменить то, что принимает принтер. Bambu Bar отслеживает эти изменения, чтобы вам не приходилось. О задействованных настройках принтера читайте в статье что такое режим LAN, а также где найти код доступа.

Вопросы и ответы

Какой порт использует принтер Bambu Lab для MQTT?

Порт 8883 с TLS. Имя пользователя — bblp, пароль — код доступа принтера.

Нужен ли режим «Только локальная сеть», чтобы читать статус по MQTT?

Нет. Принтер сообщает статус локальным приложениям и в облачном режиме. Режим «Только локальная сеть» с режимом разработчика нужен, чтобы сторонние приложения могли отправлять команды печати.

Использует ли Bambu Bar облако Bambu Lab?

Нет. Он подключается напрямую к локальному серверу MQTT принтера, как Bambu Studio в режиме LAN, и сначала проверяет сертификат принтера.

Хватит ходить к принтеру

Следите за печатью Bambu Lab на Mac: прогресс, оставшееся время, температуры, филамент AMS и видео с камеры. Уведомления и виджеты без открытия Bambu Studio.

Купить за 9,99 USDСкоро вMac App Store

Прогресс печати, уведомления и филаментmacOS 26+, Apple silicon и IntelСкоро: Windows и Linux