Community图像github.com

KoBa-beep/ClaudeCode-Skill

通过元引擎 (jac459/meta) 为 NEEO 遥控器创建、修改、审查和调试驱动程序——包括 JSON 设备文件(按钮、标签、滑块、开关、图像、目录、监听器、发现和注册)及其配套服务(基于 MQTT 的 Node-RED 流程、本地小型 REST 桥接)。在用户提及 NEEO、NEEO Brain、meta/metaCore/metadriver、NEEO 驱动程序或设备文件,或想通过 NEEO 遥控器控制设备(电视、AV 接收器、媒体播放器、灯光等),或分享 meta、Mosquitto、Brain 日志或 Brain JSON 转储以进行诊断时使用。

ClaudeCode-Skill 是什么?

这个技能是为 NEEO 遥控器生态系统开发驱动程序的专业工具,基于 jac459/meta 引擎。它允许你完全通过 JSON 描述设备,无需编写 JavaScript(除了少量 DYNAMIK 表达式)。技能涵盖了从驱动程序骨架创建、发现模式选择、命令类型配置到监听器管理的完整工作流,并提供了详细的参考文件集(包括陷阱、调试和模式),以应对开发中的各类问题。它支持多种平台(如 Pi、Docker)和协议(HTTP、WebSocket、MQTT、CLI 等),并提供 Node-RED 和 REST 桥接作为补充服务。该技能的关键优势在于其严格而全面的规则——例如组件命名限制、安全性要求、变量绑定注意事项——这些规则基于实际 meta 引擎的代码和观测结果,能帮助开发者避免常见陷阱,确保驱动程序的稳定性和兼容性。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/KoBa-beep/ClaudeCode-Skill/tree/HEAD/neeo-meta/neeo-meta-driver

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

使用 meta 的 NEEO 驱动程序

meta (jac459/meta) 是一个 Node.js 引擎,它读取 active/ 文件夹中的 JSON 设备文件,并将每个文件转换为一个 NEEO SDK 驱动程序,注册到本地 NEEO Brain。你用 JSON 描述设备;你不需要编写 JavaScript(除了少量 DYNAMIK 表达式)。

语言:使用用户的语言进行交流。JSON 键、引擎关键字、按钮名称和日志字符串需严格遵循本文档(英文)。

范围:仅涉及收购前的 NEEO SDK、本地 Brain 和 meta。忽略 Control4 相关内容和 NEEO 云服务(已关闭)。

基本原则(切勿跳过)

  1. 切勿发明 JSON 键或命令类型。 如果某个特性不在参考资料中,请如实告知并提供替代方案:配套服务(Node-RED + MQTT 或本地小型 REST 桥接,参见 references/companion-services.md)、cli 命令或隐藏按钮链。
  2. 纯 JSON:无注释、无尾随逗号、使用双引号。使用 python3 -m json.tool file.json 和 python3 scripts/check_driver.py file.json 进行验证。
  3. 命令类型区分大小写:http-get、http-rest、http-post、http-get-soap、static、cli、repl、webSocket、socketIO、jsontcp、mqtt、wol、mDNS、android。
  4. 每当添加可见组件时,请递增 version。Brain 只会添加组件;重命名或移除组件需要从 NEEO 应用中删除并重新添加设备(食谱和快捷方式必须重做)。即使版本号递增,对于已安装的设备也可能不足够:请检查 Brain(references/debugging.md)。
  5. 标签、开关、滑块、图像和传感器的名称(键)仅限字母和数字。 空格或符号会破坏传感器链接(Brain 中出现 "sensor": null),并且当该组件用作快捷方式时,遥控器会在同步时崩溃。显示的 label 文本则没有限制。按钮名称可包含空格,但应避免 + 和重音符号(例如 DISNEY PLUS,标签 Disney+)。
  6. 切勿将 "" 写入绑定到标签的变量:在 meta v1.2.0 上,标签从文本返回 "" 会导致 meta 停止。请写入 " "(或一个可读的备用值)。建议养成习惯,即使初始化标签变量也使用 " "。
  7. 在到达标签之前,对每个外部文本进行净化:" -> ',\ -> /,控制字符 -> 空格,$ -> $(全角)。在驱动程序中和在源头处同时进行。
  8. 监听器通过 ListenerOn 守卫和每个可见控件中连接隐藏的 __LISTEN 按钮在每个会话开始时启动。 切勿仅依赖 POWER ON,也切勿在 mqtt 监听器上调用 __CLEANUP(references/listeners-and-state.md)。
  9. 事件优于轮询(webSocket、socketIO、mqtt)。如果必须轮询,pooltime 应 >= 3000。
  10. $Result 始终是字符串,失败时为 "undefined":每个 JSON.parse 都需要进行防护。按钮获取标量值(ok);目录操作馈送器获取 ["ok"]。
  11. 变量名称:切勿使用一个名称作为另一个名称的前缀;$Var 后跟字母时会被解读为另一个不同的变量。
  12. 安全性:DYNAMIK 和 cli 在 meta 主机上执行代码。不应在打算共享的驱动程序中硬编码机密信息;meta 绝不能以 root/admin 身份运行。
  13. 不可逆更改需要同意:添加可见组件(例如 DIGIT 0-9)无法在不重新安装设备的情况下撤消。请先征得同意。
  14. 分开交付物:meta 驱动程序是一个 JSON 对象(以 { 开头,名称中不含 -flow,放在 active/ 中);Node-RED 流程是一个 JSON 列表(以 [ 开头,始终命名为 *-flow.json,导入到 Node-RED 中)。
  15. 在 template 中,dynamicname 和 dynamicid 是必填项;dynamicid 必须稳定(使用 MAC 地址或硬件 ID,而非 DHCP IP)。

工作流程

  1. 收集所需信息(每次最多问 3 个有针对性的问题):确切的设备型号;其控制协议或 API(HTTP/REST、WebSocket、原始 TCP、MQTT、仅 IR、Android TV……);固定 IP 或可变 IP 及稳定 ID(MAC);必须控制的内容和必须显示的状态;meta 版本及 meta 运行位置(使用 pm2 的 Pi、Docker……);是否有 MQTT 代理和 Node-RED。当存在官方 API 文档时,查找该设备的官方 API 文档。
  2. 选择 NEEO 类型(references/driver-anatomy.md,类型和已识别按钮部分)和发现模式(references/discovery.md):静态单设备、用户输入 IP、mDNS 或集线器。
  3. 从 assets/ 中的骨架开始:skeleton-static.json(一个设备,固定地址)或 skeleton-register-ip.json(用户输入 IP)。重用 references/patterns.md 中经过验证的模式。
  4. 确定逻辑所在位置。 简单的 HTTP 或 WebSocket 设备:所有逻辑放在驱动程序中。二进制或有状态协议(原始 TCP、持久会话、配对、突发状态):在其间放置配套服务,使用快速的 HTTP 命令,并将状态推送为保留的 MQTT 消息(references/companion-services.md)。
  5. 交付前检查:
    • python3 -m json.tool driver.json 然后 python3 scripts/check_driver.py driver.json(检查名称、空标签值、类型、版本、守卫、轮询……);
    • 当驱动程序有监听器时,运行 node scripts/simulate_guard.js driver.json(跨会话计数 __INITIALISE / __CLEANUP);
    • 在 Node 中使用真实的替换规则评估棘手的 DYNAMIK 表达式(references/logic-and-commands.md);
    • 重新阅读 references/pitfalls.md。
  6. 按以下顺序交付:摘要(设备、协议、NEEO 类型、发现模式、涵盖/未涵盖的内容);完整的已验证 JSON 文件并明确文件名;部署步骤(复制到 active/,重启 meta,在 NEEO 应用中添加设备,创建食谱可见性和快捷方式);测试计划(要尝试的按钮、预期结果、要查找的日志行);未在真实设备上验证的假设;下次迭代。对于多文件项目(驱动程序 + 流程 + 服务):操作顺序、每个交付物中的版本标记以及如何检查已安装的版本。始终说明哪些内容未在真实设备上进行测试。

参考文件映射(仅读取任务所需的内容)

文件何时阅读
references/meta-engine.md架构、安装、文件夹、重启、日志级别、meta 公开的 MQTT 主题、Docker/NAS 托管、已知 meta v1.2.0 缺陷
references/driver-anatomy.md顶级键、NEEO 设备类型和已识别按钮名称、变量、$ 替换、DYNAMIK、UI 组件
references/logic-and-commands.mdevalwrite、evaldo、evalnext、特殊按钮、每种命令类型、queryresult / JSONPath
references/listeners-and-state.md监听器、ListenerOn 守卫、MQTT 监听器行为、突发状态源、实例重建
references/discovery.mddiscover、register、template、initcommandset、mDNS、IP 输入、集线器、配对
references/directories.md列表、馈送器、item* 字段、操作、多级导航
references/patterns.md经过验证的配方:音量、电源、状态栏、持久化、链、循环、回退路径、应用启动器、艺术品图像
references/pitfalls.md交付前必须重新阅读
references/debugging.md阅读 meta、Mosquitto 和 Brain 数据、日志特征、隔离链接、沙盒测试
references/companion-services.mdNode-RED 和 MQTT 桥接、本地 REST 桥接、Apple TV / pyatv 经验教训
references/community-drivers.md可供模仿的参考驱动程序、SDK 与 meta 的映射、来源

参考资料中使用的证据标签

[code v1.2.0] 从 meta 源代码(Release 分支)中读取;[observed] 在真实驱动程序或真实安装中观察到;[to verify] 尚未测试的推论。当某个行为很重要且没有标签时,请检查 meta 的代码(git clone --depth 1 --branch Release https://github.com/jac459/meta)而非猜测,并说明你采取了哪种方式。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能