作為一個設計師,我用了一晚時間入門了 Android 開發並且為 HomeKit 提供了米家大部分設備的控制權

2017-06-20 08:56:59 +08:00
 cctrv

為你的米家提供完整的 HomeKit 接入方案

Homebridge 方案一直鑒於米家開放度不足,所以總是不能把所有的米家設備都控制起來,我已經不爽很久了。終於,我把它解決了。
設計師折騰系列上文:

https://www.v2ex.com/t/336563#reply56

項目地址

https://github.com/qoli/MiHomePlus

演示視頻

http://staticshare.5mlstudio.com/img-5168-mov(2017-06-20T08:13:45+08:00).mov

操作原理

項目起因

天氣開始熱起來了,某日突發奇想,買了一個 NanoPi。

Nano Pi

搭建了很 Cool 的 HomeBridge。

後來數日后,歡喜地買了一個小米的空調伴侶。悲劇就從而而生了。

悲劇

小米的空調伴侶,竟然是不支持裝好的 Homebridge ! 我無法接受的我,開始了浪費生命的折騰。

Android ADB 腳本方案

鑒於我只是一個設計師而言,我首先想到的辦法,是基於 Android ADB 指令,透過數據線去操作 Android 手機作為代理。 在大約 30 分鐘 ~ 60 分鐘后,我寫出了像樣的腳本了。

![螢幕快照 2017-06-17 上午 6.00.00]( http://ok7ct2124.bkt.clouddn.com/2017-06-20-螢幕快照 2017-06-17 上午 6.00.00.png)

把 ADB 方案集成到 HomeKit

在集成到 Homebridge 時候就遇到大問題了。調用腳本操作時候一切都好,但是就是無法在 HomeKit 使用。我上網檢查了文檔,發現 HomeKit 最長允許 2s 以內的指令,然而,我這個模擬方案,指令時長達到 30s 以上。 所以,只能放棄此 ADB 方案。

尋覓新方案,基於 Android Accessibility

我作為人生從沒開發過 Android / iOS 的設計師。只會前端 / Nodejs / PHP 這三個語言。 經過我一番搜索之後,我看到 Accessibility 相關的代碼好像特別簡單。 所以,我決定下載一個 Android Studio 來啟動我的 Android 之旅。

寫起來,發現 Android 開發其實不難

經過了 2 天時間,我終於把能用的 Android App 寫好了。我沒有覺得太多坑,我只是覺得英文資料太多,看起來很累而已。除了每次編譯的速度真的很慢之外,其他都還挺好的。

在寫的過程中,我都很少去看文檔,主要依賴 Google 知識點,閱讀別人的源代碼,很快地,就把核心功能組裝好了。又花了 120 分鐘時間,把服務器通信部分也組裝好了。

又花了好多好多時間,把 Socket IO 也折騰好了。

服務器端﹣Nodejs

Nodejs 部分最為簡單了,畢竟還是熟悉的嘛~簡單的接口就折騰好了。

Homebridge 接口

Homebridge 使用了 homebridge-switcheroo 作為通信插件,搞定。

一切的都搞定了,除了程序配置化

演示視頻:

http://staticshare.5mlstudio.com/img-5168-mov(2017-06-20T08:13:45+08:00).mov

14685 次点击
所在节点    分享创造
97 条回复
sobigfish
2017-06-20 13:37:46 +08:00
厉害了,

服务器 IP 端口什么的 可以通过 bonjour 来广播吧

另求推荐个小巧的 android 盒子来做管理中枢
qceytzn
2017-06-20 14:31:12 +08:00
米家这个东西联网吗?你不担心隐私泄露?
amorphobia
2017-06-20 15:07:04 +08:00
@cctrv 如果我理解没错的话,没有 Android 设备的情况下,不小心买了“空调伴侣”,就不适用这个方法了,对吗?
queuey
2017-06-20 15:11:53 +08:00
这个界面设计,佩服之极
GPU
2017-06-20 15:22:27 +08:00
@tomczhen #20 楼主这个好像要 Pi 也要安卓机。
mysticzt123
2017-06-20 17:21:31 +08:00
这不是全栈 是全能 好厉害的小姐姐
Tunar
2017-06-20 18:21:10 +08:00
界面好看
littleylv
2017-06-20 18:24:41 +08:00
啊 好厉害的小姐姐
21grams
2017-06-20 18:32:03 +08:00
一晚?
cctrv
2017-06-20 18:52:53 +08:00
@amorphobia 嗯,我這個是必須要 Android 的方案。
Pi 可以參考 20 樓的教程也替換為 Android。

不過 NanoPi 好便宜。才 59-79 而已。
cctrv
2017-06-20 18:54:13 +08:00
@21grams 對的啊。
一晚時間從沒寫過 Android 和 JAVA 到學會入門。
什麼功能完善的確花了額外 1 天(連續時間)
doggg
2017-06-20 18:54:55 +08:00
人漂亮,设计漂亮,技术也漂亮。膝盖给你就是。
doggg
2017-06-20 18:56:56 +08:00
有一群很棒的同事一起打理喜欢的事业应该每天都很有趣吧。
cctrv
2017-06-20 18:59:42 +08:00
@qceytzn 洩漏吧~我大約 1/3 的密碼還是社工庫能找到的⋯😰
對個人隱私沒什麼在乎的普通玩家⋯😂
cctrv
2017-06-20 19:00:30 +08:00
@doggg 可惜我是個人工作室⋯接接設計外包而已。
哈哈哈哈
AsisA
2017-06-20 19:01:26 +08:00
233,这真是「不会写程序的设计师不是好作家」了,设计好,程序好,文章也好
cctrv
2017-06-20 19:10:24 +08:00
@tomczhen 這個辦法好啊。可惜我買 Pi 了。另外,我的手機是小米的。
amorphobia
2017-06-20 20:09:14 +08:00
@cctrv 别替换成 Android 啊,我有两个 pi 却没一个 Android [捂脸]
meathill
2017-06-20 20:12:29 +08:00
极客妹子很强力
onion83
2017-06-20 21:05:05 +08:00
我也希望拥有 “人体感情器” !

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/369700

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX