← 返回 Skills 市场
johnqxu

dot eprint Quote/0

作者 johnqxu · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
90
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install dot-eprint-controller
功能描述
控制 Dot. 电子墨水屏设备——查询状态、推送文本/图像、管理内容
使用说明 (SKILL.md)

Dot. 电子墨水屏设备控制

你可以通过 Dot. API 控制用户的电子墨水屏设备,包括查询状态、推送文本和图像内容、管理播放列表。

前置检查

在执行任何操作之前,必须确认环境变量已配置:

  • DOT_API_KEY — API 密钥(在 Dot. App 中获取)
  • DOT_DEVICE_ID — 设备序列号(在 Dot. App 中获取)

如果缺少任一变量,停止操作并提示用户:

  • 缺少 DOT_API_KEY:"请先设置 DOT_API_KEY 环境变量,您可以在 Dot. App 中获取 API 密钥"
  • 缺少 DOT_DEVICE_ID:"请先设置 DOT_DEVICE_ID 环境变量,您可以在 Dot. App 中获取设备序列号"

通用配置

  • Base URL: https://dot.mindreset.tech
  • 认证: 所有请求必须在 Header 中携带 Authorization: Bearer $DOT_API_KEY
  • 限流: API 限制每秒 10 次请求,避免短时间内连续发送多个请求

错误处理

每次 API 调用后,检查 HTTP 状态码。如果响应码非 200,按以下映射向用户展示友好提示:

HTTP 状态码 用户提示
400 请求参数有误,请检查内容格式
403 认证失败,请检查 API 密钥或设备归属
404 设备未找到,或未配置对应的内容类型
429 请求过于频繁,请稍后再试
500 服务器暂时异常,请稍后重试

使用 curl 的 -w 参数捕获状态码:-w "\ %{http_code}",解析最后一行判断是否成功。

1. 查询设备状态

当用户询问设备电量、WiFi 信号、当前显示内容等状态信息时使用。

curl -s -w "\
%{http_code}" \
  "https://dot.mindreset.tech/api/authV2/open/device/$DOT_DEVICE_ID/status" \
  -H "Authorization: Bearer $DOT_API_KEY"

响应字段说明:

  • status.battery — 电池状态(如 "充电中"、"50%")
  • status.wifi — WiFi 信号强度(如 "-62 dBm")
  • status.current — 当前状态描述(如 "电源活跃中")
  • status.description — 状态详细说明
  • status.version — 设备固件版本
  • renderInfo.last — 上次渲染时间
  • renderInfo.current.image — 当前显示的图片 URL 数组
  • renderInfo.current.rotated — 是否旋转
  • renderInfo.current.border — 当前边框设置
  • renderInfo.next.battery — 下次电量刷新时间
  • renderInfo.next.power — 下次电源刷新时间
  • alias — 设备别名
  • deviceId — 设备序列号

根据用户的具体问题,提取对应字段并用中文回复。如果用户问"设备怎么样",则展示完整状态摘要。

2. 列出设备内容

当用户想查看墨水屏上的内容列表时使用。

curl -s -w "\
%{http_code}" \
  "https://dot.mindreset.tech/api/authV2/open/device/$DOT_DEVICE_ID/loop/list" \
  -H "Authorization: Bearer $DOT_API_KEY"

将路径中的 loop 替换为 fixed 可查看固定内容。

响应为数组,每个元素包含:

  • type — 内容类型(TEXT_APIIMAGE_API
  • key — 任务唯一标识(用于更新指定内容时传递 taskKey)
  • refreshNow — 是否立刻显示
  • title / message — 文本内容的标题和正文(仅 TEXT_API 类型)
  • border / ditherType / ditherKernel — 图像内容参数(仅 IMAGE_API 类型)

将列表格式化为用户可读的格式展示,例如:

循环内容列表:
1. [文本] Hello - World (key: text_task_1)
2. [图像] (key: image_task_1, 抖动: DIFFUSION/FLOYD_STEINBERG)

3. 推送文本内容

当用户想在墨水屏上显示文字时使用。

curl -s -w "\
%{http_code}" \
  -X POST \
  "https://dot.mindreset.tech/api/authV2/open/device/$DOT_DEVICE_ID/text" \
  -H "Authorization: Bearer $DOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "refreshNow": true,
    "title": "标题",
    "message": "正文内容",
    "signature": "签名",
    "icon": "base64编码的PNG图标",
    "link": "https://example.com",
    "taskKey": "text_task_1"
  }'

