|
本帖最后由 linlingzi 于 2022-4-10 20:08 编辑
特别感谢下面链接:
https://bbs.hassbian.com/forum.php?mod=viewthread&tid=3581&highlight=%E7%A9%BA%E8%B0%83
材料如下:
1、某空调网关支持涂鸦智能远程控制,支持Modbus协议、自定义协议。
和东芝空调的连接以及设置看产品说明,不是特别复杂, 先搞定涂鸦智能的远程控制功能
2、ModbusTCP模块
空调网关的485接口和ModbusTCP的485接口对连,电源也都是12V的,可以共用,连接后可以用串口软件测试一下,涂鸦网关会广播消息的,如果连接正确,串口可以看到类似数据 “01 03 0c 00 01 00 02 00 15 00 00 00 00 00 00...",说明连接正确,配置成功了。
3、针对本空调协议使用的组件
modbus2.rar
(11.29 KB, 下载次数: 72)
放在 /home/homeassistant/.homeassistant/custom_components/modbus2 目录下,N1盒子+虚拟环境安装的,其他的自行调整
4、配置文件
modbus:
type: rtuovertcp
host: 192.168.99.151(自行修改)
port: 8899(自行修改)
climate:
- platform: modbus2
name: Toshiba
fan_modes: { auto: 0, 低速: 1, 中速: 2, 高速: 3}(自行修改)
hvac_modes: { 'off': 0, heat: 1, cool: 2, dry: 8, fan_only: 4 }(自行修改)
fan_mode: { registers: [0 ,0, 0, 0, 0] }(自行修改)
humidity: { registers: [0 ,0, 0, 0, 0] }(自行修改)
hvac_mode: { registers: [0 ,0, 0, 0, 0] }(自行修改)
hvac_off: { registers: [0 ,0, 0, 0, 0] }(自行修改)
target_temperature: { registers: [0 ,0, 0, 0, 0] }(自行修改)
[0 ,0, 0, 0, 0] 这里面的几个0就代表你的网关下有几个空调,因为协议问题,我也没有时间去做通用文件,只是在程序里面预设了5个,熟悉程序的也可以进去调整一下数量
5、最终效果
我不是专业的程序人员,只是简单做了修改基本上能达到控制要求了,希望借此抛砖引玉,如果原作者看到此贴,恳请能帮忙进行完善优化,有精通py的,也可以帮忙优化,本程序版权归原作者所有,特此申明!
------------------------------
2019-10-5
忘了分享带回风温度显示的了
2022-1-10
可以适配最新的HA了
2022-4-10
该死的疫情,又把我困在家里的,正好想起我的空调前阵子就折腾了,就乘机把组件也升级了一下吧。
之前用的中央空调1拖5的,另外还有两个风管机一直用的米家空调网关,就是红外控制的那种,虽然也可以用,但如果别人使用遥控器控制空调的话,HA是无法知道状态的。万能的淘宝又让我找到了一款产品,和原来的那款样子差不多,只不过之前那个是接在中央空调的集控端子上,也就是外机的控制线。
这一款东芝的风管机只有一组接线,用来接线控器的,我家当时没有配线控,只有遥控器,所以端子是空着的,我们要做的就是和之前方法一样,接两根线上去就行了,其他方法同上,需要再接一个ModbusTCP模块,当然了,如果有条件走线的话,可以把485的两个线拉到原来的那个ModbusTCP模块并接起来也行,这个就需要设定一下485的地址了,怎么设定说明书上有的,我家走线不方便,就单独用了。
这个图片应该信息量很大了吧,需要的自己联系
注意:这产品读取空调的回风温度,会一直显示4°C,联系商家无解,所以我更新了组件,单独读取温度传感器。更新后配置如下:
modbus:
- name: hub1
type: rtuovertcp
host: 192.168.99.151
port: 8899
- name: hub2
type: rtuovertcp
host: 192.168.99.22
port: 8899
- platform: modbus2
hub: hub1
name: Toshiba
fan_mode: { registers: [0, 0, 0, 0, 0] }
fan_modes: { auto: 0, 低速: 1, 中速: 2, 高速: 3}
hvac_mode: { registers: [0, 0, 0, 0, 0] }
hvac_modes: { 'off': 0, cool: 2, heat: 1, dry: 8, fan_only: 4 }
hvac_off: { registers: [0, 0, 0, 0, 0] }
target_temperature: { registers: [0, 0, 0, 0, 0] }
temperature: { registers: [0, 0, 0, 0, 0] }
target_sensor: { registers: [0, 0, 0, 0, 0] } (这里有回风温度,数组全部写0即可)
- platform: modbus2
hub: hub2
name: Toshiba1
fan_mode: { registers: [0] }
fan_modes: { auto: 0, 低速: 1, 中速: 2, 高速: 3}
hvac_mode: { registers: [0] }
hvac_modes: { 'off': 0, cool: 2, heat: 1, dry: 8, fan_only: 4 }
hvac_off: { registers: [0] }
target_temperature: { registers: [0] }
temperature: { registers: [0] }
target_sensor: { registers: [sensor.temperature_158d0001b7ef1c] } (这里就是因为没有回风温度,读取的温度传感器信号,改成自己的就行了)
效果
前五个是之前的1拖5中央空调,用的空调回风温度(也可以自己改为温度传感器),最后一个是单独的风管机,用的温度传感器
|
评分
-
查看全部评分
|