当前位置: 首页 > news >正文

保姆级教程:用ApiPost抓取德业除湿机API,5分钟搞定HomeAssistant的MQTT配置

智能家居新手指南:5分钟用ApiPost实现德业除湿机MQTT接入HomeAssistant

第一次接触智能家居设备接入时,看到API、token、MQTT这些专业术语,很多人都会感到无从下手。其实只要选对工具,整个过程可以变得非常简单。本文将使用中文界面的ApiPost工具,带你一步步完成德业除湿机接入HomeAssistant的全过程,即使没有任何编程基础也能轻松掌握。

1. 准备工作与环境搭建

在开始之前,我们需要准备好必要的工具和环境。首先确保你已经拥有一台德业除湿机,并且已经在手机上下载安装了德业智能APP并完成设备绑定。这是后续操作的基础。

所需工具清单:

  • ApiPost(中文界面API调试工具,下载地址:www.apipost.cn)
  • HomeAssistant(建议使用2023年以后的版本)
  • 文本编辑器(用于修改configuration.yaml文件)

安装ApiPost后,你会看到一个非常直观的中文界面。与Postman等英文工具相比,ApiPost对中文用户更加友好,所有菜单和提示都是中文显示,这大大降低了学习成本。工具左侧是请求历史记录区,中间是请求构建区,右侧是响应展示区,整体布局清晰合理。

2. 获取设备认证信息

接入云端设备的第一步是获取必要的认证信息。德业除湿机使用标准的OAuth2.0认证流程,我们需要通过API获取token和clientid。

2.1 登录获取token

在ApiPost中新建一个POST请求,填写以下信息:

POST https://api.deye.com.cn/v3/enduser/login/ Content-Type: application/json { "loginname": "你的德业APP账号", "password": "你的德业APP密码", "appid": "1.0.0", "extend": "{\"cid\":\"111111122223333\",\"type\":\"0\"}" }

发送请求后,你会得到一个JSON格式的响应,其中包含两个关键信息:

