本帖最后由 iwha 于 2019-11-11 15:03 编辑
我的格力空调遥控器型号是YAP0FB2, 米家app使用正常,但是ha插件https://github.com/rytilahti/python-miio 以及 https://github.com/syssi/xiaomi_airconditioningcompanion 都无法使用
安装了homebridge-miio 也不能使用
只好自己动手抓包分析, 经过反复对比终于确定了最终匹配模式,然后在现有插件基础上做了写改动和补充。
针对python-miio的改动:
》更具体精准的 发送码 模式
针对syssi大拿的代码改动:
》添加了led灯初始化状态, 原来的代码开机是关闭led灯
我的米家空调伴侣V2, V3 都可以使用配合格力空调使用, 只适用于遥控器型号为YAP0FB2的格力空调以及米家app匹配格力第2、3套方案
使用方式: 下载压缩包,把两个文件放入~/.homeassistant/custom_component/climate/
配置和https://github.com/syssi/xiaomi_airconditioningcompanion 基本相同,只需要修改一下platform
climate:
- platform: xiaomi_miio_gree
name: AC
host: 192.168.10.12
token: 【token】
target_sensor: sensor.temperature_158d0001f53706
scan_interval: 10
抓包分析(只针对格力空调 设备类型为gree_2 - 0100010727)
如果你的空调还是不能完全匹配,可以试试自己抓包分析几个计算用的常数
抓包分析很简单
1. 安装wireshark
2. 安装android模拟器(我用的是Nox App Player)然后安装android版米家app
3. 安装nodejs 版的miio , 主要用来解析通讯包
npm install -g miio
4. 代开模拟器中的米家app,并打开空调伴侣控制界面
5. 打开wireshark, 选择网络接口,一般可忽略
6. 在wireshark 顶部 “Apply a display filter“ 填写
udp.dstport == 54321 or udp.srcport == 54321
7. 点击蓝色鲨鱼鳍 按钮开始监听
8. 在模拟器米家app操作伴侣, 刚开始的时候最好记住自己进行了那些操作和温度、扫风灯状态
9. 点击wireshar红色停止按钮 结束抓包
10. 选择wireshark 菜单 文件 -》 Export Packwt Dissections -》 As JSON 导出 json 文件
11. 打开命令行运行, 其中token就是空调伴侣的token
miio protocol json-dump dump.json --token 【伴侣token】
12. 解析出的params 中类似
010001072711011801001908205002102000E01908207002000010C0
就是我们需要的
13.然后按照匹配模式分组,[po][mo][wi][sw][tt][li]00[wtw][pmp][tt1]205002102000[tt2]0[wtw][pmp][tt1]2070020000[wbw]0[tt3]0
然后根据公式计算
( x + 设定温度 - 17 ) % 16 = 红框中的数
其中tt1、tt2、tt3 都按上面的公式计算x
tt1 x变化不大, 我的空调除了auto外的模式都为1
tt2、tt3 x每个模式都不同
pmp 是常数 每种模式以及关闭状态都可能不一样
HomeAssistant > 0.89 自定义路径变化为conf/custom_components/xiaomi_miio_gree/climate.py
修复最新空调伴侣固件无法关空调的问题
修复不同风速无法开机的问题
* 2019.11.11 修复了HA 0.101.3的兼容性问题 (基于https://github.com/syssi/xiaomi_airconditioningcompanion修改版本,感谢syssi)
xiaomi_miio_gree.zip
(8.6 KB, 下载次数: 38)
|