学习了一段时间,现在时候回馈社会了
声明一下,我这是第一代小米净化器,所以如果有不同版本的变量名可以提出来我一起汇总
首先是安装Homekit
(即Yahka
,但搜索需要找Homekit
以后都会称Yahka
,而HomeKit
则特指手机里的APP)和 Xiaomi miIO protocol device
两个适配器,这个不用多说了,有问题可以提问,我再回来补充1
其次是配置Xiaomi miIO protocol device
只需要填入ip和token即可,这个也一样不多说,有问题可以提问,我再回来补充2
配置好后应该可以在对象里找到这样的内容,其中包含了需要的各种变量,后面会引用这些变量:
接下来是重点配置Yahka
,打开配置界面,点击添加设备,输入名字(例如:空气净化器
):
如果是第一次使用,提醒一下,一开始的那个桥需要先配置好,
Username
地址在关联了HomeKit
之后如果更改需要重新关联,然后Pincode
是你配对时候需要在HomeKit
中输入的八位数字:
回到刚才添加的设备空气净化器
里,添加新的服务,比如湿度
,服务类型就是HumidtySensor
(湿度传感器,读取空气净化器里的湿度变量,我们先弄个简单的 ):
在下面的特征值表格里只需要填写一个特征值CurrentRelativeHumidity
,关联到刚才对象里的湿度Humidty
即可:
第一个服务添加完成,关联到HomeKit
看看吧(可以看到我还添加了一个温度传感器的服务,所以可以通过这台净化器显示温湿度):
(这张图的排版好奇怪,MD不熟悉不懂怎么回事)
当然了,还可以再添加一个空气质量传感器服务,用于显示空气质量,但我发现好像没法显示在状态里,只能在图标上看到优良中差等状态,有知道什么办法的请指教一下:
暂且添加了前三个服务
关于空气质量传感器这里的特征值,我想说一下,虽然PM2.5浓度可以直接读取,但是图标上显示的空气质量却要稍微换算一下,我做的也就是个很粗糙的计算,具体可以看下面第二张图,就是把浓度除以50后加上1得到1-5的空气质量指数,比如如果小于50 ug/L 就是1,质量优的意思,再比如80就是2,质量良,但是大于250就会变成6,不懂会发生什么,所以说很粗糙的计算,但我估计家里是见不到那么大的浓度了也就先这样了
接下来是类似但更复杂一点的净化器本体了, 先上图,因为虽然听起来复杂但是我觉得直接抄作业应该也没问题:
然后解释一下
-
RotationSpeed
读取了最爱模式里的净化器适用房屋范围,其实就是转速,我试了一下我这台净化器的这个变量是0-16,然后这个变量在HomeKit
中的范围是0-100,所以就ScaleInt就行,这个特征值是个可以互动的滑动条 -
Active
读取了开关,简单的mapping,true是开,在这个HomeKit
里是1,false是关,在HomeKit
里是0,这个特征值就是可以互动的总开关 -
CurrentAirPurifierState
类似,2开,0关,这个特征值是你在HomeKit
中按下那个净化器的按钮后显示的净化器状态(开
或者关
) -
TargetAirPurifierState
的话,在HomeKit
里,0称之为手动,1称之为自动,我关联了小米净化器的最爱模式(对应1里面那个滑动条可以调整转速)和自动模式,这个特征值是个详情里可以互动的模式开关
具体还是得看图,红色是第3条说的状态,绿色是第2条说的开关,黄色是第1条说的滑动条,最后紫色就是第4条说的模式开关了
再附上一张打开的状态,显示滑动条的效果:
大功告成!