muse-gadget-sdk 中的 Epson 技能:通过 Home Link 用 IPP 打印与 eSCL 扫描
【免费下载链接】muse-gadget-sdkOpen source SDK to build Muse gadgets项目地址https://gitcode.com/gh_mirrors/mu/muse-gadget-sdk点击查看免费下载本文以仓库中的社区设备技能 skills/gadget-epson-printers/SKILL.md 为主体讲解 Muse 设备Gadget如何通过 Home Link 使用 IPP/IPPS 完成打印、通过 eSCL 完成扫描。读完后你将掌握该技能的触发条件、设备识别与前置条件、IPP 打印与 eSCL 扫描的完整工作流、结果校验方法以及技能明确划定的能力边界并能在 skills/CATALOG.md 的社区技能体系中找到它与 Brother、HP 等打印类技能的关系。技能定位社区技能按需触发该技能属于 skills/README.md 所描述的社区设备技能Community Device Skills这些技能是社区贡献的设备接入指南并非官方集成且可能最终在 Muse 产品中以更正式的形式提供。README 给出两种试用方式把仓库链接发给你的 Muse 设备让它在聊天中自行找到所需技能或在 skills/CATALOG.md 目录中查到设备后把对应的SKILL.md直接粘贴给 Muse 设备同时附上它引用的共享技能。技能的 YAML 前置元数据明确了两点关键约束name: gadget-epson-printers与目录名一致符合 README 中gadget-device-name/SKILL.md的命名规范description中特别强调只有当精确型号在发现结果中广播了对应的打印或扫描服务时才使用本技能IPP 本身不构成扫描支持。正文的开头再次强调触发条件当已确认的 Epson 打印机广播 IPP/IPPS或某台精确的 Epson 多功能机暴露了有文档记录的 eSCL 扫描服务时才使用该技能。这意味着技能是服务发现驱动而非品牌驱动的——不是看到 Epson 就接管而是看到具体广播的服务才行动。核心设计原则打印与扫描是两种独立广播的服务技能在Identify the Device识别设备一节给出两条识别规则以当前发现结果与打印/扫描能力响应为准匹配厂商/型号打印与扫描视为相互独立的服务广播了 IPP 不代表机器带扫描仪sane-airscan 的兼容列表覆盖了某台 Epson 设备也不代表这台设备用的就是 eSCL 而非其他扫描协议。这一原则与技能Sources一节引用的两份行业资料呼应sane-airscanairscan 协议实现的设备文档中列出的是这些设备支持某种扫描协议的兼容表而不区分具体走 eSCL 还是别的通道因此不能直接当成本设备的扫描协议判定依据。这与仓库中 Home Link 设备发现的实现是一致的。从源码结构看ESP32 侧的发现模块 esp32/main/net_discovery.c 会同时监听多种来源ARP、mDNSUDP 5353、SSDP1900、WSD3702、SNMP、NetBIOS每种来源用一个位标志区分SRC_MDNS、SRC_SSDP、SRC_WSD、SRC_SNMP等。打印机通常通过 mDNS 的_ipp._tcp/_ipps._tcp服务条目被发现而技能反复强调的以广播的服务条目为准正对应这个多协议发现机制发现结果里出现什么服务类型才主张什么能力。前置条件网络规则、端点与客户端技能的Prerequisites一节要求先阅读并遵循 Home Link 的网络与安全规则文档原文写作~/docs/devices/home_link.md指设备侧的 Home Link 约定当前仓库不包含该文件的本地副本因此以设备侧文档为准并明确列出执行动作前的三项必备条件条件说明实际的服务端点设备发现得到的真实 IPP/eSCL 端点IP、端口、资源路径设备认证与用户授权打印机配置的认证/TLS 信任对要打印的文档或实体扫描操作的用户许可客户端工具打印需要一个二进制 IPP 客户端扫描还需要一个支持 eSCL 的客户端以及该台设备广播的 eSCL base path注意最后一条里the exact devices advertised eSCL base path——eSCL 服务路径是逐设备广播的不能从其他 Epson 设备套用。打印工作流能力查询先行作业闭环技能 Workflow 的前两步描述 IPP 打印的完整闭环先查后打使用Get-Printer-Attributes读取打印机支持的格式、介质media、单/双面sides、分辨率、支持的操作operations以及当前状态。这一步的目的是把文档参数约束在设备实际广播的能力内——介质、分辨率、色彩、双面都要与广播能力对齐而不是按习惯默认值发送。提交并留痕用Print-Job以设备广播的格式提交文档并保留返回的作业 IDjob ID。第 2 步要求持续监控Get-Job-Attributes与打印机的 reasons原因码并且在重发之前先解决提交状态不确定的情况。这条规则解决的是局域网打印最典型的事故场景提交请求超时后直接重发导致同一份文档被打印两次。与之呼应的是同目录下的 Brother 打印技能它的Verify the Result一节给出了更细的表述——若提交超时重发前应先检查已有作业以避免重复打印。两个技能共享同一套 IPP 作业闭环思路只是 Epson 技能额外覆盖了扫描链路。这些操作依据的是 IPP 协议的作业与状态语义技能 Sources 引用了 RFC 8011本文不输出外部链接此处只说明其角色定义printer-state、job-state、printer-state-reasons等属性以及 Get/Print-Job 操作的行为。仓库中兄弟技能 Brother 打印明确给出了可用工具CUPS 的ipptool、imagetoraster/rastertopwg等Epson 技能未绑定具体工具名只要求二进制 IPP 客户端因此实操时按环境选用 ipptool 等成熟工具即可。扫描工作流eSCL 的四步受控流程对于广播了 eSCL 服务的精确型号技能给出五步中属于扫描的后三步构成一条严格的 eSCL 扫描流程读能力与状态在该 eSCL 服务 base 之下读取ScannerCapabilities与ScannerStatus然后只选择其支持的进纸来源input source、尺寸、分辨率、色彩模式与输出格式。与打印同理参数空间以设备响应为唯一依据。建作业把文档放入所选的送纸器或平板platen上用 eSCL XML 创建ScanJobs作业随后按设备协议要求跟踪返回的 jobLocation并拉取NextDocument如果网络目的地发生变化先取得授权再继续。取完即止取回所有请求的页面处理送纸器空feeder-empty与作业完成job-complete两类响应必要时关闭或取消该扫描作业本身扫描产物保存在用户批准的存储位置。其中authorize any changed network destination first一句对应 eSCL 协议中设备端可改写目标地址的行为设备返回的文档拉取地址可能与最初请求的地址不同技能要求先授权再接受避免扫描件落到未批准的目的地。整条流程与打印流程共享同一条设计逻辑先读能力、再发请求、再跟 Location/状态、最后验证终态。结果校验HTTP 状态与作业被接受都不算数技能的Verify the Result一节给出了两条反直觉但关键的校验原则打印检查 IPP 状态与打印作业的终态terminal job state而不是只看 HTTP 状态码。HTTP 200 只代表请求被设备接受不代表纸张已出来需要看job-state到达完成终态。扫描验证下载下来的媒体类型、图像/文档可读性、页数与请求设置是否一致一个被接受的扫描作业不是一个已取回的扫描件an accepted scan job is not a retrieved scan。这两条把协议层面成功与物理/内容层面成功明确区分开是本技能与通用网络操作技能最大的差别也是把该技能交给 LLM Agent 执行时最重要的护栏Agent 很容易在收到成功响应后就宣告任务完成而技能强制它继续读到终态。能力边界技能明确不做的事Limits一节划定了三条硬边界不对整个 Epson 产品线做承诺不承诺 eSCL、双面扫描duplex scanning或免认证访问——这些能力逐机验证以广播为准范围外协议WSD-only 扫描、SNMP/UDP 发现与控制、浏览器自动化、固件修改均不属于本技能。这里可以结合仓库源码看到一个有趣的对照Home Link 的发现模块 esp32/main/net_discovery.c 确实实现了 WSD、SNMP 等来源的监听SRC_WSD、SRC_SNMP位标志即发现阶段会用这些协议但 Epson 技能声明的是执行阶段边界——即使通过 SNMP/UDP 发现了设备也不据此发起 WSD-only 扫描控制。发现协议宽、操作协议窄正是这类设备技能降低误操作风险的方式。在技能目录中的位置与扩展方式在 skills/CATALOG.md 中Epson 技能与另外两个打印技能并列Brother 打印机——IPP 打印与作业状态含 MFC-J880DW 的 PWG Raster 路径HP Color LaserJet Pro M254dw——IPP 打印与状态Epson 打印机——IPP 打印在有支持的地方加 eSCL 扫描。三者同构YAML 元数据 触发条件 识别规则 前置条件 编号工作流 校验 Limits Sources。按 skills/README.md 的贡献指引若你找到了能与 Home Link 配合的其他设备可以按同样结构提交gadget-device-name/SKILL.md的 PR保持纯 Markdown。小结gadget-epson-printers 这份技能的核心价值不在于会发 IPP 请求而在于它给 Agent 定义了一套可审计的设备交互纪律以广播的服务条目为能力上限、能力查询先行、保留 job ID 与 Location 追踪到终态、HTTP 成功不等于任务成功、目的地变更需重新授权。理解这套模式后阅读目录中其他数十个设备技能如 飞利浦 Hue 桥、Roomba会发现同一套骨架只是协议与工作流各不相同。赞分享【免费下载链接】muse-gadget-sdkOpen source SDK to build Muse gadgets项目地址https://gitcode.com/gh_mirrors/mu/muse-gadget-sdk点击查看免费下载相关推荐Muse Gadget SDK 设备技能实战通过 Home Link 用 IPP 打印 HP Color LaserJet Pro M254dwMuse Gadget SDK 设备技能实战通过 Home Link 用 IPP 打印 HP Color LaserJet Pro M254dw 本文以 skMuse Gadgets 社区技能实战:通过 Muse Home Link 用 IPP 驱动 Brother 打印机Muse Gadgets 社区技能实战:通过 Muse Home Link 用 IPP 驱动 Brother 打印机 本文基于 muse gadget sdkpollyjs/utils 6.0.6 变更日志深度解读共享工具库的演进路线与破坏性变更pollyjs/utils 6.0.6 变更日志深度解读共享工具库的演进路线与破坏性变更 pollyjs/utils 是 Polly.js 生态中面向所有上一篇LlamaFarm金融欺诈检测多阶段风险识别系统下一篇AgentScope 2.0 多智能体框架实战指南让智能体的每个动作可见、可懂、可信任创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

