Fluidd — настройки в БД Moonraker

Fluidd — веб-интерфейс поверх Moonraker (раздаётся nginx’ом статикой). Ключевой факт: свои
настройки и раскладку дашборда Fluidd хранит не в браузере, а в базе Moonraker
— namespace
fluidd. Поэтому изменение персистентно и общее для всех клиентов, а править его можно из
CLI, не заходя в UI.

Читать/писать настройки из CLI

# посмотреть весь namespace / конкретный ключ:
curl -s "http://<printer_ip>:7125/server/database/item?namespace=fluidd"            # все ключи
curl -s "http://<printer_ip>:7125/server/database/item?namespace=fluidd&key=uiSettings"
# записать (read-modify-write — прочитать value, поменять одно поле, отправить целиком):
curl -s -X POST "http://<printer_ip>:7125/server/database/item" \
  -H "Content-Type: application/json" \
  -d '{"namespace":"fluidd","key":"uiSettings","value": <весь_объект_с_правкой>}'

Верхние ключи namespace fluidd: layout, uiSettings, cameras, charts, console,
macros, webcams. Всегда read-modify-write — прочитать целиком, поменять один флаг,
записать обратно (иначе затрёшь остальное).

Раскладка дашборда (layout)

layout.layouts.<name>.<container> — массивы карточек {"id":"bed-mesh-card","enabled":false,"collapsed":false}.
Разные раскладки под ширину экрана: dashboard (обычная) и dashboard-xl-<user> (широкая, ≥1904px).
Чтобы включить карточку — выставить её enabled: true в НУЖНОЙ раскладке (для десктопа обычно в
обеих). В режиме редактирования дашборд рисует только включённые карточки; выключенные
тумблятся через Настройки → «Компоновка панели управления».

Гоча: вендор может ПРЯТАТЬ карточки

Карточку могут не вырезать из сборки, а спрятать за настройкой. Пример QIDI: карта стола и
датчики не рисуются, пока выключен тумблер enableFullDisplay (uiSettings.general.enableFullDisplay).
Сама сборка при этом стоковый Fluidd (проверяется release_info.json в каталоге раздачи —
{"project_owner":"fluidd-core","version":"vX.Y.Z"}), карточка есть и в бандле, и в лэйауте.
Диагностика «вырезали или спрятали»: если release_info стоковый и в лэйауте карточка есть, а на
дашборде её нет — ищи вендорский тумблер, а не форк. Карта стола требует ещё [bed_mesh] в
конфиге и загруженного профиля.

Источник прогресса и ETA

uiSettings.general.printProgressCalculation и printEtaCalculationмассивы источников:
["file"] (позиция в файле, нелинейно), ["slicer"] (по M73/заголовку времени — линейно),
["filament"]. Для линейного бара и точного остатка — ["slicer"] (при наличии M73 в g-коде,
см. klipper_estimator). disable_m73
это машинная настройка слайсера, не процесса.

Гоча SPA: правку БД видно только после полной перезагрузки

Fluidd — SPA. Навигация по хэшу (#/...) не перечитывает БД: после правки через API в уже
открытой вкладке настройка не подхватится. Нужен полный reload (Ctrl+Shift+R, или в автоматизации
— уход на about:blank и обратно), иначе видишь старое состояние в памяти приложения.

Родственное — KlipperScreen на слабом SBC,
приёмы форков — Klipper — приёмы работы с вендорским форком QIDI.

Источники

  • Moonraker docs: Database API (/server/database/item, namespaces)
  • github.com/fluidd-core/fluidd (release_info.json, layout, uiSettings)