前言
之前一直在关注github上的MHI2MQTT项目,元旦后发现这个项目有德国大佬弄出来了,github地址:MHI-AC-Ctrl,有兴趣的请star。看了下连接方案,选Configuration 1,简单粗暴方便。
本教程用的就是这个项目的源码。算了下成本,不到30块钱。
适用于:三菱重工SRUA系列,这个是分体式的,不是中央空调。
三菱电机的可以参考HeatPump
准备工作
查看室内机主板,是否有CNS接口。
上图的左下角白色5针插口就是CNS接口。
CNS接口是5线 2.54mm接口,杜邦线也可以用。
如果没找到接口,那就请Ctrl+W关闭本页面。
需要烙铁、焊锡丝(买好点的丝,焊接的时候轻松许多)还有导线,
不会用烙铁那就请Ctrl+W关闭本页面。
配件如下:
1、DC降压模块 1个
2、 4路 5V-3.3V电平转换模块 1个
3、wemos d1 mini 1个
硬件部分
硬件部分github地址:Hardware
SPI协议github地址:SPI
引用github上的原理图
wemos d1 mini 针脚定义
这是具体的接线图,自己画的实物草图,不知能否有人看得懂。
室内机CNS接口定义
软件部分
源码:
ha_second_bedroom_2020-02-04_original.ino
(19.41 KB, 下载次数: 15)
用Arduino打开后,修改12行到21行的配置。
#define MQTT_SERVER "**********" // IP address of your MQTT broker
#define MQTT_PORT 1883
#define MQTT_PREFIX "MHI-AC-Ctrl/second_bedroom/"
#define MQTT_SET_PREFIX MQTT_PREFIX "set/"
#define MQTT_USER "**********" // Username if required for your MQTT broker
#define MQTT_PASSWORD "**********" // Password if required for your MQTT broker
const char* ssid = "**********";
const char* password = "**********";
const char* hostname = "MHI-AC-Ctrl-second_bedroom";
把**改成你自己的,
MQTT_SERVER 把引号内改成自己的mqtt服务器IP
MQTT_PORT 把1883改成自己的mqtt服务器端口,一般默认的是1883
MQTT_USER 把引号内改成自己的mqtt用户名
MQTT_PASSWORD 把引号内改成自己的mqtt密码
MQTT_PREFIX 把second_bedroom改成你当前的房间名,比如living_room,zhuwo之类的都可以。
MQTT_SET_PREFIX 不用改。
ssid 把引号内改成自己的WIFI名称
password 把引号内改成自己的WIFI密码
hostname 把second_bedroom改成你当前的房间名,方便记住,在路由器下也好找。
注意:MQTT_PREFIX跟MQTT_SET_PREFIX字段后面有个/斜杠,别忘记了,不然后面topic主题的订阅与发布会出问题。
这边用的Arduino 1.8.10版本,d1mini(esp8266)如何用Arduino编译上传烧录,论坛跟百度一大堆,就不细说了。
源码基于MHI-AC-Ctrl的fork项目metarutaiga修改的,增加了MQTT_USER跟MQTT_PASSWORD。
新增了适用于HA版本的HVACmode主题和HVACfan主题。
接入HA
因为是通过mqtt接入的,这部分就比较简单了。
可以用mqtt.fx软件测试下,测好了再接入HA。
订阅MHI-AC-Ctrl/second_bedroom/connected主题,
查看esp8266模块连接室内机是否成功。成功返回True,失败返回False。
其他mqtt主题请查看MQTT
下面是我yaml配置:
路径:/packages/second_bedroom/second_bedroom_climate.yaml
homeassistant:
customize:
climate.second_bedroom_climate:
friendly_name: "次卧空调"
climate:
- platform: mqtt
name: "second_bedroom_climate"
qos: 1
retain: true
initial: 26
min_temp: 18
max_temp: 30
temp_step: 1
current_temperature_topic: "MHI-AC-Ctrl/second_bedroom/Troom"
temperature_state_topic: "MHI-AC-Ctrl/second_bedroom/Tsetpoint"
temperature_command_topic: "MHI-AC-Ctrl/second_bedroom/set/Tsetpoint"
modes:
- 'off'
- 'cool'
- 'heat'
- 'dry'
- 'fan_only'
- 'auto'
mode_state_topic: "MHI-AC-Ctrl/second_bedroom/HVACmode"
mode_command_topic: "MHI-AC-Ctrl/second_bedroom/set/HVACmode"
fan_modes:
- 'high'
- 'medium'
- 'low'
fan_mode_state_topic: "MHI-AC-Ctrl/second_bedroom/HVACfan"
fan_mode_command_topic: "MHI-AC-Ctrl/second_bedroom/set/HVACfan"
只需要把MHI-AC-Ctrl/second_bedroom换成上面源码内MQTT_PREFIX字段的内容就可以了。