【插件】德业除湿机全系列傻瓜式接入 Home Assistant
本帖最后由 jsq2627 于 2023-4-11 00:21 编辑在前人经验的基础上,进一步逆向德业智能 app 后我挖出了完整的通信协议,开发了这个 hass 插件。
功能
[*]输入德业智能 app 的账号密码登录,一键傻瓜式添加设备
[*]只要是德业智能 app 能够接入的设备,这个插件就能够支持
[*]接入了几乎全部的设备能力,包括温湿度传感器、负离子开关、风扇风速、摆风、童锁、干衣模式、清新模式、水箱水满状态等
[*]根据检测设备在线离线状态,能够自动更新 HASS 里面的可用/不可用状态
[*]根据设备型号自动判断支持的功能,不添加多余无用的传感器和开关
安装使用
在 HACS 添加自定义存储库:https://github.com/stackia/ha-deye-dehumidifier,然后添加 Deye Dehumidifier 插件。
本插件已经加入到了 HACS 官方库,可以在 HACS 直接搜索 Deye Dehumidifier 下载安装。
配置时只要输入登录德业智能 app 用的手机号和密码,插件会自动把所有已经接入 app 的设备添加进来。
如果机型只有简单的开机除湿和关机,或者使用独立的温湿度计来更准确的控制环境湿度,可以得用ha的自动化来控制大于设定湿度一定值时全力开机,低于设定湿度一定值时关机,以达到保持环境湿度在设置湿度附近。
alias: 除湿机自动工作
description: 除湿机自动工作
trigger:
- platform: time_pattern
minutes: /5
condition: []
action:
- choose:
- conditions:
- condition: template
value_template: >-
{{(states('sensor.zm1_b0f89324b2ac_humidity')|int -
states('input_number.deye_target')|int)>3 }}
sequence:
- service: humidifier.turn_on
data: {}
target:
entity_id: humidifier.chu_shi_ji
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- service: humidifier.set_humidity
data:
humidity: 25
target:
entity_id: humidifier.chu_shi_ji
- conditions:
- condition: template
value_template: >-
{{(states('input_number.deye_target')|int -
states('sensor.zm1_b0f89324b2ac_humidity')|int)>3 }}
sequence:
- service: humidifier.turn_off
data: {}
target:
entity_id: humidifier.chu_shi_ji
default: []
mode: single
sensor.zm1_b0f89324b2ac_humidity 为M1空气检测仪的湿度
input_number.deye_target 为设置目标湿度的辅助元素
每5分钟检查一次环境湿度与设定湿度的差值,决定是全力开机还是关机。
感谢分享 大佬牛逼! 感谢感谢,这个厉害了 本帖最后由 dscao 于 2023-2-27 10:55 编辑
试了一下,非常棒,接入过程大大简化,与app一样的。
发现个问题,就是我的设备几个月前就断电没在用了,这里没有作离线判断,好像正常使用一样,开关也能操作。
app进入后,背景的数据也与这个一样,但显示设备为离线,也就不让操作了。
如果这个再增加一下设备离线状态的判断就完美了。 太棒了。等到有离线状态判定就可以丢开德业自己的App了。 :):):):):) 高手,是个高手! 感谢楼主分享。确实也存在不能辨别是否离线。。 2023-02-28 21:25:13.057 ERROR (MainThread) Unable to prepare setup for platform deye_dehumidifier.humidifier: Platform not found (cannot import name 'MODE_AUTO' from 'homeassistant.components.humidifier' (/usr/src/homeassistant/homeassistant/components/humidifier/__init__.py)).
W20-A3不行诶