前言
上个月小苏同学买了一台除湿机,第一次配对绑定比较麻烦,应该是 WIFI
模块的网络兼容性不大好,不过连上之后就没问题了
老苏第一个想法就是把这玩意接入 HomeAssistant
,搜了一下网上已经有大牛搞成功了,虽然型号不同,但是过程是一样的
原文在这里:https://xiking.win/2020/11/12/3-deye-dehumidifer-add-to-homeassistant/
准备
因为要用到 API
调试,所以需要下载相关的工具,例如 Postman
、ApiPost
之类的,老苏建议用 ApiPost
,因为界面是中文,看着比较习惯。
ApiPost
下载地址:https://www.apipost.cn/download.html
获取除湿机信息
获取 token
登录的地址:https://api.deye.com.cn/v3/enduser/login/
直接 POST
这个地址会返回需要填写的参数
{
"meta": {
"code": 10000,
"message": {
"loginname": "This field is required.",
"password": "This field is required.",
"appid": "This field is required.",
"extend": "This field is required."
}
},
"data": {}
}
参数 | 容器端口 |
---|---|
loginname | 德业智能 APP 的登陆账号 |
password | 德业智能 APP 的登陆密码 |
appid | 这个似乎可以随便填,老苏填了软件版本 |
extend | {"cid":"111111122223333","type":"0"} |
返回的是认证 token
和 clientid
,token
要保存好,后面会用到
{
"meta": {
"code": 0,
"message": "signup ok."
},
"data": {
"token": "你的token",
"clientid": "你的clientid"
}
}
获取设备列表
获取设备列表的地址:https://api.deye.com.cn/v3/enduser/deviceList/
直接 GET
这个地址会返回需要填写的参数
{
"meta": {
"code": 10001,
"message": "Miss jwt header."
},
"data": {}
}
参数 | 容器端口 |
---|---|
Authorization | jwt +空格+上前面获取的 token 拼接而成 |
jwt
或者JWT
都可以,应该不区分大小写;JWT
的全称是JSON Web Tokens
返回的 product_id
、device_id
要记好
{
"meta": {
"code": 0,
"message": "device list by user."
},
"data": [
{
"online": true,
"product_icon": "https://deye-cloud.oss-cn-shanghai.aliyuncs.com/profile/1597889877269.png",
"product_id": "你的设备的product_id",
"product_name": "DYD-T22A3",
"device_id": "你的设备的device_id",
"mac": "设备的mac地址",
"payload": "14110200203700000000000000002E3B452800000000",
"role": 1,
"gatewaytype": 0,
"device_name": "DYD-T22A3",
"product_type": "dehumidifier",
"is_combo": false,
"protocol_version": "wifi_V2.4"
}
]
}
获取MQTT信息
MQTT服务地址:https://api.deye.com.cn/v3/enduser/mqttInfo/
直接 GET
这个地址会返回需要填写的参数
{
"meta": {
"code": 10001,
"message": "Miss jwt header."
},
"data": {}
}
参数 | 容器端口 |
---|---|
Authorization | jwt 头假设前面获取的 token |
返回的 loginname
、password
、mqtthost
、mqttport
等要记好
{
"meta": {
"code": 0,
"message": "mqtt info"
},
"data": {
"loginname": "你的设备的mqtt登录账号",
"clientid": "你的设备的的clientid",
"endpoint": "ff7534ccae4711e7829100163e0f811e",
"password": "你的设备的mqtt登录密码",
"mqtthost": "xxxxxxxxx.mqtt.iot.gz.baidubce.com",
"mqttport": 1883,
"sslport": 1884
}
}
与HA集成
先说下 HomeAssistant
的版本,因为按照以往的经验,HA
版本的影响可能还是很大的
实测这个版本可以不需要下载原文作者的修改版 MQTT
组件,至于多少版本的需要下载,我也不是太清楚,老苏主要研究了 https://github.com/yongman/homeassistant-components/issues/2
配置文件
修改 configuration.yaml
文件
增加 mqtt 配置
其中
broker
中填写前面获取的mqtthost
地址
mqtt:
broker: xxxxxxxxx.mqtt.iot.gz.baidubce.com
port: 1883
client_id: 你的设备的的clientid
username: 你的设备的mqtt登录账号
password: 你的设备的mqtt登录密码
增加 switch 配置
其中
state_topic
和command_topic
由上面获取的返回值endpoint
、product_id
、device_id
三个值拼接而成
参数 | 容器端口 |
---|---|
state_topic | endpoint/product_id/device_id/status/hex |
command_topic | endpoint/product_id/device_id/command/hex |
switch:
- platform: mqtt
name: DYD-T22A3
unique_id: deye_switch
state_topic: xxxxxxxxx/xxxxxxxxxxxxx/xxxxxxxxxxxxxxxx/status/hex
command_topic: xxxxxxxxx/xxxxxxxxxxxxx/xxxxxxxxxxxxxxxx/command/hex
state_on: 30
state_off: 20
value_template: "{{ value_json.data[5:7] }}"
payload_on: "\x08\x02\x03\x20\x19\x00\x00\x00\x00\x00"
payload_off: "\x08\x02\x02\x20\x19\x00\x00\x00\x00\x00"
集成设置
从 配置
进入到 集成
界面,右下角 添加集成
,找到 MQTT
通过 选项
进入 MQTT
的设置界面
点 RE-CONFIGURE MQTT
进行设置
依次填入 MQTT
服务地址 mqtthost
、端口 mqttport
、用户名 loginname
、密码 password
,然后点 NEXT
默认就可以了,不要去修改
反正按网友的说法这两个红框是绝对不能勾选的,否则会报错
提交
就完成了 MQTT
的设置
实体卡片
只有开关状态
自动化
老苏没有湿度计,也没弄明白怎么获取 DYD-T22A3
中的 湿度
信息,所以只能根据室外的 湿度
来决定开启和关闭,感觉意义也不是特别大
老苏是在界面上新建的描述
触发条件设置
环境条件没设
动作设置
最后生成在 automations.yaml
中的代码片段
- id: '1636371731858'
alias: 自动除湿(室外湿度大于60)
description: 根据室外的湿度自动开机除湿
trigger:
- platform: numeric_state
entity_id: sensor.heweather_hum
above: '60'
below: '90'
for: '30'
condition: []
action:
- service: switch.turn_on
target:
area_id: ke_ting
entity_id: switch.dyd_t22a3
mode: single
参考文档
德业除湿机接入HomeAssistant - 人生如逆旅,我亦是行人。
地址:https://xiking.win/2020/11/12/3-deye-dehumidifer-add-to-homeassistant/
Homeassistant mqtt 报错 - 德业型号 T22A3 · Issue #2 · yongman/homeassistant-components
地址:https://github.com/yongman/homeassistant-components/issues/2
德业除湿机接入HomeAssistant记录_除湿器_什么值得买
地址:https://post.smzdm.com/p/a3d2r8x5/
如何控制德业 DYD E12A3 土豆不好吃
地址:https://dmesg.app/dyd-e12a3.html