MiHomePlus 是我為 iOS 家庭編寫的 Android App,主要的作用就是作為 iOS 家庭的操作代理。
MiHomePlus 的工作原理是這樣的:
https://github.com/qoli/MiHomePlus
https://github.com/qoli/MiPlusServer
Pi 我用了 NanoPi,59 元那個 256MB 的版本就足夠了。然而 Android 手機最低要求是 4.2.1 版本的,基於 API 19,因為我是基於這個版本做的開發。
我們需要在 NanoPi 搭建 Homebridge 和安裝 MIPlusServer。
參考這幾遍文章完成 Homebridge 的安裝。
建議安裝的 Homebridge 插件:
homebridge-miio 這個插件聽說可以控制第一代 WIFI 插座,我沒裝,所以我不知道。
當你完成 Homebridge 的安裝后,我們就要開始進行 MIPlusServer 的安裝。
git clone https://github.com/qoli/MiPlusServer.git
cd ./MiPlusServer
npm i
chmod +x miServer.sh
chmod +x run.sh
touch config.js
nano config.js
module.exports = {
tgbot: false,
token: "",
adminChatID: ""
}
如果你有啟用 Telegram Bot 作為監視 MIPlusServer 的運行必要,可以參考 https://neighborhood999.github.io/2016/07/19/Develop-telegram-bot/ 這個教程,來獲取 Telegram BOT 的 token。
module.exports = {
tgbot: false,
token: "Your Token Here.",
adminChatID: ""
}
接著,先按照配置檔保存一下,使用 ./miServer.sh
先讓服務器運行起來。
按照下圖的辦法,加上你自己的機器人,就輸入 id
命令。機器人就會向你返回你的 Chat id 了。
module.exports = {
tgbot: false,
token: "Your Token Here.",
adminChatID: "Your chat id"
}
保存配置檔案即可。
screen -S miServer
./miServer.sh
![螢幕快照 2017-06-26 下午 4.33.47]( http://ok7ct2124.bkt.clouddn.com/2017-06-27-螢幕快照 2017-06-26 下午 4.33.47.png)
你看到這樣的信息就正確了。
隨後,你應該看到這個屏幕。那麼就可以按下「 CTRL + A ; CTRL + D 」來退出 screen 屏幕。我教你記住的口訣,控制你的 AD 鈣奶。
現在,你的 NanoPi 服務器就初始化完成了。
打開 https://github.com/qoli/MiHomePlus/releases 下載 MiHomePlus 當前的發佈版本。
不過當前 App 我正在被標記為 0.1 版本,可能會有一些問題。也有可能在運行中就退出了。但是,我測試過,可以成功運行 1 天了。第二天我就沒遇到問題,只是我把他拿回來繼續開發了。
在啟動 App 后,首先,我們進行設定。
啟動米家的 App,把需要監視的設備都放在同一個房間中。Homebridge 插件能控制的就不要放進來了。
在當前版本下,在一個屏幕之外的設備無法監控。
按照圖片的步驟,把監控的設備都整理到 AndroidAPI 的房間中,當然,你可以叫其他的名字,例如「MiPlusDevices」。 然後,你的米家就應該像圖二一樣的狀態。
打來瀏覽器,我的 NanoPi 是 http://192.168.1.104:3002。 所以,打開 http://192.168.1.104:3002/setting。
填寫房間名稱和設備列表,設備列表要使用「;」半角分號分開哦。在我這裡,主要就監視了這 4 個設備。
監控設備的名字必須和米家 App 顯示的名字一樣哦。
OK,就這些了哦。
![螢幕快照 2017-06-26 下午 11.02.27]( http://ok7ct2124.bkt.clouddn.com/2017-06-27-螢幕快照 2017-06-26 下午 11.02.27.png)
{
"accessory": "Switcheroo",
"type": "switch",
"name": "空調伴侶",
"host": "http://192.168.1.104:3002/device/%E7%A9%BA%E8%AA%BF%E4%BC%B4%E4%BE%B6",
"on": "/ON",
"off": "/OFF",
"on_body": "ON",
"off_body": "OFF"
}
給大家一個 URLEncode 的網址: https://www.urlencoder.org
我的 NanoPi 就是 192.168.1.104 嘛。所以輸入了 http://192.168.1.104:3002。 保存后使用「讀取配置檔案」,就會看到按鈕下方的文字更新過來了。數據就會保存在 App 裡面了。
這個神隱模式嘛,一開始我是不知道的。在開發過程中,每 5 分鐘就遇到 Socket.io 無故斷線,只有重啟才能恢復。後來轉用錘子開發,發現沒有遇到這個問題。我就上網 Google 了一下,才發現小米的神隱模式這個功能導致的。
做了這麼多事情,終於開始了! 把你的 Android 拿去充電吧。反正我的紅米第一代,不充電可以運行一天。
你啟動了這個選項的話。 就可以收到一些 MiHomePlus 的狀態。
1
amorphobia 2017-06-27 00:33:52 +08:00 via iPad
赞一个,牛!
|
2
Citrus 2017-06-27 00:34:38 +08:00 via iPhone
6666666
可惜没这么多智能设备给我控制。。。 |
3
huyinjie 2017-06-27 01:30:20 +08:00 via iPhone
666666
|
4
TashinV 2017-06-27 01:55:10 +08:00 via iPhone
这么强的文章居然没有人关注。。
|
5
cctrv OP |
7
aleung 2017-06-27 07:58:47 +08:00 via Android
用 accessibility, 在 Android 熄屏后还能控制吗?
|
8
hellowwo 2017-06-27 08:14:22 +08:00
为啥不用中文简体呢
|
9
v1024 2017-06-27 08:30:04 +08:00 via iPhone
滋 ci
|
10
imyip 2017-06-27 08:40:25 +08:00 via iPhone
我想了解下关于 nanopi 安装使用 Homebridge 的稳定性
|
12
Tink 2017-06-27 10:30:50 +08:00
可以可以,前一篇帖子也关注了
|
13
Neo 2017-06-27 18:01:16 +08:00
没有 pi,可以用 docker 或者虚拟机吗?
|
14
cctrv OP |
18
ZengLeiPro 2017-06-28 10:51:02 +08:00
这种方法成熟吗?智能家居最怕的就是不断折腾。
|
19
cctrv OP @ZengLeiPro 模擬控制的方法就是好在不用折騰了
|
20
byuan04 2017-06-29 10:59:12 +08:00
nice
|