参数说明:

  • refreshNow (bool, 默认 true) — 是否立刻刷新屏幕显示
  • title (string, 可选) — 文本标题
  • message (string, 可选) — 文本正文
  • signature (string, 可选) — 签名
  • icon (string, 可选) — base64 编码的 PNG 图标数据
  • link (string, 可选) — 碰一碰跳转链接
  • taskKey (string, 可选) — 指定要更新的内容槽位。不传则默认更新第一个文本内容

根据用户的意图选择参数:

  • 用户只提供一段文字 → 仅设 messagerefreshNow: true
  • 用户提供标题和内容 → 设 titlemessage
  • 用户要求签名 → 额外设 signature
  • 用户提到链接 → 额外设 link
  • 用户要更新特定内容 → 先调用列出内容 API 获取 taskKey,再设置 taskKey

成功时向用户确认:"文本已推送到墨水屏设备"。

4. 推送图像内容

当用户想在墨水屏上显示图片时使用。

4.1 图像预处理

推送图像前,必须先将图片处理为 296×152 像素的 PNG 格式并进行 base64 编码。

检查 ImageMagick 是否可用:

which convert 2>/dev/null

如果 convert 不存在,停止并向用户提示: "推送图片需要 ImageMagick,请先安装:brew install imagemagick(macOS)或 apt install imagemagick(Linux)"

图像处理命令:

TMPFILE=$(mktemp /tmp/dot-eprint-XXXXXX.png)
convert "$INPUT_IMAGE" -resize 296x152 -gravity center -background white -extent 296x152 PNG:"$TMPFILE"
BASE64_DATA=$(base64 -w 0 "$TMPFILE")
rm -f "$TMPFILE"

注意:

  • -resize 296x152 保持宽高比缩放
  • -gravity center -background white -extent 296x152 居中放置,空白区域填充白色
  • base64 -w 0 确保输出不换行(单行字符串)
  • 在 macOS 上使用 base64 -i 代替 base64 -w 0

4.2 推送图像

curl -s -w "\
%{http_code}" \
  -X POST \
  "https://dot.mindreset.tech/api/authV2/open/device/$DOT_DEVICE_ID/image" \
  -H "Authorization: Bearer $DOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "refreshNow": true,
    "image": "'"$BASE64_DATA"'",
    "link": "https://example.com",
    "border": 0,
    "ditherType": "DIFFUSION",
    "ditherKernel": "FLOYD_STEINBERG",
    "taskKey": "image_task_1"
  }'

参数说明:

  • refreshNow (bool, 默认 true) — 是否立刻刷新屏幕显示
  • image (string, 必填) — base64 编码的 PNG 图像数据(296×152)
  • link (string, 可选) — 碰一碰跳转链接
  • border (number, 默认 0) — 屏幕边框颜色,0=白色,1=黑色
  • ditherType (string, 默认 "DIFFUSION") — 抖动类型,可选值:
    • DIFFUSION — 误差扩散(默认,适合照片)
    • ORDERED — 有序抖动(规则网格感)
    • NONE — 关闭抖动(适合文字图像,文字更锐利)
  • ditherKernel (string, 默认 "FLOYD_STEINBERG") — 误差扩散算法,仅在 ditherType 为 DIFFUSION 时有效,可选值:
    • THRESHOLD, ATKINSON, BURKES, FLOYD_STEINBERG, SIERRA2, STUCKI, JARVIS_JUDICE_NINKE, DIFFUSION_ROW, DIFFUSION_COLUMN, DIFFUSION_2D
  • taskKey (string, 可选) — 指定要更新的内容槽位

推荐策略:

  • 照片/复杂图像 → ditherType: "DIFFUSION", ditherKernel: "FLOYD_STEINBERG"
  • 文字图像 → ditherType: "NONE"
  • 用户未指定 → 使用默认值即可

