三峰智能家居控制技能。以下情况必须使用此技能:(1) 用户说"三峰登录 账号 密码";(2) 用户说打开/关闭/调节灯/空调/窗帘/插座等设备;(3) 用户说同步设备、设备列表、场景列表、执行场景、家庭列表、进入家庭、帮助、三峰帮助;(4) 用户说任何模式/场景名称(如观影模式、阅读模式、回家等)。禁止伪造执行结果,所有操作必须真实调用 API。
技能激活说明:
- - 用户发送「三峰登录 [账号] [密码]」时,这是三峰智能家居登录指令,必须调用本技能。
- 用户发送设备控制指令(打开/关闭 + 设备名)时,必须调用本技能。
- 用户说任何模式或场景名称时,必须调用本技能。
登录状态和设备数据持久化存储在 {baseDir}/state.json。
读取用 read 工具,path 填 {baseDir}/state.json。
写入必须用 exec 工具执行 PowerShell,不要用 write 工具。
所有脚本中的 $statePath 值为 {baseDir}/state.json,Agent 生成脚本时须将 {baseDir} 替换为技能文件的实际目录路径。
文件不存在时视为未登录。
重要:运行环境是 Windows PowerShell,必须用 Invoke-RestMethod,禁止用 curl 或 curl.exe。
每次 exec 脚本开头必须加编码设置:
powershell
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
Base URL:https://open.aibasis.cc
认证:所有接口 Header 加 Authorization: Bearer
POST /api/user/login
Body: { user: xxx, psw: xxx }
返回: { code: 0, data: { token: xxx, home: { id: xxx, name: xxx } } }
GET /api/getHomeList
Headers: Authorization: Bearer
返回: { code: 0, data: [{ ID: xxx, NAME: xxx }] }
注意:字段名是大写 ID 和 NAME
POST /api/inHome
Body: { homeId: xxx }
返回: { code: 0, data: { token: xxx, home: { id: xxx, name: xxx } } }
注意:进入后 token 会更新,必须保存新 token
POST /api/syncHomeData
Body: { requestId: sync_001, timestamp: <毫秒时间戳>, version: 1.0, data: {} }
返回 data 包含: devices[](含 id、name、model、roomId)、rooms[](含 id、name)、scenes[](含 id、name)
POST /api/control
Body: {
requestId: cmd_001,
timestamp: <毫秒时间戳>,
version: 1.0,
commands: [{ id: <设备id或场景id>, model: <设备model,场景为scene>, properties: { <参数> } }]
}
lamp_5 设备 properties:{open:1} 开、{open:0} 关、{brightness:80} 亮度、{colorTemperature:4000} 色温、{h:120,s:100,l:50} 颜色
执行场景:model=scene,properties={}
触发词:三峰登录 账号 密码
powershell
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
$statePath = {baseDir}/state.json
$body = @{ user = 账号; psw = 密码 } | ConvertTo-Json
$res = Invoke-RestMethod -Method POST -Uri https://open.aibasis.cc/api/user/login -ContentType application/json -Body $body
if ($res.code -eq 0) {
$token = $res.data.token
$syncBody = @{ requestId = sync_001; timestamp = [DateTimeOffset]::UtcNow.ToUnixTimeMilliseconds(); version = 1.0; data = @{} } | ConvertTo-Json
$syncRes = Invoke-RestMethod -Method POST -Uri https://open.aibasis.cc/api/syncHomeData -ContentType application/json -Headers @{ Authorization = Bearer $token } -Body $syncBody
$devices = $syncRes.data.devices | ForEach-Object { @{ id = $.id; name = $.name; model = $.model; roomId = $.roomId } }
$rooms = $syncRes.data.rooms | ForEach-Object { @{ id = [string]$.id; name = $.name } }
$scenes = $syncRes.data.scenes | ForEach-Object { @{ id = $.id; name = $.name } }
$state = @{ token = $token; home = @{ id = $res.data.home.id; name = $res.data.home.name }; devices = $devices; rooms = $rooms; scenes = $scenes }
$json = $state | ConvertTo-Json -Depth 5 -Compress
[System.IO.File]::WriteAllText($statePath, $json, [System.Text.Encoding]::UTF8)
Write-Output OK home:$($res.data.home.name) devices:$($devices.Count) scenes:$($scenes.Count)
} else {
Write-Output FAIL $($res.msg)
}
输出 OK home:xxx devices:N scenes:M 时回复:✅ 登录成功,家庭:xxx,已同步设备 N 个、场景 M 个,回复后立即结束。
输出 FAIL xxx 时回复:❌ 登录失败:xxx
未提供账号密码时回复:请用格式登录:三峰登录 账号 密码
触发词:家庭列表、我的家庭、有哪些家庭
powershell
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
$statePath = {baseDir}/state.json
$state = Get-Content $statePath -Encoding UTF8 | ConvertFrom-Json
$res = Invoke-RestMethod -Method GET -Uri https://open.aibasis.cc/api/getHomeList -Headers @{ Authorization = Bearer $($state.token) }
$total = $res.data.Count
$names = ($res.data | Select-Object -First 10 | ForEach-Object { $_.NAME }) -join 、
Write-Output OK total:$total names:$names
回复:🏠 共 N 个家庭,前10个:名称1、名称2...,发送「进入家庭 名称」切换
触发词:进入家庭 <名称>、切换家庭 <名称>
先从用户消息提取家庭名称关键词,替换下方脚本中的 $keyword:
powershell
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
$statePath = {baseDir}/state.json
$state = Get-Content $statePath -Encoding UTF8 | ConvertFrom-Json
$keyword = 用户输入的名称
$listRes = Invoke-RestMethod -Method GET -Uri https://open.aibasis.cc/api/getHomeList -Headers @{ Authorization = Bearer $($state.token) }
$home = $listRes.data | Where-Object { $.NAME -like $keyword -or $keyword -like $($.NAME) } | Select-Object -First 1
if ($home) {
$body = @{ homeId = $home.ID } | ConvertTo-Json
$res = Invoke-RestMethod -Method POST -Uri https://open.aibasis.cc/api/inHome -ContentType application/json -Headers @{ Authorization = Bearer $($state.token) } -Body $body
$token = $res.data.token
$syncBody = @{ requestId = sync_001; timestamp = [DateTime
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 sufn-smart-home-1776024661 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 sufn-smart-home-1776024661 技能
skillhub install sufn-smart-home-1776024661
文件大小: 4.92 KB | 发布时间: 2026-4-13 12:12