Install
openclaw skills install openclaw-plugin-dg-lab-skillAn OpenClaw plugin that controls DG-Lab V3 electrostimulation devices via WebSocket with AI-driven commands and emotion-triggered stimulation.
openclaw skills install openclaw-plugin-dg-lab-skill一个 OpenClaw 插件,用于通过 WebSocket 连接并控制 郊狼 (DG-Lab) V3 电刺激设备。
本插件控制电刺激设备,不当使用可能造成身体伤害。
/dg_emotion on 之前请充分了解这一点。使用本插件即表示您知晓这些风险并同意负责任地使用。
/dg_qr 生成二维码,DG-Lab App 扫码即连dg_shock 和 dg_pulse_list 让 AI 直接控制电刺激/dg_emotion on 开启后,AI 根据回复关键词自动触发刺激/dg_limit 设置软上限;同时尊重 App 端设置的硬件上限.pulses / .json5 / .json 文件,兼容 Coyote-Game-Hub 格式一键安装(推荐):
bash -c "$(curl -fsSL https://raw.githubusercontent.com/FengYing1314/openclaw-plugin-dg-lab/main/install.sh)"
通过 NPM 安装:
openclaw plugins install openclaw-plugin-dg-lab
或者:
npm install -g openclaw-plugin-dg-lab
开发者/源码安装方式:
cd ~/.openclaw/workspace/plugins
git clone https://github.com/FengYing1314/openclaw-plugin-dg-lab.git
cd openclaw-plugin-dg-lab
npm install
npm run build
# 链接安装插件
cd ~/.openclaw/workspace
openclaw plugins install -l ./plugins/openclaw-plugin-dg-lab
在 ~/.openclaw/openclaw.json 中添加:
{
"plugins": {
"entries": {
"openclaw-plugin-dg-lab": {
"enabled": true,
"config": {
"serverIp": "你的公网IP",
"port": 18888,
"limitIntensity": 40
}
}
}
}
}
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
serverIp | string | 127.0.0.1 | 公网 IP 或域名,用于生成二维码 |
port | number | 18888 | WebSocket 服务器端口 |
limitIntensity | number | 40 | 默认强度软上限 (0-200) |
注意:请在防火墙中放行 TCP 18888 端口!
然后重启:
openclaw gateway restart
| 指令 | 说明 |
|---|---|
/dg_qr | 生成连接二维码,用 App 扫码连接 |
/dg_emotion on/off | 开启/关闭情感联动模式 |
/dg_limit <0-200> | 设置强度软上限 |
/dg_test +5 | 手动测试强度调整 |
/dg_status | 查看当前插件状态(连接数、强度、设备上限、队列) |
/dg_pulse list | 列出所有已加载的波形 |
/dg_pulse load <文件> | 导入 .pulses / .json5 / .json 波形文件 |
/dg_pulse play <名称> | 在 A 通道播放自定义波形 |
/dg_pulse delete <id> | 删除波形 |
dg_shock向连接的设备发送电刺激。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
strength | number | ✓ | 强度增量 (正=增加, 负=减少, 0=归零) |
duration | number | 波形持续时间 ms (默认: 1000) | |
waveform | string | punish / tease / test 或自定义波形名称 (默认: punish) | |
channel | string | A / B (默认: A) |
dg_pulse_list列出所有可用波形(内置 + 自定义)。
dg_qr_generate生成配对二维码并返回文件路径。
| 名称 | 频率 | 强度 | 描述 |
|---|---|---|---|
punish | ~66Hz (15ms) | 100% 持续 | 高频持续刺激 |
tease | ~5Hz (200ms) | 20-80% 正弦 | 低频呼吸式 |
test | ~10Hz (100ms) | 50→90→50% | 中频短促测试 |
将 .pulses、.json5 或 .json 文件放入插件的 data/ 目录,启动时自动加载。
支持的格式:
[
{ id: 'abc123', name: '呼吸', pulseData: ['0A0A0A0A00000000', ...] }
]
单个波形: { name: "我的波形", pulseData: [...] }
纯 hex 数组: ["0A0A0A0A64646464", ...]
每个 hex 字符串 16 字符(8 字节):4 字节频率(压缩值, 10-240)+ 4 字节强度(0-100)。每条代表 100ms(4 × 25ms 窗口)。
通过 /dg_emotion on 启用后,插件分析 AI 回复中的关键词:
| 类型 | 关键词(示例) | 增量 | 波形 |
|---|---|---|---|
| 惩罚 | 罚、教训、电击、punish、maximum | +15 | punish (3s) |
| 生气 | 生气、哼、不听话、angry、warning | +8 | punish (2s) |
| 安抚 | 乖、奖励、摸摸、good girl、reward | -3 | tease (5s) |
DG-Lab App ←── WebSocket ──→ 插件 WS 服务器 ←── OpenClaw Gateway
↑
AI 调用 dg_shock
或情感引擎 Hook
/dg_qr 生成二维码:https://www.dungeon-lab.com/app-download.php#DGLAB-SOCKET#ws://IP:PORT/CONTROL_IDstrength-CH+MODE+VALUE) 和波形指令 (pulse-CH:[hex...])strength-A+B+limitA+limitB)| 机制 | 说明 |
|---|---|
| 软件强度限制 | 所有强度变化钳制到 min(插件上限, 设备上限) |
| 设备上限同步 | 尊重 DG-Lab App 中设置的硬件上限 |
| 1小时自动休息 | 情感模式运行 60 分钟后强制冷却 10 分钟 |
| 优雅关闭 | 插件停止时所有通道归零 |
| 消息长度检查 | 超过 1950 字符(协议限制)的指令被丢弃 |
| 最大 7 秒/段 | 波形自动拆分为 ≤70 帧/次发送 |
| 心跳包 | 20 秒 WebSocket 保活 |
| 断连清理 | 设备断开时重置强度追踪 |
本插件实现了 DG-Lab V3 Socket 控制协议,并使用了 V3 频率压缩算法。
MIT © FengYing