IEC 61800-9-2能效架构重组:从磁滞损耗模型到高频开关效率的工程逻辑

IEC 61800-9-2能效架构重组:从磁滞损耗模型到高频开关效率的工程逻辑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 4:34:54 阅读更多 →
基于MQTT的温控风扇实战:从温度采集到自动降温的完整实现

基于MQTT的温控风扇实战:从温度采集到自动降温的完整实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 4:34:54 阅读更多 →
Ubuntu+Mininet实战:中小型SDN园区网络源码解析与避坑指南

Ubuntu+Mininet实战:中小型SDN园区网络源码解析与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 4:34:54 阅读更多 →

最新新闻

SpringBoot瑜伽馆管理系统毕设:设计实现与答辩要点全解析

SpringBoot瑜伽馆管理系统毕设:设计实现与答辩要点全解析

每年到了毕设季,总有一大批人被“选什么题目”卡住。Java方向的项目来来去去就是管理系统、商城、博客这三板斧,但真正能把一个管理系统讲到明白、做出亮点的人其实不多。这次我完整走了一遍SpringBoot瑜伽馆管理系统的设计与实现,从选题、建…

2026/10/9 5:11:21 阅读更多 →
深入解读 s1 仓库中 GSM8K 评测任务:从 Chain-of-Thought 到 Self-Consistency 的完整实战指南

