本帖最后由 sdhuaren 于 2024-1-17 07:20 编辑
空调的接入方式,曾经试过用内置的Climate或自定义Modbus组件,由于有些组件不再更新,或者不适用,然后我又不懂码都失败了;试着采用Node red接入HA,看了好大神的NR技术贴,手里又有Modbus协议,边学边改,就有了本贴。
大金4MX/3MX多联机与VRV/LMX等中央空调系列不同,不属于总线控制,必须从每台内机电路板都接上空调网关,因此,每台内机的控制都是独立的,互无关联。如果不清楚自己家是那种类型的空调,看下表。
| VRV系列 | 多联机系列 | 外机-内机连接管 | 单管制+分支 | 多管制 | 外机-内机信号线 | 有 | 无 | 标配控制方式 | 线控 | 遥控 | | |
|
这里用到的空调网关是中弘的风管机专用网关,不同机型有不同的网关类型和插口形式,需要跟厂家说清楚自己的型号。
下面是我拆开盖子(先断电)的电路板,网关需要与内机电路板上“S21”连接。
网关提供485接口,这里用一个HF的485转WiFi串口服务器。接线要注意对应正(A)负(B)极
每台空调配一个网关,这些网关可以手拉手接入同一个Modbus服务器,同样注意正(A)负(B)极。
通过蓝色旋钮为每个网关地址设置单独的地址,比如1.2.3.4…… 这个地址要与后面Node red中Modbus TCP中的Unit ID相同。
configuration.yaml中写入入climate,即可通过MQTT接入HA。
遗憾的是,这网关无法读取空调回风温度,Modbus回复数据始终显示为0。而且风量只有大-中-小-自动,遥控器上的睡眠风量无法实现。
以下是configuration.yaml中的配置
mqtt:
- climate:
- name: 书房空调
modes:
- "off"
- "heat"
- "cool"
# - "dry"
# - "fan_only"
# - "auto"
fan_modes:
- "high"
- "medium"
- "low"
# - "off"
# - "silent"
power_command_topic: "AC1/power/set"
mode_command_topic: "AC1/mode/set"
current_temperature_topic: "AC1/cur_temp/state"
mode_state_topic: "AC1/mode/state"
temperature_command_topic: "AC1/temperature/set"
temperature_state_topic: "AC1/set_temp/state"
fan_mode_command_topic: "AC1/fan/set"
fan_mode_state_topic: "AC1/fan/state"
precision: 1.0
- name: 客厅空调
modes:
- "off"
- "heat"
- "cool"
# - "dry"
# - "fan_only"
# - "auto"
fan_modes:
- "high"
- "medium"
- "low"
# - "off"
# - "silent"
power_command_topic: "AC2/power/set"
mode_command_topic: "AC2/mode/set"
current_temperature_topic: "AC2/cur_temp/state"
mode_state_topic: "AC2/mode/state"
temperature_command_topic: "AC2/temperature/set"
temperature_state_topic: "AC2/set_temp/state"
fan_mode_command_topic: "AC2/fan/set"
fan_mode_state_topic: "AC2/fan/state"
precision: 1.0
- name: 主卧空调
modes:
- "off"
- "heat"
- "cool"
# - "dry"
# - "fan_only"
# - "auto"
fan_modes:
- "high"
- "medium"
- "low"
# - "off"
# - "silent"
power_command_topic: "AC3/power/set"
mode_command_topic: "AC3/mode/set"
current_temperature_topic: "AC3/cur_temp/state"
mode_state_topic: "AC3/mode/state"
temperature_command_topic: "AC3/temperature/set"
temperature_state_topic: "AC3/set_temp/state"
fan_mode_command_topic: "AC3/fan/set"
fan_mode_state_topic: "AC3/fan/state"
precision: 1.0
- name: 次卧空调
modes:
- "off"
- "heat"
- "cool"
# - "dry"
# - "fan_only"
# - "auto"
fan_modes:
- "high"
- "medium"
- "low"
# - "off"
# - "silent"
power_command_topic: "AC4/power/set"
mode_command_topic: "AC4/mode/set"
current_temperature_topic: "AC4/cur_temp/state"
mode_state_topic: "AC4/mode/state"
temperature_command_topic: "AC4/temperature/set"
temperature_state_topic: "AC4/set_temp/state"
fan_mode_command_topic: "AC4/fan/set"
fan_mode_state_topic: "AC4/fan/state"
precision: 1.0
附上流程,依葫芦画瓢式的修改,不足之处请大神们不吝赐教。
依次在流程和configuration里添加AC2/AC3/AC4,相应的entity就出现在HA里面啦!
2024.1更新:
1.更新yaml
2.更新nodered流
2022.8更新:
1.写入modbus改为1个,控制信号统一写入。(modbus写入节点过多,导致TCP服务器拥堵掉包,)
2.网关无法获取室内温度,改用外置温度传感器接入nodred,接入climate。
3.MQTT-Climate配置格式更新。
中弘中央空调室内机网关协议书(MODBUS)V2.0.pdf
(412.23 KB, 下载次数: 59)
参考文献:
通用 ModBus 空调组件(及中央空调接入HA的方案简述)
https://bbs.hassbian.com/thread-3581-1-1.html
(出处: 『瀚思彼岸』» 智能家居技术论坛)
|