Мониторинг принтеров

⭐ Premium: Модуль подключается в разделе Подписка.

🖨️ Общее описание

Модуль показывает живой статус парка 3D-принтеров на странице /monitoring: Bambu Lab (облако и LAN), станки на Klipper/Moonraker (Qidi, Ender и др.). Агент на плате принтера или Raspberry Pi не нужен — CRM сама забирает данные с принтеров по расписанию.

Справочник принтеров — Справочники → Принтеры (/printers). Карточка одного принтера — /monitoring/:id.

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

⚙️ Как это работает (важно)

  • Запросы к принтеру выполняет сервер CRM в облаке, а не браузер сотрудника.
  • В карточке принтера указываете публичный IP или DNS и порт (после проброса на роутере) — для Bambu Cloud адрес не нужен.
  • Каждую минуту планировщик обновляет due-принтеры; карточки на /monitoring подтягиваются автоматически (интервал 15–60 с в зависимости от статуса).
ℹ️ Для локальных принтеров (Moonraker, Bambu LAN) на роутере фабрики настраивается проброс портов: внешний порт на белом IP → IP принтера в LAN. В CRM — этот белый IP/DNS и внешний порт.

➕ Добавление принтера

  1. Откройте Справочники → ПринтерыДобавить.
  2. Шаг 1 — Профиль: название на фабрике (например P1S #11), бренд, модель, группа (цех/ряд — для фильтра в мониторинге).
  3. Шаг 2 — Интеграция: тип подключения и параметры доступа (см. таблицу ниже).
  4. Шаг 3 — Проверка: кнопка «Проверить соединение» → зелёный результат → Сохранить.

На странице /printers есть краткая памятка по подключению и ссылка на эту страницу.

🔌 Типы подключения

Bambu Lab — Cloud

Работает из любой точки: принтер привязан к облаку Bambu.

  • Регион: World / US (email) или China (телефон + SMS).
  • После ввода учётных данных нажмите «Загрузить принтеры из аккаунта» — serial подставится из облака (вручную с наклейки обычно не нужен).
  • Если в аккаунте один принтер — serial выбирается автоматически.
  • При включённой 2FA может понадобиться access token в credentials (см. подсказки в визарде).
  • Подпись MQTT — обязательна для запуска печати из CRM на новых прошивках Bambu. В карточке принтера (Справочники → Принтеры) блок «Подпись MQTT»: логин/телефон сами по себе печать не включают. Один сертификат на всю учётку — после сохранения на одном принтере остальные той же учётки получают ключ автоматически. Как получить (Windows): Studio v02.07.01.57 → войти → вкладка «Принтеры» → выбрать любой принтер и дождаться статуса → закрыть Studio → BambuSlicerKeySaverapp_key.pem + app_cert.pem → «Сохранить ключ подписи». Либо кнопка «Получить cert из Bambu API», если на сервере настроен bootstrap. Режим Developer Mode на принтере не нужен.

Bambu Lab — LAN

Прямое MQTT-подключение к принтеру в локальной сети.

  • Host / IP — адрес, доступный с сервера CRM (см. раздел про проброс портов).
  • Порт MQTT — обычно 8883.
  • Serial — с экрана принтера или Bambu Studio (для LAN из облака не подтягивается).
  • Access code — код LAN-доступа с экрана принтера.

Klipper / Moonraker

Qidi, Ender и другие прошивки на Klipper.

  • Host / IP и порт Moonraker — обычно 7125.
  • API key — если включён в Moonraker.

🌐 Доступ к локальным принтерам из облака CRM

Принтеры в LAN имеют адреса вида 192.168.x.x. Облачный сервер CRM их не видит напрямую. В CRM вы указываете тот host:port, который доступен с сервера CRM.

Основной способ — проброс портов на роутере

На роутере фабрики настраивается правило: внешний порт на WAN → IP принтера и внутренний порт.

  • Moonraker: WAN:PORT → 192.168.1.10:7125
  • Bambu LAN MQTT: WAN:PORT → 192.168.1.10:8883

В CRM для этого принтера: host = ваш публичный IP или DNS, port = внешний порт проброса.

Несколько принтеров в одной LAN

У каждого принтера свой IP; внутренний порт Moonraker часто одинаковый (7125). Снаружи нужны разные внешние порты:

Принтер LAN Проброс на роутере В CRM (host:port)
P1S #1 192.168.1.10:7125 WAN:17125 → .10:7125 factory.example.com:17125
Qidi #2 192.168.1.11:7125 WAN:17126 → .11:7125 factory.example.com:17126

Каждый принтер — отдельная запись в справочнике со своим host и port.

📊 Страница «Мониторинг»

Маршрут /monitoring — сетка карточек принтеров.

  • Статус: печать, пауза, простой, оффлайн, ошибка.
  • Прогресс, текущий файл, температуры (если отдаёт интеграция).
  • Превью модели в печати — для Moonraker, когда URL доступен; для Bambu — в разработке.
  • Фильтры: статус, тип интеграции, группа.
  • Компактный режим отображения карточек.
  • Баннер «Ожидает приёмки» на карточке принтера — если стол завершил печать по заказу и ждёт приёмку в очереди печати. Клик открывает модалку приёмки.
  • Бейдж «local» / Управление ограничено — печать запущена локально (SD/LAN/Studio); пауза и стоп из CRM могут не работать. Следующие задания лучше запускать из очереди печати.

Клик по карточке → детальная страница /monitoring/:id: превью, прогресс, температуры, управление, баннер приёмки (если стол ждёт подтверждения) и блок «Загрузка принтера» (сколько часов печатал / в простое / оффлайн за 14 дней).

📋 Очередь печати (MES)

Полный цикл «файл → принтер → приёмка → Напечатано в заказе» — на странице /print-queue (модуль «Очередь печати» в меню). Подробная инструкция — в разделе Очередь печати.

  • Загрузка .3mf / gcode из CRM, назначение на принтер, старт и ручная приёмка.
  • Создание задания из карточки заказа и канбана; badge «Нет задания в MES».
  • Рекомендуемые принтеры после загрузки файла (свободные + совпадение материала в AMS).
  • Проверка перед стартом для Bambu: материал в AMS должен совпадать с файлом.
  • Сводка брака и «печать без заказа» за 30 дней на странице очереди.

Блок «Печать на принтерах» в заказе — только мониторинг (привязка принтера к наряду для прогресса на столе). Очередь MES — отдельный блок «Очередь печати (MES)» ниже.

🎮 Управление с карточки

На детальной странице принтера доступны:

  • Пауза / Продолжить / Стоп — для текущего задания
  • Печать через Cloud (только Bambu Cloud) — загрузка .3mf после слайса в Bambu Studio, старт через облако Bambu (нужна настроенная подпись MQTT, см. выше); опционально можно привязать заказ CRM
  • Филамент — на карточке принтера виден статус AMS / внешней катушки (только просмотр). Задать материал и цвет пока нужно во вкладке Device в Bambu Studio или Handy: Cloud ACS блокирует запись из CRM без локальной сети до принтера.

Если пауза/стоп не применились (часто у локальных заданий на China-аккаунте), появится предупреждение с кнопкой «Печать через Cloud» — так надёжнее управлять следующим запуском.

В диалоге печати: пластина (plate), AMS, калибровки. На карточке — история cloud-заданий и график температур за 24 часа.

Текущую печать (уже идущую) можно привязать к заказу в любой момент — и наоборот, один заказ может печататься сразу на нескольких принтерах, если деталей много.

Бейдж MQTT live означает, что CRM получает статус по постоянному MQTT-каналу; pull — периодический опрос. На странице мониторинга при сбое listener показывается жёлтый баннер.

🔔 Уведомления

  • Завершение печати, пауза, ошибка, переход в оффлайн — в центре уведомлений CRM.
  • В Telegram — если у сотрудника привязан бот и включены уведомления о заказах (см. Telegram бот).

🔧 Диагностика

  • Оффлайн — сервер CRM не достучался до host:port. Проверьте проброс, firewall, что Moonraker/MQTT слушает нужный интерфейс.
  • Ошибка на шаге «Проверить соединение» — исправьте параметры до сохранения.
  • Bambu Cloud — пустой список принтеров — проверьте регион, логин, для China — SMS-код.
  • Bambu LAN — serial и access code только с принтера; облачный список устройств здесь не работает.

🔗 Привязка печати к наряд-заказу

  • В сетке мониторинга на карточке виден номер заказа — клик открывает наряд-заказ.
  • Бейдж MQTT live — статусы идут мгновенно; pull — периодический опрос облака.
  • В карточке принтера можно привязать текущую печать к заказу и указать число деталей на столе.
  • Один заказ можно печатать сразу на нескольких принтерах.
  • Из наряд-заказа (если модуль мониторинга включён) — блок «Печать на принтерах» после расходов.
  • Авто-отвязка: при переводе заказа в «На упаковке/Пост. обработке», «Готов к отгрузке» или «Отгружен» CRM снимает привязку этого заказа со всех принтеров (badge на карточках исчезает). Очередь MES не затрагивается — только мониторинговая связь.