此部分将引导你接入小米万能遥控至HomeBridge

首先请确认您安装了Homebridge,如果没有安装请参阅前面的教程。

本插件需要miio支持,请确认您已安装miio。

当前支持的类型:

  1. Switch(开关)
  2. LightBulb(灯泡)
  3. Projector(投影仪)
  4. Airconditioner(空调)
  5. Custom(自定义)
  6. Momentary(瞬时开关)

参数解析

参数 意义 示例值
hidelearn 是否隐藏学习按键 true/false false
type 设备类型 string Switch
ip 设备ip string 192.168.50.1
token 设备token string 47495361bbf65ac41f5e9369dba01b34
Name 设备名字 string 红外台灯开关
interval 发送延迟 int 1
data 记录学习到的遥控码 array "on" : "xxxxxxx","off": "xxxxxxx"
DefaultTemperature 空调启动时的默认温度 int 26
MinTemperature 空调支持的最低温度 int 16
MaxTemperature 空调支持的最高温度 int 30
on 设备开启的遥控码 string xxxxx
off 设备关闭的遥控码 string xxxxx
Cool 制冷模式的遥控码 array "30" : "xxx","25" : "xxx"
Heat 制热模式的遥控码 array "30" : "xxx","25" : "xxx"
Auto 自动模式的遥控码 array "30" : "xxx","25" : "xxx"

  1. 安装插件 homebridge-mi-ir-remote
  2. 修改config.json,按照如下例子进行添加:
"platforms": [
    {
        "platform": "ChuangmiIRPlatform",
        "hidelearn": false,
        "learnconfig":{
            "ip": "192.168.31.xx",
            "token": "xxxxxxx"
        },
        "deviceCfgs": [{
            "type": "Switch",
            "ip": "192.168.31.xx",
            "token": "xxxxxxx",
            "Name": "IR Switch",
            "data": {
                "on" : "xxxxxxx",
                "off": "xxxxxxx"
            }
        },{
            "type": "Projector",
            "ip": "192.168.31.xx",
            "token": "xxxxxxxx",
            "Name": "IR Projector",
            "interval": 1,
            "data": {
                "on" : "xxxxxxxxxxxxx",
                "off": "xxxxxxxxxxxxx"
            }
        },{
            "type": "Light",
            "ip": "192.168.31.xx",
            "token": "xxx",
            "Name": "IR LightBulb",
            "data": {
                "100" : "xxxx",
                "75" : "xxxxx",
                "50" : "xxxxx",
                "25" : "xxxxx",
                "off" : "xxxx"
            }
         },{
            "type": "AirConditioner",
            "ip": "192.168.31.xx",
            "token": "xxx",
            "Name": "IR AC",
            "DefaultTemperature": 25,
            "MinTemperature": 16,
            "MaxTemperature": 30,
            "data": {
                "Cool":{
                    "30" : "xxx",
                    "25" : "xxx",
                    "20" : "xxx",
                    "16" : "xxx"
                },
                "Heat":{
                    "30" : "xxx",
                    "25" : "xxx",
                    "20" : "xxx",
                    "16" : "xxx"
                },
                "Auto":{
                    "30" : "xxx",
                    "25" : "xxx",
                    "20" : "xxx",
                    "16" : "xxx"
                },
                "off" : "xxxx"
            }
        },{
            "type": "Custom",
            "ip": "192.168.31.xx",
            "token": "xxx",
            "Name": "Custom",
            "data": {
                "on": {
                    "0": "0|xxx",
                    "1": "2|xxx",
                    "2": "5|xxx"
                },
                "off": {
                    "0": "1|xxx"
                }
            }
        },{
            	"type": "MomentarySwitch",
                "ip": "192.168.31.xx",
                "token": "xxxxxx",
                "Name": "Momentary Switch",
				"data": "xxx"
            }]
    }
]
  1. 保存config.json,启动Homebridge进行测试。

学习遥控码

请注意,如果不知道遥控码请不要配置任何设备,只配置learn,不然可能导致报错。

  1. 点击Milearn开关,进入学习模式(5秒倒计时启动)
  2. 将遥控器对准小米万能遥控,按下对应按键。
  3. 查看SSH后台的log,检查是否有类似
[10/27/2017, 2:39:35 AM] [ChuangmiIRPlatform] [MiIRRemote][irLearn]Learned Code: Z6WDAC8CAAAIBQAAAggAALsiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAQABAQAAAAAAAAAAAAABAQAAAAEAAAABAAAAAQEAAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEBAQAAA=

的内容,如果有,则将对应的code写进config的对应位置中,如果没有,则重试。
4. 保存配置,重启即可
如果您的遥控器无法学到码,但是在米家APP中却能正常匹配,您可以尝试使用root过的安卓手机或模拟器,录入红外指令后,前往/data/data/com.xiaomi.smarthome/files/IR_REMOTE_DID_device.json查看录入的指令。

Custom相关

Custom适用于多个遥控码使用一个switch处理的情况。 格式如下

"data": {
	"on": {
		"0": "0|xxx",
		"1": "2|xxx",
		"2": "5|xxx"
	},
	"off": {
		"0": "1|xxx"
	}
}

时间参数表示在你按下按钮后多少秒发送遥控码。0代表按下后立刻发送。时间不累计,即你填写5则是按下5秒后发送。
时间参数的单位是秒,你可以使用类似0.5的数字来实现一秒内发送。(我们不建议您设置在1秒内发送太多指令(丢包可能较大))

MomentarySwitch瞬时开关

这个开关在你开启后0.3s会自动关闭,适合用来做遥控器之类的。