『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: itispip

[经验分享] 德业除湿机接入以后获取全部状态

[复制链接]

0

主题

61

帖子

530

积分

高级会员

Rank: 4

积分
530
金钱
469
HASS币
0
发表于 2021-7-5 09:48:30 | 显示全部楼层
itispip 发表于 2021-7-2 13:57
HomeAssistant本身只支持一个MQTT服务器。但这是很容易解决的问题

方案一:你本地的MQTT服务器使用bridge ...

方案一:你本地的MQTT服务器使用bridge模式,把所有你需要追踪的MQTT topic都集中过来。

这个怎么配置,望能指点一下,谢谢
回复

使用道具 举报

14

主题

191

帖子

888

积分

高级会员

Rank: 4

积分
888
金钱
697
HASS币
0
 楼主| 发表于 2021-7-6 00:40:52 | 显示全部楼层
本帖最后由 itispip 于 2021-7-6 01:12 编辑
dscao 发表于 2021-7-4 11:12
谢谢!之前看到过要修改mqtt组件,又担心影响原有mqtt设备,一直没弄。这两天折腾了几个晚上,先是用mqtt b ...

1楼的教程里面,原作者已经更正过,不用修改mqtt主键,在YAML里面,按照以上的状态码,有正确的设置就可以了。例如:按以后的状态码,替换教程里的payload_on,就可以了。不需要再修改原版的mqtt组件。
回复

使用道具 举报

14

主题

191

帖子

888

积分

高级会员

Rank: 4

积分
888
金钱
697
HASS币
0
 楼主| 发表于 2021-7-6 00:54:19 | 显示全部楼层
本帖最后由 itispip 于 2021-7-6 01:36 编辑
fhxu 发表于 2021-7-4 11:12
你的这个状态怎么用,我用他的已经接入了,只能开关

switch:
  - platform: mqtt
    name: deye
    unique_id: deye_switch
    state_topic: xxxx/xxxx/xxx/status/hex
    command_topic: xxx/xxxx/xxx/command/hex
    value_template: "{{ value_json.data[5:6] }}" #(参考1楼的状态码,抓出第6位的值)
    state_on: 3  #(参考1楼的状态吗,第6位的值为3代表通电)
    state_off: 2  #(参考1楼的状态吗,第6位的值为2代表断电)
    payload_on: "\x08\x02\x03\x20\x19\x00\x00\x00\x00\x00" #(参考1楼状态码,这个命令代表:启动压缩机-设置风力为2挡-通电-连续除湿模式-没有定时。你可以更改定义你自己的开机状态)
    payload_off: "\x08\x02\x02\x20\x19\x00\x00\x00\x00\x00" #(参考1楼状态码,这个命令代表:断电,同时保存下次启动的缺省状态为启动压缩机,风力2档,连续除湿,没有定时)

更具你自己的需要,再添加几个Sensor/binary Sensor/cover之类的,例如增加温度和湿度感应sensor:
sensor:      - platform: mqtt
    name: 德业温度
    unique_id: deye_temperature
    state_topic: xxxx/xxxx/xxx/status/hex
    value_template: "{{ (value_json.data[34:36]) }}" #(根据1楼的状态码,35-36位是温度)
    unit_of_measurement: '°c'
  - platform: mqtt
    name: 德业湿度
    unique_id: deye_humidity
    state_topic: xxxx/xxxx/xxx/status/hex
    value_template: "{{ (value_json.data[32:33]|int+2)*10 + (value_json.data[33:34]|int-2) }}" #(根据1楼的状态码,33-34位是湿度)
    unit_of_measurement: '%'

同理你可以增加风扇挡位,水满感应之类的。把所有自定义的部件再group在一起。一个完整的德业除湿机控制卡就出现了。
Deye:
  name: 德业 T22A3
  entities:
    - switch.deye_switch
    - sensor.deye_temperature
    - sensor.deye_humidity  





回复

使用道具 举报

14

主题

191

帖子

888

积分

高级会员

Rank: 4

积分
888
金钱
697
HASS币
0
 楼主| 发表于 2021-7-6 01:04:50 | 显示全部楼层
本帖最后由 itispip 于 2021-7-6 02:01 编辑
fhxu 发表于 2021-7-5 09:48
方案一:你本地的MQTT服务器使用bridge模式,把所有你需要追踪的MQTT topic都集中过来。

这个怎么配置, ...

