使用树莓派开启HomeKit智能家居系统 篇十:美的空调接入HomeKit 通过Home Assistant和yaml配置文件,来涨点知识( 三 )


但遗憾的一点,目前并不能做到适配广大品牌 , 目前已知 美的,富士通,格力,AUX、海尔少量、松下、TOSHIBA、大金、三菱、夏普、日立绝大多数常见的遥控型号是可以的,国产其它一些品牌,那么大概率目前就没有办法了 。
成品展示
基础的贴子,其它坛友已经写过了,这里不重复复述,有兴趣大家可以直接访问 IOBROKER贴查看
虽然发布过2款改装性作品,适合拆之改之,但是很多盆友没办法见什么都拆啊,所以又重新设计了一款 。效果如下
没错,它就是基于苹果绿点充电器,配合公插USB即可完成,只要放置空调同侧就完成了 。至少也不用动手拆空调啊 。效果就以视频展示之[摄像头IP6S]:
如果这是你想要的效果,那么请紧跟我魔鬼的步伐![没有摩擦,摩擦,摩擦]
DIY开始
项目已经开源,地址 , 包含已经编译的固件,升级固件,使用说明,接下来,一步一步指引入坑!
PCB板
从项目中下载所有文件,打开文件夹找到GERBER文件夹,将它打包并传送到PCB打样 , 淘宝很多商家首次打样10块啦,当然还有最大的BOSS,5元打样,那就是嘉立创了!如此一来 , 成本是不是直线下滑?
以嘉立创为例,下载下单助手,上传GERBER打包文件,打包成ZIP、RAR均可,进入PCB管理--在线下单--上传文件,下单参数如下:
PCB打板参数
元件BOM
上述地址链接里已经包含了BOM表,除ESP01F 元件均从嘉立创购入,当然了 , 你从淘宝买到同样的元件也是一样的,这里不再重复叙述!
上手贴片
由于体积限制,部分元件采用了0402,不过还好,没几个,对于动手能力强的人,这应该不是什么问题,那么贴好后如下图:
正面贴片
反面贴片
对于正面贴片,除中间的红外发射脚 , 其它均可以侧45度上扬以获得更好的信号角度 。
刷入固件
由于PCB面积限制,所以PCB正面上的VGRT为1.27脚 , 你可以使用SOP16刷机夹,或者使用飞线的办法刷之,进入下载模式的跳脚为正面FP短点,你可以直接点锡焊上,也可以使镊子点一下,然后上电TTL,即可进入刷机模式
使用刷机工具,你可以使用ESPHome-Flasher-1.1.0-windows-x64,也可以使用其它ESP刷机工具 。
配网模式
源代码采用wifimanager配网,请在进入配网后,确保MQTT服务器正确,否则可能导致你无法进入WEB页面,导致重新刷机,配网看以下GIF
WIFI
配置使用
完成配网后,我们可以进入IRMQTT ,直接打开ESP的IP,即可进入 , 图示如下,页面第二项是配置你需要操作的空调品牌 。你这里选择了什么品牌空调 , 通过其它发布MQTT,它只按这个空调格式和协议来发送数据 。
WEB-IRMQTT
选择对应的空调型号,模式,电源,温度,并点击 UPDATE/SEND , 空调有反应后 , 视为有效型号,若无反应,请对应尝试model 1-6子设备型号,如均无反应,可能不被支持 。
反馈测试
如何知道IRMQTT模块是否已经能正常的反馈呢 , 你可以使用MQTT工具监听 。如下图GIF演示!
默认连接上MQTT后,出来的型号和设备等是默认生成的 , 不是接收到的
操作之后能出现ON OFF和有效的数据源,视为可反馈 , 
接入HASS
由于采用标准MQTT协议,并且作者以Homeassistant为蓝本输出消息,故,你可以使用IRMQTT-WEB控制台发送 MQTT discovery 让平台自动发现即可,也可以手动配置,配置如下:
climate:
- platform: mqtt
name: zwaircon
modes:
- "off"
- "auto"
- "cool"
- "heat"
- "dry"
fan_modes:
- "auto"
- "min"
- "low"
- "medium"
- "high"
- "max"
swing_modes:
- "off"
- "auto"
- "highest"
- "high"
- "middle"
- "low"
power_command_topic: "ir_server/ac/cmnd/power"
mode_command_topic: "ir_server/ac/cmnd/mode"
mode_state_topic: "ir_server/ac/stat/mode"
temperature_command_topic: "ir_server/ac/cmnd/temp"
temperature_state_topic: "ir_server/ac/stat/temp"
fan_mode_command_topic: "ir_server/ac/cmnd/fanspeed"
fan_mode_state_topic: "ir_server/ac/stat/fanspeed"
current_temperature_topic: "tele/bksensor/SENSOR"
current_temperature_template: "{{ value_json['SI7021'].Temperature }}"
swing_mode_command_topic: "ir_server/ac/cmnd/swingv"
swing_mode_state_topic: "ir_server/ac/stat/swingv"
min_temp: 16
max_temp: 30
temp_step: 1
retain: false

推荐阅读