Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
konke-ai-alibaba-mcp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何金镒
konke-ai-alibaba-mcp
Commits
bc7a7251
Commit
bc7a7251
authored
Aug 08, 2025
by
何金镒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
设备控制
parent
7ad22855
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
146 additions
and
5 deletions
+146
-5
README.md
README.md
+29
-0
device.md
device.md
+87
-0
src/main/java/com/ikonke/konkeaialibabamcp/aitools/DeviceTools.java
...ava/com/ikonke/konkeaialibabamcp/aitools/DeviceTools.java
+5
-4
src/main/java/com/ikonke/konkeaialibabamcp/service/SycDeviceService.java
...om/ikonke/konkeaialibabamcp/service/SycDeviceService.java
+2
-1
src/main/java/com/ikonke/konkeaialibabamcp/utils/CcuUtils.java
...ain/java/com/ikonke/konkeaialibabamcp/utils/CcuUtils.java
+21
-0
src/test/java/com/ikonke/konkeaialibabamcp/KonkeAiAlibabaMcpApplicationTests.java
.../konkeaialibabamcp/KonkeAiAlibabaMcpApplicationTests.java
+2
-0
No files found.
README.md
View file @
bc7a7251
# mcp sse
## 智家中控屏AI集成 功能需求:
-
智能设备AI控制
通过AI语音交互,业主可以用自然语音交互的方式更加便捷快速的控制户内的智能家居设备,及楼栋单元门。
-
AI生成场景
通过AI语音交互,业主可以用自然语音交互的方式更加便捷快速的控制户内的智能家居场景,并快速生成场景。
-
访客邀请
通过智慧屏/APP/小程序的AI语音交互,可实现访客邀请。访客到达社区后,无感通过社区出入口,联动道闸开启。
-
智能会所管理
通过智慧屏/APP/小程序的AI语音交互,可实现会所空间的快捷预约管理,提高会所利用率与运维效率,提升业主满意度
1、查 小区功能区列表(/third/screen/spaces/rooms)
2、查询可预约时间
2、预约付钱订单---->成功或失败
3、成功--->生产支付二维码-->支付
4、支付成功后---->提交订单(新)/third/screen/spaces/order/submit
-
机器人联动
通过智慧屏/APP/小程序的AI语音交互,可实现配送机器人/收垃圾机器人快捷预约上门服务,实现更加便捷下单,并支持语音对话。
-
社区活动推荐
主动推荐社区活动,业主可根据兴趣爱好,AI语音预约报名参加活动,增强邻里关系
-
知识库AI问答
业主可以自然语言的交互方式,语音快便捷的获取包含智能家居系统Q&A、使用说明等。
-
物业工单AI交互
业主可通过AI语音自然交互,可快速语音交互生成报事报修的工单。
## 智能家居控制
-
打开、关闭、暂停
-
调节亮度、温度、色温、音量、位置:参数是百分比,数字
-
设置模式
-
设置风速
-
device.md
0 → 100644
View file @
bc7a7251
## 普通灯
-
包含的设备类型operateId有:1,3,4,5,7,9,10,11,12,13,14,15,17,18,201,492,493,501
-
支持的命令有:
1、SwitchOpt(开关),对应的参数是true、false
## 调光灯(一)
-
包含的设备类型operateId有:503,504
-
支持的命令有:
1、SwitchOpt(开关),对应的参数是true、false
2、BrightnessOpt(调节亮度),对应的参数是0-100
## 调光灯(二)
-
包含的设备类型operateId有:506,507,509,510,511,517,518,701
-
支持的命令有:
1、SwitchOpt(开关),对应的参数是true、false
2、DimmerAdjustLuminance(调节亮度),对应的参数是0-100
## 调色灯
-
包含的设备类型operateId有:502
-
支持的命令有:
1、SwitchOpt(开关),对应的参数是true、false
2、DimmerAdjustLuminance(调节亮度),对应的参数是0-100
3、DimmerAdjustColor(调节色彩),对应的参数是RGB数组[ 0, 0, 0 ]
## 色温灯
-
包含的设备类型operateId有:512,513,514,515,516,519
-
支持的命令有:
1、SwitchOpt(开关),对应的参数是true、false
2、DimmerAdjustLuminance(调节亮度),对应的参数是0-100
3、AdjustColourTemperature(调节色温),对应的参数是0-100
## 色温色彩灯
-
包含的设备类型operateId有:516
-
支持的命令有:
1、SwitchOpt(开关),对应的参数是true、false
2、DimmerAdjustLuminance(调节亮度),对应的参数是0-100
3、AdjustColourTemperature(调节色温),对应的参数是0-100
4、DimmerAdjustColor(调节色彩),对应的参数是RGB数组[ 0, 0, 0 ]
## RGBW灯
-
包含的设备类型operateId有:505
-
支持的命令有:
1、SwitchOpt(开关),对应的参数是true、false
2、DimmerAdjustLuminance(调节亮度),对应的参数是0-100
3、DimmerAdjustColor(调节色彩),对应的参数是RGB数组[ 0, 0, 0 ]
4、DimmerAdjustWhiteLuminance(调节白光亮度),对应的参数是0-100
5、DimmerSetDynamicColorMode(设置动态炫彩),对应的参数是1-12
## 窗帘
-
包含的设备类型operateId有:1001,1002,1004,1005,1006,1007,1008,1009,1010,1011,1013,1014,1201
-
支持的命令有:
1、MotorOpt(开关停),对应的参数是CLOSE、OPEN、STOP
## 窗帘电机(一)
-
包含的设备类型operateId有:1003,1012,1015,1018
-
支持的命令有:
1、MotorOpt(开关停),对应的参数是CLOSE、OPEN、STOP
2、DooyaMotorSeek(移动至指定位置),对应的参数是0-100
## 窗帘电机(二)
-
包含的设备类型operateId有:1017,1203
-
支持的命令有:
1、MotorOpt(开关停),对应的参数是CLOSE、OPEN、STOP
2、MotorSeek(移动至指定位置),对应的参数是0-100
## 梦幻帘
-
包含的设备类型operateId有:1016
-
支持的命令有:
1、MotorOpt(开关停),对应的参数是CLOSE、OPEN、STOP
2、MotorSeek(移动至指定位置),对应的参数是0-100
3、CurtainAngle(调整角度),对应的参数是0-100
## 新风机
-
包含的设备类型operateId有:17131
-
支持的命令有:
1、SetDevUnit(参数设置,可设置开关 on、风速 speed、模式 mode),开关参数有true、false;风速参数有LOW、MID、HIGH、STRONG;模式参数有 INNER_CYCLE、FRESH_AIR、SLEEP,如:{"on":false,"speed":"LOW","mode":"INNER_CYCLE"}
## 中央空调
-
包含的设备类型operateId有:12010
-
支持的命令有:
1、OptCentralAcIndoorUnit(参数设置,可设置开关 on、风速 speed、模式 runModel、温度 temp),开关参数有true、false;风速参数有AUTO、LOW、MID、HIGH;模式参数有 AIR_SUPPLY、HOT、COLD、AUTO、DEHUMIDIFICATION;温度参数有16-30,步长为0.5,
如:{"on":false,"speed":"AUTO","runModel":"AIR_SUPPLY","temp":16.5}
src/main/java/com/ikonke/konkeaialibabamcp/aitools/DeviceTools.java
View file @
bc7a7251
...
...
@@ -4,6 +4,7 @@ package com.ikonke.konkeaialibabamcp.aitools;
import
com.ikonke.konkeaialibabamcp.entity.mongodb.DeviceStatus
;
import
com.ikonke.konkeaialibabamcp.service.SycDeviceService
;
import
com.ikonke.konkeaialibabamcp.service.mongdbservice.DeviceStatusService
;
import
com.ikonke.konkeaialibabamcp.utils.CcuUtils
;
import
com.ikonke.konkeaialibabamcp.utils.KonkeIotUtils
;
import
com.ikonke.konkeaialibabamcp.utils.WeatherUtils
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -30,7 +31,7 @@ public class DeviceTools {
public
DeviceStatus
findDeviceState
(
@ToolParam
(
description
=
"主机号"
)
String
ccuName
,
@ToolParam
(
description
=
"设备ID"
)
Integer
devId
)
{
log
.
info
(
"根据主机号和设备ID查询设备状态信息....ccuName:{},devId:{}"
,
ccuName
,
devId
);
return
deviceStatusUtil
.
findUserByUserId
(
ccuName
,
devId
);
return
deviceStatusUtil
.
findUserByUserId
(
CcuUtils
.
getCcuName
(
ccuName
)
,
devId
);
}
@Tool
(
description
=
"根据主机号和设备ID控制打开设备"
)
...
...
@@ -38,20 +39,20 @@ public class DeviceTools {
@ToolParam
(
description
=
"设备ID"
)
String
devId
,
@ToolParam
(
description
=
"设备类型"
)
String
operateId
){
log
.
info
(
"根据主机号和设备ID控制打开设备....ccuName:{},devId:{},operateId:{}"
,
ccuName
,
devId
,
operateId
);
return
konkeIotServer
.
optDeviceOpen
(
ccuName
,
devId
,
operateId
);
return
konkeIotServer
.
optDeviceOpen
(
CcuUtils
.
getCcuName
(
ccuName
)
,
devId
,
operateId
);
}
@Tool
(
description
=
"根据主机号和设备ID控制关闭设备"
)
public
String
optDeviceClosed
(
@ToolParam
(
description
=
"主机号"
)
String
ccuName
,
@ToolParam
(
description
=
"设备ID"
)
String
devId
,
@ToolParam
(
description
=
"设备类型"
)
String
operateId
){
log
.
info
(
"根据主机号和设备ID控制关闭设备....ccuName:{},devId:{},operateId:{}"
,
ccuName
,
devId
,
operateId
);
return
konkeIotServer
.
optDeviceClosed
(
ccuName
,
devId
,
operateId
);
return
konkeIotServer
.
optDeviceClosed
(
CcuUtils
.
getCcuName
(
ccuName
)
,
devId
,
operateId
);
}
@Tool
(
description
=
"根据主机号同步设备"
)
public
boolean
synchronousDevice
(
@ToolParam
(
description
=
"主机号"
)
String
ccuName
){
log
.
info
(
"根据主机号同步设备....ccuName:{}"
,
ccuName
);
return
sycDeviceService
.
synchronousDevice
(
ccuName
);
return
sycDeviceService
.
synchronousDevice
(
CcuUtils
.
getCcuName
(
ccuName
)
);
}
...
...
src/main/java/com/ikonke/konkeaialibabamcp/service/SycDeviceService.java
View file @
bc7a7251
...
...
@@ -36,8 +36,9 @@ public class SycDeviceService {
wrapper
.
eq
(
"ccuId"
,
ccuName
);
List
<
SynDevice
>
list
=
synDeviceService
.
list
(
wrapper
);
JSONArray
jsonArray
=
n
ew
JSONArray
()
;
JSONArray
jsonArray
=
n
ull
;
if
(!
list
.
isEmpty
()){
jsonArray
=
new
JSONArray
();
for
(
SynDevice
synDevice
:
list
)
{
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
set
(
"deviceId"
,
synDevice
.
getDeviceId
());
...
...
src/main/java/com/ikonke/konkeaialibabamcp/utils/CcuUtils.java
0 → 100644
View file @
bc7a7251
package
com.ikonke.konkeaialibabamcp.utils
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.StrUtil
;
public
class
CcuUtils
{
public
static
String
getCcuName
(
String
ccuName
)
{
if
(
StrUtil
.
isBlank
(
ccuName
)){
return
null
;
}
else
if
(
StrUtil
.
startWith
(
ccuName
,
"CCU_"
)){
return
ccuName
;
}
else
if
(
StrUtil
.
startWith
(
ccuName
,
"ccu_"
)){
return
StrUtil
.
swapCase
(
ccuName
);
}
else
if
(
NumberUtil
.
isNumber
(
ccuName
)){
return
"CCU_"
+
ccuName
;
}
return
null
;
}
}
src/test/java/com/ikonke/konkeaialibabamcp/KonkeAiAlibabaMcpApplicationTests.java
View file @
bc7a7251
package
com.ikonke.konkeaialibabamcp
;
import
com.ikonke.konkeaialibabamcp.utils.CcuUtils
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
...
...
@@ -8,6 +9,7 @@ class KonkeAiAlibabaMcpApplicationTests {
@Test
void
contextLoads
()
{
System
.
out
.
println
(
CcuUtils
.
getCcuName
(
"CCU_12345"
));
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment