开箱向日葵 C1 Pro 插座 & 接入 homekit

伪装开箱

前几日双十一购买了向日葵 C1 Pro 插座一个,价格16.22元。
8FCAA6DEA132C21068247C86FB9FE71B.png
到货后使用【向日葵】APP 配网即可正常使用,和其他普通智能插座一样,支持倒计时、定时、查看用电日志(看不了用电量)等功能。
IMG_8876.PNG

只支持使用向日葵 APP 操作,没有接入小爱、siri 等平台,因此打算看看能否抓包到它的 API 自己做相应的支持

抓包

抓包向日葵 APP 可看到在开关插座时,APP 会请求 x.iots03-g2.oray.net:8000/plug 地址,参数可见:
屏幕截图 2021-11-16 185504.png
屏幕截图 2021-11-16 185515.png
使用浏览器打开此地址,发现可以正常操作插座。
屏幕截图 2021-11-16 185633.png

重置设备后 key 值仍不变,所以请勿将此地址发给别人

获取插座状态

1
2
3
4
5
6
7
8
res = await axios.get(oray_url, {
params: {
_api: "get_plug_status",
index: 0,
time: xxxxxxxx,
key: "your_key"
}
});

返回信息:

1
{"response":[{"index":0,"status":1}],"led":1,"def_st":2,"result":0}

其中 status 0 为关,1 为开;index为多口插排需要的参数,我这个是单口的,不管它。

设置插座状态

1
2
3
4
5
6
7
8
9
res = await axios.get(oray_url, {
params: {
_api: "set_plug_status",
index: 0,
time: xxxxxxxx,
key: "your_key",
status: 0 or 1
}
});

返回信息

1
{"result":0}

进入路由器后台可看到插座 ip 地址,试着扫描端口,发现 5767 端口开着
屏幕截图 2021-11-16 190137.png
屏幕截图 2021-11-16 190217.png

使用 ip:port 代替向日葵外网域名调用 API 发现可以正常使用。
QQ图片20211116190314.png
至此已经可以在内网环境正常使用 API 开关插座了,下面来试试接入到 homekit。

HomeBridge 介绍

HomeBridge 是一个轻量级的 NodeJS 服务器,它可以把 N 多第三方设备(如米家、博联)模拟成 HomeKit 认证配件,从而接入 HomeKit 智能家居。

下面将在 n1 OpenWrt 环境下搭建 HomeBridge。
环境:
主路由:192.168.123.1
n1 作为旁路由:192.168.123.2
向日葵插座:192.168.123.158

n1 的 OpenWrt 固件是 flippy 大神编译的版本,支持 docker 功能。
屏幕截图 2021-11-16 190849.png
先到服务 - Docker CE 中启动 Docker CE 服务。

SSH 连入 n1,新建文件夹,新建文件 docker-compose.yml,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '2'
services:
homebridge:
image: oznu/homebridge:latest
container_name: homebridge
restart: always
network_mode: host
environment:
- TZ=Asia/Shanghai
- PGID=1000
- PUID=1000
- HOMEBRIDGE_CONFIG_UI=1
- HOMEBRIDGE_CONFIG_UI_PORT=8581
volumes:
- ./homebridge:/homebridge

保存后在同目录执行执行加载 homebridge

1
docker-compose up -d

执行完成后,打开浏览器访问 192.168.123.2:8581 即可看到 homebridge 登陆界面。
屏幕截图 2021-11-16 191336.png
默认账号密码都是 admin,登陆即可。

github 找了一圈,发现插件 homebridge-http-switch 可以实现通过 http 调用智能设备。https://github.com/Supereg/homebridge-http-switch#readme

在 homebridge 插件功能下搜索并安装 homebridge-http-switch 插件即可。
安装后需要我们设置插件,使用以下配置即可
屏幕截图 2021-11-16 191650.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"accessory": "HTTP-SWITCH",
"name": "Switch",
"switchType": "stateful",
"onUrl": {
"url": "http://192.168.123.158:6767/plug?_api=set_plug_status&index=0&time=your_time&key=your_key&status=1",
"headers": {
"Host": "192.168.123.158:6767"
}
},
"offUrl": {
"url": "http://192.168.123.158:6767/plug?_api=set_plug_status&index=0&time=your_time&key=your_key&status=0",
"headers": {
"Host": "192.168.123.158:6767"
}
},
"statusUrl": {
"url": "http://192.168.123.158:6767/plug?_api=get_plug_status&index=0&time=your_time&key=your_key",
"headers": {
"Host": "192.168.123.158:6767"
}
},
"pullInterval": 5000,
"statusPattern": "\"status\":1"
}

保存,在右上角重启 homebeidge 服务。
重启服务后,打开 iPhone,打开“家庭” APP,扫描 homebeidge 二维码加入桥接设备,后面根据提示配置即可。

最终效果

IMG_8877.PNG
IMG_8879.PNG


开箱向日葵 C1 Pro 插座 & 接入 homekit
https://https.gs/archives/338/
作者
web1n
发布于
2021年11月16日
许可协议