AI AGENT SKILLS

Jf Open Pro Feed Control

一个面向 crypto 场景的 Agent 技能。原始说明:杰峰智能宠物喂食器设备控制技能(开发版)。支持远程一键喂食、设置或查询定时喂食计划,以及配置设备端的宠物检测功能开关。

SKILL.md

SKILL.md


name: jf-open-pro-feed-control
description: 杰峰智能宠物喂食器设备控制技能(开发版)。支持远程一键喂食、设置或查询定时喂食计划,以及配置设备端的宠物检测功能开关。
metadata:
version: 1.0.0
author: JFTech
category: device
tags:

  • 杰峰
  • 宠物喂食器
  • 智能喂食
  • 定时喂食
  • 宠物检测
  • 一键喂食

triggers:

  • 查询设备是否支持喂食
  • 一键喂食
  • 远程喂食
  • 定时喂食计划
  • 查询喂食计划
  • 设置喂食计划
  • 宠物检测开关
  • 查询宠物检测
  • 开启宠物检测
  • 关闭宠物检测

prerequisites:

  • 配置必需的环境变量
  • 设备需已完成配网和绑定
  • 设备需在线

region:

  • CN: api-cn.jftechws.com (中国大陆)
  • AS: api-as.jftechws.com (亚洲)
  • EU: api-eu.jftechws.com (欧洲)
  • NA: api-na.jftechws.com (北美洲)

jf-open-pro-feed-control - 杰峰智能宠物喂食器设备控制技能(开发版)

技能描述

支持杰峰智能宠物喂食器设备的远程控制功能:

  • 查询设备是否支持喂食 - 查询设备能力集,确认是否支持喂食功能
  • 一键喂食 - 远程发送喂食指令,控制设备出粮
  • 定时喂食计划 - 查询和设置设备的定时喂食计划
  • 宠物检测 - 查询和设置设备端的宠物检测功能开关

适用场景:

  • 远程给宠物喂食
  • 设置定时自动喂食计划
  • 配置宠物检测自动触发喂食

触发词

  • 查询设备是否支持喂食 / 设备支持喂食吗
  • 一键喂食 / 远程喂食 / 手动喂食 / 立即喂食
  • 定时喂食计划 / 查询喂食计划 / 设置喂食计划
  • 宠物检测开关 / 查询宠物检测 / 开启宠物检测 / 关闭宠物检测

前置条件

硬件要求

  1. 智能宠物喂食器 - 设备需为杰峰智能宠物喂食器

必需配置

  1. 签名算法 - 使用杰峰官方移位加密算法生成 signature
  2. 时间戳算法 - counter(7 位) + timeMillis(13 位),实时生成
  3. 设备绑定 - 设备需先绑定到开放平台账号

环境变量

| 变量名 | 说明 | 默认值 | 必需 |
|--------|------|--------|------|
| JF_UUID | 开放平台用户 uuid | - | ✅ |
| JF_APP_KEY | 开放平台应用 appKey | - | ✅ |
| JF_APP_SECRET | 开放平台应用密钥 | - | ✅ |
| JF_MOVE_CARD | 移动卡标识(用于签名) | 2 | ✅ |
| JF_DEVICE_SN | 设备序列号 | - | ✅ |
| JF_DEVICE_TOKEN | 设备接口访问令牌 | - | ✅ |
| JF_ENDPOINT | API 接入地址 | api-cn.jftechws.com | ❌ |

API 接口

| 功能 | 地址 | 方法 | 需要 Token | 需要在线 |
|------|------|------|------------|----------|
| 查询设备能力 | POST /gwp/v3/rtc/device/getability/{token} | POST | ✅ | ✅ |
| 一键喂食 | POST /gwp/v3/rtc/device/feeder/{token} | POST | ✅ | ✅ |
| 查询定时喂食计划 | POST /gwp/v3/rtc/device/iotPropSet/{token} | POST | ✅ | ✅ |
| 设置定时喂食计划 | POST /gwp/v3/rtc/device/iotPropSet/{token} | POST | ✅ | ✅ |
| 查询宠物检测开关 | POST /gwp/v3/rtc/device/petDetectionSwitchStatus/{token} | POST | ✅ | ✅ |
| 设置宠物检测开关 | POST /gwp/v3/rtc/device/petDetectionSwitchSetting/{token} | POST | ✅ | ✅ |

核心功能

1. 查询设备是否支持喂食(FeederAbility)

API: POST /gwp/v3/rtc/device/getability/{deviceToken}

Name: FeederAbility

响应参数:
| 字段 | 类型 | 说明 |
|------|------|------|
| FeedBlockAlarm | int | 堵粮报警设置开关,1=显示,0=不显示 |
| FoodShortageAlarm | int | 余粮报警设置开关,1=显示,0=不显示 |
| BoxNums | int | 食物餐盘个数。无该字段或值为 0 表示老设备,默认为 1 |
| FeedSnap | int | 是否支持喂食时抓图和喂食后延时抓图,1=支持,0=不支持 |