MQTT服务器这部分不属于HomeAssistant,看你自己使用的MQTT服务器是哪个,由MQTT服务器自己决定。例如,我使用的是mosquitto,它的bridge设置如下。

# ==========
# Bridges
# ==========
connection Deye
address xxxxx.mqtt.iot.gz.baidubce.com:1883
topic xxx/xxx/xxx/status/hex in
topic xxx/xxx/xxx/command/hex out
remote_username xxx/xxx
remote_password xxx
local_clientid xxx
remote_clientid xxx
bridge_protocol_version mqttv311
try_private false
notifications false
bridge_outgoing_retain false
bridge_attempt_unsubscribe false
cleansession false
keepalive_interval 60

这里面的关键是,除了state topic和command topic,什么都不能发给德业服务器,否则就会被拒绝连接。所以try_private, notifications, retain, unsubscribe之类的一切会发送额外数据的东西都要设置为false。具体你的MQTT服务器怎么设置,你得自己看。
回复

使用道具 举报

14

主题

191

帖子

888

积分

高级会员

Rank: 4

积分
888
金钱
697
HASS币
0
 楼主| 发表于 2021-7-6 01:10:08 | 显示全部楼层
本帖最后由 itispip 于 2021-7-6 02:03 编辑
tzungtzu 发表于 2021-7-5 09:30
感谢,我的除湿机是DYD-E12A3,测试了一下,可以看到5、6、31-34的数据变化,可以做几个传感器,35-36我的 ...

不同的机型配置的硬件传感其可能不一样。温度因为是没有加密的,你可以看看完整的status值里面,有没有哪个位置的值恰好等于温度的。如果没有,可能你的猜测就是对的,你的机型硬件就是没有温度传感的。如果有,参考13楼的example,相应的在yaml里面修改value_template抓取的位置就行了。这个方便的地方在于无需修改MQTT的原版组件,只需要从原始的status里面抓出不同的位就可以了,哪怕家里有几台不同型号的德业也可以同时接入。
回复

使用道具 举报

0

主题

7

帖子

20

积分

新手上路

Rank: 1

积分
20
金钱
13
HASS币
0
发表于 2021-7-6 08:43:30 来自手机 | 显示全部楼层
厉害了,回家折腾一下
回复

使用道具 举报

27

主题

147

帖子

945

积分

高级会员

Rank: 4

积分
945
金钱
798
HASS币
0
发表于 2021-7-6 12:03:32 | 显示全部楼层
itispip 发表于 2021-7-6 01:10
不同的机型配置的硬件传感其可能不一样。温度因为是没有加密的,你可以看看完整的status值里面,有没有哪 ...

嗯,我获取了温湿度信息,跟家里小米温湿传感器还是有差距,不知道哪个准确哈哈。另外想请教一下,我对mqtt还不是很熟悉,在添加这个mqtt配置之后,如果我有其他mqtt想要连接,应该怎么办,我的ha没有add-on,不知道应该怎么添加
回复

使用道具 举报

14

主题

191

帖子

888

积分

高级会员

Rank: 4

积分
888
金钱
697
HASS币
0
 楼主| 发表于 2021-7-6 13:40:24 | 显示全部楼层
tzungtzu 发表于 2021-7-6 12:03
嗯,我获取了温湿度信息,跟家里小米温湿传感器还是有差距,不知道哪个准确哈哈。另外想请教一下,我对mq ...

mqtt的bridge想添加多少个就添加多少个,只要你机器受得了。
回复

使用道具 举报

1

主题

49

帖子

898

积分

高级会员

Rank: 4

积分
898
金钱
849
HASS币
0
发表于 2021-7-7 08:17:06 | 显示全部楼层
已按此方法接入,非常强大!感谢楼主!
回复

使用道具 举报

0

主题

61

帖子

530

积分

高级会员

Rank: 4

积分
530
金钱
469
HASS币
0
发表于 2021-10-19 16:48:49 | 显示全部楼层
itispip 发表于 2021-7-6 01:10
不同的机型配置的硬件传感其可能不一样。温度因为是没有加密的,你可以看看完整的status值里面,有没有哪 ...

1634633212: Bridge app_b5aaa12054ce11e sending CONNECT

1634633212: Client app_b5aaa12054ce11e disconnected: Broken pipe.

哥们
提示断开
local_clientid
remote_clientid
这两个值是不是写一样的,就是那个app_开头的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-8 07:15 , Processed in 0.129761 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表