{ "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "clientid": "client_123456789" } }

提示:请妥善保存这个token和clientid,它们相当于设备的"身份证"和"钥匙",后续所有操作都需要使用。

2.2 获取设备列表

有了token之后,我们就可以查询账户下绑定的设备了。新建一个GET请求:

GET https://api.deye.com.cn/v3/enduser/deviceList/ Authorization: jwt eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

响应中将包含设备的关键信息:

{ "data": [{ "product_id": "p123456789", "device_id": "d987654321", "product_name": "DYD-T22A3" }] }

记录下product_id和device_id,这两个值在MQTT配置中会用到。

3. 配置MQTT连接信息

MQTT是智能家居设备通信的核心协议,我们需要从德业云获取MQTT服务器的连接参数。

3.1 获取MQTT服务器信息

继续使用之前的token,发送GET请求:

GET https://api.deye.com.cn/v3/enduser/mqttInfo/ Authorization: jwt eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

响应中包含了完整的MQTT连接信息:

{ "data": { "loginname": "mqtt_user_123", "password": "mqtt_pass_456", "mqtthost": "xxxxxx.mqtt.iot.gz.baidubce.com", "mqttport": 1883, "endpoint": "ff7534ccae4711e7829100163e0f811e" } }

3.2 MQTT参数对照表

参数名称说明配置位置
mqtthostMQTT服务器地址HA的MQTT集成配置
mqttport端口号(通常1883)HA的MQTT集成配置
loginname用户名HA的MQTT集成配置
password密码HA的MQTT集成配置
endpoint终端标识switch配置中的topic
product_id产品IDswitch配置中的topic
device_id设备IDswitch配置中的topic

4. HomeAssistant配置实战

现在我们已经收集了所有必要的信息,可以开始在HomeAssistant中进行配置了。

4.1 配置MQTT集成

首先编辑configuration.yaml文件,添加MQTT基础配置:

mqtt: broker: xxxxxx.mqtt.iot.gz.baidubce.com port: 1883 username: mqtt_user_123 password: mqtt_pass_456 client_id: homeassistant_123

保存后,通过HomeAssistant的网页界面添加MQTT集成:

  1. 进入"配置" > "设备与服务"
  2. 点击右下角"添加集成"
  3. 搜索并选择"MQTT"
  4. 系统会自动检测到yaml中的配置,确认无误后完成添加

4.2 配置除湿机开关

继续在configuration.yaml中添加switch配置:

switch: - platform: mqtt name: "德业除湿机" unique_id: "deye_dehumidifier" state_topic: "ff7534ccae4711e7829100163e0f811e/p123456789/d987654321/status/hex" command_topic: "ff7534ccae4711e7829100163e0f811e/p123456789/d987654321/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"

关键参数说明:

  • state_topiccommand_topic由endpoint、product_id和device_id拼接而成
  • payload_onpayload_off是控制设备开关的十六进制指令
  • value_template用于解析设备状态

5. 高级功能与自动化

基础配置完成后,我们可以进一步探索更高级的功能。

5.1 状态监控与反馈

除湿机接入后,你可以在HomeAssistant中看到设备的开关状态。如果需要更详细的信息监控,可以添加传感器配置:

sensor: - platform: mqtt name: "除湿机湿度" state_topic: "ff7534ccae4711e7829100163e0f811e/p123456789/d987654321/status/hex" value_template: "{{ value_json.data[9:11] | int(base=16) }}" unit_of_measurement: "%"

5.2 创建自动化规则

通过HomeAssistant的自动化功能,可以实现根据环境湿度自动控制除湿机:

automation: - alias: "高湿度自动开启除湿机" trigger: platform: numeric_state entity_id: sensor.living_room_humidity above: 65 action: - service: switch.turn_on target: entity_id: switch.deye_dehumidifier

5.3 常见问题排查

如果遇到连接问题,可以检查以下几点:

  1. 确认token没有过期(通常有效期为24小时)
  2. 检查MQTT服务器地址和端口是否正确
  3. 验证topic拼接是否正确
  4. 确保HomeAssistant和除湿机在同一网络环境下

在实际项目中,我发现德业除湿机的API响应非常稳定,但MQTT连接有时会受到家庭网络环境的影响。建议为IoT设备配置独立的2.4GHz WiFi网络,避免5GHz信号可能带来的兼容性问题。

http://www.jsqmd.com/news/725089/

相关文章:

  • 从API响应到数据库:手把手教你用Fastjson搞定Java对象与JSON的“无缝”转换(附完整代码)
  • 抖音视频批量下载终极指南:免费开源工具一键搞定无水印收藏
  • ESP32-S3玩转童年经典:手把手教你搞定NES模拟器的I2S音频与FC手柄适配(含完整代码)
  • 如何快速构建专业数据大屏:DataRoom可视化设计器完整指南
  • MediaCrawler实战指南:5分钟搭建你的多平台媒体数据采集系统
  • DolphinScheduler集成Seatunnel踩坑实录:环境变量和部署模式怎么配才不报错?
  • Cloudflare DDNS脚本进阶:一个域名如何同时指向你的公网IP和多个内网IP(Windows/Linux双平台指南)
  • COMTool串口调试助手:跨平台通信调试的终极解决方案
  • Android 14刷机踩坑记:vendor_boot.img大小不对导致fastbootd报错‘misc‘找不到?
  • Python和Java默认排序算法TimSort,为什么比快排还快?手把手带你拆解源码
  • 公众号预约小程序怎么做?(顾客如何预约参观/挂号/线下服务) - 维双云小凡
  • 告别屏幕截图糊掉水印!用PIMoG噪声层手把手教你训练抗拍照的深度学习水印模型
  • Postman调试RAGflow Agent API的3个关键技巧:如何高效处理流式响应数据
  • 提升内容采集效率500%:douyin-downloader实现抖音内容批量管理与自动化下载
  • 手把手教你用MSP432P401R和OpenMV H7 Plus搞定电赛C题爬坡小车(附完整代码)
  • Hotkey Detective:3分钟精准定位Windows热键冲突,找回你的快捷键控制权
  • 2026年4月示功机源头工厂怎么挑?价格、品质与生产技术实力全维度考察指南 - 品牌推荐大师1
  • 使用Asbestos库优雅隔离重构遗留代码:Python项目现代化实战指南
  • Metric-S评估框架验证与优化实践
  • 2026届毕业生推荐的五大降AI率工具推荐
  • 别再只截图了!Pytest+Allure2报告嵌入视频、HTML和日志的5种高级玩法
  • TotoroCloud:轻量级多云统一管理平台的设计与实践
  • 【GitHub开源项目专栏】Letta(原MemGPT):让LLM拥有持久记忆的革命性架构
  • 2026权威推荐:雷达液位计五大品牌榜单来袭!优选苏州贝特仪表,技术领先品质可靠 - GrowthUME
  • linux vim命令
  • 百元预算打造专属 Minecraft 联机服务器
  • 高效开发指南:现代Total War模组制作工具的核心功能解析
  • 别再只会用bar3画图了!MATLAB三维柱状图进阶玩法:用‘grouped‘和‘stacked‘样式讲好数据故事
  • 大语言模型与进化算法融合的代码优化实践
  • 终极指南:5分钟掌握JetBrains IDE试用期无限重置的完整解决方案