成功时向用户确认:"图像已推送到墨水屏设备"。

5. 切换到下一个内容

当用户想手动切换墨水屏显示到下一个内容时使用。

curl -s -w "\
%{http_code}" \
  -X POST \
  "https://dot.mindreset.tech/api/authV2/open/device/$DOT_DEVICE_ID/next" \
  -H "Authorization: Bearer $DOT_API_KEY"

此接口不需要请求体。成功时向用户确认:"已切换到下一个内容"。

安全使用建议
这个技能在设计上是自洽的:它需要 DOT_API_KEY 和 DOT_DEVICE_ID 来控制设备,用 curl 与 dot.mindreset.tech 的 API 通信,并用 ImageMagick 处理图像。安装风险低(无自动下载或脚本)。在安装前请注意: - 确认 dot.mindreset.tech 是您信任的官方/第三方服务端点(API 密钥会授予远程控制设备的权限)。 - 不要向此技能或平台泄露不必要的 API 密钥;只使用为该设备专门生成的密钥。 - 推送图片会读取您本地提供的图像路径并将其以 base64 形式上传,确保您不会意外上传敏感图片。 - 如果您对域名或服务提供者不熟悉,可先在浏览器/厂商渠道核实该 API 的真实性再使用。
功能分析
Type: OpenClaw Skill Name: dot-eprint-controller Version: 1.0.0 The skill bundle provides instructions for an AI agent to manage Dot. e-ink display devices via the official API at https://dot.mindreset.tech. It uses standard system utilities like curl for API interaction and ImageMagick (convert) for image resizing and formatting. The logic is transparent, follows the stated purpose of device management, and does not exhibit signs of data exfiltration, unauthorized execution, or malicious prompt injection.
能力评估
Purpose & Capability
技能名/描述是控制 Dot. 设备;它只要求 curl(API 调用)和 convert(ImageMagick,用于图像预处理),以及 DOT_API_KEY 和 DOT_DEVICE_ID,这些与描述直接相关且数量合理。
Instruction Scope
SKILL.md 明确列出要调用的 API、请求头和参数、如何处理图像以及错误处理;没有指示读取与任务无关的系统文件或环境变量,也没有将数据发往与 Dot. 无关的远端地址。唯一需要注意的是图像上传会读取用户提供的本地图片路径($INPUT_IMAGE),这属于预期行为。
Install Mechanism
这是一个纯说明性技能(无安装脚本、无下载),仅在文本中建议如何安装 ImageMagick(brew/apt),没有写入磁盘或执行远程下载的安装步骤。
Credentials
仅要求 DOT_API_KEY(主凭据)和 DOT_DEVICE_ID,两者都是执行设备控制所需且合理的。没有请求其他不相关或过多的凭据。
Persistence & Privilege
技能不是 always:true,不修改其他技能或系统配置,默认允许模型调用(平台默认行为),权限范围与描述相符。
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install dot-eprint-controller
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /dot-eprint-controller 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
dot-eprint-controller v1.0.0 - 首次发布,支持通过 Dot. API 控制电子墨水屏设备 - 实现设备状态查询、内容列表查看、文本/图片内容推送及内容切换 - 提供详细参数选择、返回解析及错误码友好提示 - 图像推送前自动完成尺寸调整与 base64 编码(需 ImageMagick 支持) - 配置与依赖环境检查,包括必需环境变量与外部工具
元数据
Slug dot-eprint-controller
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

dot eprint Quote/0 是什么?

控制 Dot. 电子墨水屏设备——查询状态、推送文本/图像、管理内容. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 90 次。

如何安装 dot eprint Quote/0?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install dot-eprint-controller」即可一键安装,无需额外配置。

dot eprint Quote/0 是免费的吗?

是的,dot eprint Quote/0 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

dot eprint Quote/0 支持哪些平台?

dot eprint Quote/0 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 dot eprint Quote/0?

由 johnqxu(@johnqxu)开发并维护,当前版本 v1.0.0。

💬 留言讨论