2. 一键喂食(Feed Control)

API: POST /gwp/v3/rtc/device/feeder/{deviceToken}

请求参数:
| 参数 | 类型 | 必需 | 说明 | 取值 |
|------|------|------|------|------|
| sn | string | ✅ | 设备序列号 | - |
| props | object | ✅ | 喂食参数 | - |
| props.feed | int | ✅ | 喂食份数 | 正整数 |

请求示例:

{
  "sn": "device-sn",
  "props": {
    "feed": 1
  }
}

3. 定时喂食计划(Feed Schedule)

查询/设置 API: POST /gwp/v3/rtc/device/iotPropSet/{deviceToken}

查询请求体:

{
  "sn": "设备序列号",
  "props": ["feedPlan"]
}

设置请求体:

{
  "sn": "设备序列号",
  "props": {
    "feedPlan": [
      {
        "enable": true,
        "cron": "0 31 10 * * 1,2,3,4,5,6,0",
        "action": {
          "feed": 1
        }
      }
    ]
  }
}

定时计划项(feedPlan):

| 字段 | 类型 | 说明 | 取值 |
|------|------|------|------|
| enable | boolean | 定时器是否开启 | true=启用,false=禁用 |
| cron | string | cron 时间表达式 | 0 {minute} {hour} * * {weekdays} |
| action.feed | int | 投食份数 | 正整数 |

操作方法(method):

| 方法 | 说明 |
|------|------|
| Add | 增加自动喂食时间点 |
| Modify | 修改已设定的自动喂食时间点 |
| Delete | 删除已设定的自动喂食时间点 |
| Clear | 删除全部自动喂食计划 |

4. 宠物检测开关(Pet Detection)

查询 API: POST /gwp/v3/rtc/device/petDetectionSwitchStatus/{deviceToken}

设置 API: POST /gwp/v3/rtc/device/petDetectionSwitchSetting/{deviceToken}

查询响应:
| 字段 | 类型 | 说明 |
|------|------|------|
| Switch | string | 开关状态:ON=开启,OFF=关闭 |
| Ret | int | 设备响应状态码 |

设置请求体:

{
  "Switch": "ON"
}

使用示例

环境准备

# 设置环境变量(使用占位符,请替换为实际值)
export JF_UUID="uuidxxxx"
export JF_APP_KEY="appkeyxxxx"
export JF_APP_SECRET="appsecretxxxx"
export JF_MOVE_CARD="5"
export JF_DEVICE_SN="snxxx1"
export JF_DEVICE_TOKEN="NTQ0NzQ3YmE3MXwyYzFk..."
export JF_ENDPOINT="api-cn.jftechws.com"

1. 查询设备是否支持喂食

cd ~/.qoderwork/skills/jf-open-pro-feed-control/scripts

python3 feed_control.py --action check-support

2. 一键喂食

# 喂食一次(默认 1 份)
python3 feed_control.py --action feed-once

# 喂食 2 份
python3 feed_control.py --action feed-once --portion 2

3. 定时喂食计划

# 查询当前定时喂食计划
python3 feed_control.py --action get-schedule

# 设置定时喂食计划(配置文件方式)
python3 feed_control.py --action set-schedule --schedule-file schedule.json

# 快速添加一条计划(每天 8:00 喂食 2 份)
python3 feed_control.py --action add-schedule \
  --hour 8 --minute 0 --portion 2 \
  --repeat "Mon,Tue,Wed,Thu,Fri,Sat,Sun"

4. 宠物检测

# 查询宠物检测开关状态
python3 feed_control.py --action get-pet-detect

# 开启宠物检测
python3 feed_control.py --action set-pet-detect --enable true

# 关闭宠物检测
python3 feed_control.py --action set-pet-detect --enable false

状态码

平台状态码

| code | 说明 | 处理建议 |
|------|------|----------|
| 2000 | 成功 | - |
| 28007 | Header 参数错误 | 检查 uuid、appKey、timeMillis、signature |
| 40103 | 无效 Token | deviceToken 过期,重新获取 |
| 50000 | 服务器内部错误 | 联系杰峰技术支持 |

设备状态码(Ret)

| Ret | 说明 |
|-----|------|
| 100 | 成功 |
| 103 | 非法请求(设备不支持该功能) |
| 106 | 用户名或密码错误 |

注意事项

  1. 设备要求 - 仅智能宠物喂食器设备支持此功能
  2. deviceToken 有效期 - 24 小时,过期需重新获取
  3. 设备在线要求 - 所有操作需要设备在线
  4. 出粮份数 - 建议在设备支持的最小和最大份数范围内设置
  5. 定时计划 - 最多支持 10 条定时计划
  6. 重复周期 - 支持按星期重复,使用英文缩写:Mon, Tue, Wed, Thu, Fri, Sat, Sun

相关文件

| 文件 | 说明 |
|------|------|
| SKILL.md | 技能文档 |
| scripts/feed_control.py | Python 执行脚本 |
| scripts/crypto.py | 签名/时间戳加密工具(复用) |

参考文档