小米萬能遙控接入HomeKit的小白文
之前根據知友@小青年兒的文章
小青年兒:用樹莓派和米家實現HomeKit智能家居一步步地指引,成功地將小米的大部分設備用樹莓派通過Homebridge接入了HomeKit。
只是文中並沒有介紹小米萬能遙控的接入方法,而萬能遙控又是我所迫切需要的。
然後我找到了
HomeBridge教程-小米萬能遙控根據HomeBridge教程(下稱「HB教程」),試錯了若干次,終於成功將小米萬能遙控接入了HomeKit。
有感於教程的專業性,要弄懂它,對於我等小白實在也不容易。
所以在此將過程寫出,以供有需要之人參考。
步驟整理:
1:安裝小米萬能遙控的插件。(見HB教程)
2:獲取小米萬能遙控的IP地址和Token。(見HB教程)
3:在config.json文件中添加相關語句。(見本文)
4:獲取小米萬能遙控的紅外信號編碼。(見本文)
5:將紅外信號編碼填入config.json文件。(見本文)
6:重啟樹莓派,執行HomeBridge。
在HomeBridge接入設備時都需要在樹莓派里的config.json文件中添加相關語句。
本文只重點討論在HomeBridge中接入萬能遙控時,配置config.json文件的方法。
從第3步驟開始:
將電腦終端狀態調整到:已ssh連接到樹莓派而未運行HomeBridge。
這時的config.json文件長這樣:
接下來把HB教程里給的代碼複製到config.json文件里。
這裡注意,複製HB教程里給出代碼時應去掉開頭的
"platforms": [
以及最後的
]
然後用小米萬能遙控的IP地址和Tonken替換裡面的數據。
暫時只有7處IP地址和1處Tonken需要修改。
在文件里添加了小米萬能遙控的數據後,config.json長這樣:
修改好config.json文件後保存,退出,執行HomeBridge。
如果運行成功,將會在手機的家庭app里看到多出了7個按鈕。
分別是下面6種的按鈕,以及1個MiLearn按鈕。
此時,只有MiLearn這個按鈕可用,這是用來學習紅外線信號的。
而其它按鈕由於還沒有在config.json中添加紅外線信號編碼,所以現在還不可用。
第4步驟:獲取小米萬能遙控的紅外信號編碼。
有兩個方法可以得到編碼,下面先說第一個方法。
用手機配合電腦終端獲取。
在上一步驟,電腦終端的狀態是:已ssh連接到樹莓派並且運行著HomeBridge。
這時的終端窗口差不多長這樣:
拿出手機,在家庭app里點擊學習按鈕(MiLearn),小米萬能遙控藍燈開始閃爍。
對著小米萬能遙控按下需要複製的紅外線信號,終端會長成這樣:
如果嫌一個個複製太慢,那麼我們有第二種方法。
使用ROOT過的安卓手機或安卓模擬系統,登陸米家後,前往安卓系統的文件夾:
/data/data/com.xiaomi.smarthome/files/
找到類似13602470_device.json這樣的文件。
本例中,13602470是我的小米萬能遙控的設備ID。
打開后里面是所有我在米家裡使用過的紅外遙控信號編碼。
這個文件我在windows系統里用寫字本打開是一些亂碼。
而在MAC里用文本編輯打開則可以正常顯示。
長這樣:
第5步驟:將紅外信號編碼填入config.json文件。
得到了全部的紅外線信號編碼後,先退出HomeBridge。
編輯config.json,將信號編碼分別填入config.json中對應的項里。
這時config.json長這樣子:(請無視兩紅框)
原文件的MomentarySwitch開關只有1個,我自己添加了2個。
其它類型的開關,想必也是可以自己添加的。
在上圖,我只使用了小米萬能遙控的3個紅外信號。
第6步驟:重啟樹莓派,執行HomeBridge。
完。
另外,
以下是我樹莓派里的config.json代碼。
代碼已能正常運行,假如你踩到了坑,可以和我的互相對比一下。
{ "bridge":{ "name":"Homebridge", "username":"CC:22:33:EE:CC:11", "port":51826, "pin":"123-45-678"},"platforms":[{ "platform":"MiAqaraPlatform", "gateways":{ "l0b429zbeb9b": "l72E40F87Z3A498B" } },{ "platform": "ChuangmiIRPlatform", "hidelearn": false, "learnconfig":{ "ip": "192.168.31.164", "token": "lbc280554771bd879z8b61220394e17b" }, "deviceCfgs": [{ "type": "Switch", "ip": "192.168.31.164", "token": "xxxxxxx", "Name": "IR Switch", "data": { "on" : "xxxxxxx", "off": "xxxxxxx" } },{ "type": "Projector", "ip": "192.168.31.164", "token": "xxxxxxxx", "Name": "IR Projector", "interval": 1, "data": { "on" : "xxxxxxxxxxxxx", "off": "xxxxxxxxxxxxx" } },{ "type": "Light", "ip": "192.168.31.164", "token": "xxx", "Name": "IR LightBulb", "data": { "100" : "xxxx", "75" : "xxxxx", "50" : "xxxxx", "25" : "xxxxx", "off" : "xxxx" } },{ "type": "Projector", "ip": "192.168.31.164", "token": "xxxxxxxx", "Name": "IR Projector", "interval": 1, "data": { "on" : "xxxxxxxxxxxxx", "off": "xxxxxxxxxxxxx" } },{ "type": "Light", "ip": "192.168.31.164", "token": "xxx", "Name": "IR LightBulb", "data": { "100" : "xxxx", "75" : "xxxxx", "50" : "xxxxx", "25" : "xxxxx", "off" : "xxxx" } },{ "type": "AirConditioner", "ip": "192.168.31.164", "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.164", "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.164", "token": "lbc280554771bd879z8b61220394e17b", "Name": "Kai Men", "data": "Z6WVABoCAABnAgAAxwYAAKkRAADEEQAACyMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFICAQIBAgEBAgICAQEBAgECAgECAgEBAQRSAgECAQIBAQICAgEBAQIBAgIBAgIBAQEDUgIBAgECAQECAgIBAQECAQICAQICAQEAA=" },{ "type": "MomentarySwitch", "ip": "192.168.31.164", "token": "lbc280554771bd879z8b61220394e17b", "Name": "Ting Men", "data": "Z6WVANkBAAAGAgAAfgIAAKcCAADZBgAA2hEAAOwiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWQUEhQSFBISFBQUEhISFBIUFBIUEhQSEhVkFBIUEhQSEhQUFBISEhQSFBQSFBIUEhIVZBQTFAIUEhIUFBQSEhIUEhQUEhQSFBIQE=" },{ "type": "MomentarySwitch", "ip": "192.168.31.164", "token": "lbc280554771bd879z8b61220394e17b", "Name": "Guan Men", "data": "Z6WVAAwCAAB5AgAA0QYAANIRAAABIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0ICAQIBAgEBAgICAQEBAgECAgECAQEBAgNCAgECAQIBAQICAgEBAQIBAgIBAgEBAQIDQgIBAgECAQECAgIBAQECAQICAQIBAQEAA=" }] } ]}
推薦閱讀:
※AI 語音晶元、799 的智能音箱、120 克的 AR 眼鏡:Rokid 的首次發布會帶來了什麼?
※對標 Nest、Ecobee,微軟溫控器預計 8 月開售
※新的一年 家裡沒有這些智能家居怎麼活
※遠離手機,提升生活品質,從背景音樂系統開始
※解析智能硬體「獨角獸」們的發展態勢