深入解读 s1 仓库中 GSM8K 评测任务:从 Chain-of-Thought 到 Self-Consistency 的完整实战指南

大模型推理模型微调模型推理服务 【免费下载链接】s1 s1: Simple test-time scaling 项目地址: https://gitcode.com/gh_mirrors/s1/s1 点击查看 免费下载 导读 本文以 GSM8K 任务说明文档 为主线,系统讲解在 lm-evaluation-harness 中评测 GSM8K 数学…

2026/10/9 5:11:21 阅读更多 →
OLS线性回归实战指南:从核心假设到残差诊断的完整流程

OLS线性回归实战指南:从核心假设到残差诊断的完整流程

1. 为什么我们还在用两百年前的OLS1.1 一个被低估的“老家伙”最小二乘法(Ordinary Least Squares,OLS)线性回归,这个名字听起来像是统计学课本里第一章就会出现的“老古董”。很多人学完就扔,觉得它太简单、太基础&am…

2026/10/9 5:11:21 阅读更多 →
SeaTunnel FieldMapper 字段映射转换:字段删减、重命名与顺序调整实战指南

SeaTunnel FieldMapper 字段映射转换:字段删减、重命名与顺序调整实战指南

数据工程大数据批处理流处理 【免费下载链接】seatunnel SeaTunnel is a next-generation super high-performance, distributed, massive data integration tool. 项目地址: https://gitcode.com/gh_mirrors/sea/seatunnel 点击查看 免费下载 本文以 SeaTunnel 官…

2026/10/9 5:11:21 阅读更多 →
DeepSeek API在RAG客服系统中的可信生成实践

DeepSeek API在RAG客服系统中的可信生成实践

简介:本资源是一份面向企业技术负责人、AI集成工程师与客服系统开发者的实战型技术文档,聚焦DeepSeek大模型API在知识管理与智能客服两大核心场景的工程化落地。文档系统拆解了从需求分析、架构设计、数据预处理、代码实现到测试优化的全流程&#xff0c…

2026/10/9 5:11:16 阅读更多 →
叉车装上“智慧之眼”:RFID天线如何让仓储搬运秒级精准识别

叉车装上“智慧之眼”:RFID天线如何让仓储搬运秒级精准识别

在电商、制造、冷链等行业高速发展的今天,仓储管理正从“人力驱动”向“数据驱动”转变。叉车作为仓储作业的核心设备,其运行效率与作业准确性直接决定了仓库的整体效能。然而,传统的叉车作业模式中,操作员需频繁停车进行人工扫码…

2026/10/9 5:10:15 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 13:34:55 阅读更多 →