ModBus 空调组件及中央空调接入 Home Assistant 简述

| 分类 代码  | 标签 智能家居 

写了个通用的 modbus.py 组件接入了HA,支持HomeKit/Siri,天猫精灵,简直是完美啊….

支持通用的ModBus协议的空调,包括走网络TCP的。另外新版HA里面有个modbus组件,写得实在不怎么样,也不具通用性。

Preview1

Preview2

Preview3

Preview4

1. 代码在此:

https://github.com/Yonsm/HAExtra/blob/master/custom_components/modbus2/climate.py

复制 homeassistant 的配置目录中 custom_components/climate/ 下,无此目录请创建。

2. 配置方法如下:

modbus:
  type: rtuovertcp
  host: 192.168.x.x
  port: 8899
 
climate:
  - platform: modbus2
    name: Daikin
    fan_mode: { registers: [6, 10, 14, 18] }
    fan_modes: { auto: 0, 一级: 1, 二级: 2, 三级: 3, 四级: 4, 五级: 5}
    hvac_mode: { registers: [5, 9, 13, 17] }
    hvac_modes: { 'off': 0, cool: 1, heat: 2, dry: 3, fan_only: 4 }
    hvac_off: { registers: [1, 2, 3, 4], register_type: coil }
    target_temperature: { registers: [4, 8, 12, 16] }
    temperature: { registers: [3, 6, 9, 12], register_type: input, scale: 0.1 }

上面是我自己的配置,完整的功能配置如下:

- platform: modbus2
  hub: ModBus,
  name: Daikin,
  
  fan_modes: { auto: 0, 一级: 1, 二级: 2, 三级: 3, 四级: 4, 五级: 5},
  hvac_modes: { 'off': 0, cool: 1, heat: 2, dry: 3, fan_only: 4 },
  preset_modes: { away: 0, home: 1 },
  swing_modes: { off: 0, both: 1, vertical: 2, horizontal: 3},
  aux_heat_off_value: 0,
  aux_heat_on_value: 1,
  aux_hvac_off_value: 0,
  aux_hvac_on_value: 1,

  aux_heat: { registers: [?, ?, ?] },
  fan_mode: { registers: [?, ?, ?] },
  humidity: { registers: [?, ?, ?] },
  hvac_mode: { registers: [?, ?, ?] },
  hvac_off: { registers: [?, ?, ?] },
  preset_mode: { registers: [?, ?, ?] },
  swing_mode: { registers: [?, ?, ?] },
  target_humidity: { registers: [?, ?, ?] },
  target_temperature: { registers: [?, ?, ?] },
  temperature: { registers: [?, ?, ?] },

其中 registers 是批量配置(即多个空调),当然也可以是单个的寄存,register: ?。完整的寄存器配置格式和 HomeAssistant ModBus Sensor 一致(除了我这里支持了批量 registers 之外):

  { registers: [3, 6, 9, 12], register_type: input|holding|coil, slave:1, scale: 0.1, data_type: float|int|uint|custom, count: 1, structure: '>i'}

3. 关于RTU模块

大金、美的、日立、海信等中央空调通用的方案,ModBus RTU模块980买的,再买了个485串口转WIFI的模块200,1180搞定了。ModBus RTU模块在X宝上找了唯一个一,980买的,…。485串口转WIFI买的是“有人”的,墙裂推荐,一看就是认真做事的公司的产品。网上没有现成的方案,过程中全部自己接线、调试,差点快被难度吓到放弃了——终于搞定了,简直是不可能完成的任务…

原帖发布在:https://bbs.hassbian.com/thread-3581-1-1.html

补充:最近看到一个接线视频,虽然不是一样的方案,但接线方法可以参考。


上一篇     下一篇