PrintDeck
收集打印机数据
PrintDeck 将统一格式的打印机数据发送到 Mosquitto 等本地代理。应用订阅更新,无需反复请求 REST API。HTTP 和 MQTT 可以独立运行,也可以同时使用。
收集打印机数据
向订阅者发送更新
Mosquitto仪表板、灯光、通知
Node-RED · Home Assistant从一台打印机和一个订阅开始。Home Assistant 并非必需。
使用 Mosquitto 等本地 MQTT 代理。PrintDeck 和应用都是代理的客户端;PrintDeck 本身不提供代理服务。创建登录凭据,允许 PrintDeck 发布主题,并允许应用读取这些主题。
在 Web Config 中打开设备设置 > Unified API。开启 MQTT,输入代理地址、端口和凭据,保存并检查连接。TLS 设置应与代理一致。使用自己的应用时,请关闭 Home Assistant 自动发现。
将 MQTT 客户端连接到同一代理。从 Web Config 复制 MQTT 主题根路径,追加 /printers/+/status。+ 匹配每台已保存的打印机。在 PrintDeck 上选择一台在线打印机,等待约五秒即可收到新数据。
主题根路径为 printdeck/<printdeck_id>/v1。从 Web Config 复制实际路径并追加以下后缀。使用 printers 目录中的打印机 ID,或用 + 匹配所有打印机。
阅读完整 API 指南/printers已保存打印机及其 ID 的目录。由代理保留。
/printers/+/status当前任务状态、进度、温度和近期事件日志。约每五秒发送一次实时消息。
/printers/+/events检测到的单个事件,例如 started、completed 或 milestone。使用 event_type 选择操作,使用 event_id 标识通知。
/availability代理保留的 PrintDeck 连接状态:online 或 offline。每台打印机的状态消息中都有独立的 status.connection.state。

每台 PrintDeck 选择一种接入方式,以保留一组实体。
共享的只读数据
MQTT 使用与 REST 相同的统一打印机字段,并附带传输元数据。状态约每五秒更新一次;非活动打印机仍按打印机列表刷新间隔更新。实时遥测和事件不会保留在代理上。
使用读数前,检查 status.connection.state、status.connection.stale 和 status.connection.detail_level。未知值为 null。目录和状态消息中的 _mqtt_generation 必须一致;发生变化时清除旧读数。
事件描述检测到的变化;短暂变化可能被遗漏。单个事件采用 QoS 0,不保留也不重放。状态日志保留最近八条观察记录。跟踪 stream_id 和 sequence 以避免重复操作,重连后先建立基准,不触发历史事件操作。完整事件约定见 API 指南。
检查代理地址、端口、TLS 和主题权限。使用 Web Config 中的准确主题根路径。实时状态不保留,请等待下次更新。代理登录凭据与 REST bearer 令牌不同。
启用 TLS 时,PrintDeck 会验证代理证书和主机名。如有需要,可添加自己的 CA 证书。已保存的机密信息留在 PrintDeck 上。代理重启后,PrintDeck 会重新连接并发布新数据。
更换服务器或切换到 HACS MQTT 前,请在旧服务器仍可访问时关闭自动发现,并等待清理完成。若无法访问旧服务器,可能需要手动删除其保留的发现条目。重命名保留打印机身份,删除配置会移除其发现配置。
在 API 指南中查看完整主题参考、消息字段和传输规则。