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。
後來數日后,歡喜地買了一個小米的空調伴侶。悲劇就從而而生了。
小米的空調伴侶,竟然是不支持裝好的 Homebridge ! 我無法接受的我,開始了浪費生命的折騰。
鑒於我只是一個設計師而言,我首先想到的辦法,是基於 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)
在集成到 Homebridge 時候就遇到大問題了。調用腳本操作時候一切都好,但是就是無法在 HomeKit 使用。我上網檢查了文檔,發現 HomeKit 最長允許 2s 以內的指令,然而,我這個模擬方案,指令時長達到 30s 以上。 所以,只能放棄此 ADB 方案。
我作為人生從沒開發過 Android / iOS 的設計師。只會前端 / Nodejs / PHP 這三個語言。 經過我一番搜索之後,我看到 Accessibility 相關的代碼好像特別簡單。 所以,我決定下載一個 Android Studio 來啟動我的 Android 之旅。
經過了 2 天時間,我終於把能用的 Android App 寫好了。我沒有覺得太多坑,我只是覺得英文資料太多,看起來很累而已。除了每次編譯的速度真的很慢之外,其他都還挺好的。
在寫的過程中,我都很少去看文檔,主要依賴 Google 知識點,閱讀別人的源代碼,很快地,就把核心功能組裝好了。又花了 120 分鐘時間,把服務器通信部分也組裝好了。
又花了好多好多時間,把 Socket IO 也折騰好了。
Nodejs 部分最為簡單了,畢竟還是熟悉的嘛~簡單的接口就折騰好了。
Homebridge 使用了 homebridge-switcheroo 作為通信插件,搞定。
一切的都搞定了,除了程序配置化
http://staticshare.5mlstudio.com/img-5168-mov(2017-06-20T08:13:45+08:00).mov
我在小米的手機測試到無奈了。 就拿錘子測試了一下。
在錘子相同的代碼運作正常。很久很久也正常。
後來經過刷 ROM 等一系列無意義的掙扎之後,突發奇想地在 Google 搜索了「MIUI Socket 5 分鐘 斷線」。竟然被我找到一個叫做「神隱模式」的說明。
原文:https://kknews.cc/tech/zpav83.html
國產機的坑,真的好難猜得到啊。
1
mritd 2017-06-20 09:05:24 +08:00 via iPhone
老铁双击 666 完美,周末折腾
|
2
mritd 2017-06-20 09:06:40 +08:00 via iPhone
讲真,Ios 的米家跟屎一样,动不动闪退
|
3
cctrv OP |
4
imyip 2017-06-20 09:11:08 +08:00
佩服!!
|
5
designer 2017-06-20 09:15:19 +08:00 via iPhone 1
极客美少女!
|
6
scnace 2017-06-20 09:25:42 +08:00 via Android 7
我拿起了我布满灰尘的树莓派 拍了拍上面的灰 叹了口气 又放下了…
|
7
brucewzp 2017-06-20 09:30:29 +08:00 via iPhone
前后端都写了,最后你跟我说你只是一个设计师?[滑稽]好东西赞一个[认真脸]
|
8
abmin521 2017-06-20 09:40:57 +08:00 via Android
nano pi 不烧手吗
|
9
crossoverJie 2017-06-20 09:44:03 +08:00
全栈现在包含设计师啦 现在的小姐姐都这么 6 了嘛 😱
|
10
manihome 2017-06-20 09:46:05 +08:00
全栈不仅包设计师还包产品。。。
|
11
alexskywin 2017-06-20 10:00:27 +08:00
不会安卓开发的前端不是设计师,完美诠释
|
12
kely 2017-06-20 10:00:40 +08:00
我是一个假的前端,徘徊在被设计师支配的恐惧中
|
13
aksoft 2017-06-20 10:07:23 +08:00
现在的女孩子这么厉害??谁能罩得住
|
14
cctrv OP |
15
gongjianwei 2017-06-20 10:34:16 +08:00 via Android
非常感谢
|
16
graetdk 2017-06-20 10:43:16 +08:00
哈哈哈,厉害~
|
17
aliuwr 2017-06-20 11:13:22 +08:00
要脸不,还给不给中低端的前端 /后端 /产品活路?
|
18
Betacoefficient 2017-06-20 11:16:07 +08:00
@aliuwr 你丢脸不,能力居然差,还觉得人能力强,还要人给你活路,你求她啊,哈哈哈
|
19
Exyn0s 2017-06-20 11:30:02 +08:00 via Android
小姐姐好強
|
20
tomczhen 2017-06-20 12:02:43 +08:00 via Android
嗯,其实 pi 也可以省掉
http://post.smzdm.com/p/553097 |
21
sobigfish 2017-06-20 13:37:46 +08:00
厉害了,
服务器 IP 端口什么的 可以通过 bonjour 来广播吧 另求推荐个小巧的 android 盒子来做管理中枢 |
22
qceytzn 2017-06-20 14:31:12 +08:00
米家这个东西联网吗?你不担心隐私泄露?
|
23
amorphobia 2017-06-20 15:07:04 +08:00
@cctrv 如果我理解没错的话,没有 Android 设备的情况下,不小心买了“空调伴侣”,就不适用这个方法了,对吗?
|
24
queuey 2017-06-20 15:11:53 +08:00
这个界面设计,佩服之极
|
26
mysticzt123 2017-06-20 17:21:31 +08:00
这不是全栈 是全能 好厉害的小姐姐
|
27
Tunar 2017-06-20 18:21:10 +08:00 via Android
界面好看
|
28
littleylv 2017-06-20 18:24:41 +08:00
啊 好厉害的小姐姐
|
29
21grams 2017-06-20 18:32:03 +08:00
一晚?
|
30
cctrv OP |
31
cctrv OP |
32
doggg 2017-06-20 18:54:55 +08:00
人漂亮,设计漂亮,技术也漂亮。膝盖给你就是。
|
33
doggg 2017-06-20 18:56:56 +08:00
有一群很棒的同事一起打理喜欢的事业应该每天都很有趣吧。
|
34
cctrv OP @qceytzn 洩漏吧~我大約 1/3 的密碼還是社工庫能找到的⋯😰
對個人隱私沒什麼在乎的普通玩家⋯😂 |
36
AsisA 2017-06-20 19:01:26 +08:00 via Android
233,这真是「不会写程序的设计师不是好作家」了,设计好,程序好,文章也好
|
38
amorphobia 2017-06-20 20:09:14 +08:00
@cctrv 别替换成 Android 啊,我有两个 pi 却没一个 Android [捂脸]
|
39
meathill 2017-06-20 20:12:29 +08:00
极客妹子很强力
|
40
onion83 2017-06-20 21:05:05 +08:00
我也希望拥有 “人体感情器” !
|
41
MASAILA 2017-06-20 21:07:25 +08:00
很强啊 看开头 还以为会是哪家开发平台的软问
|
42
aristotll 2017-06-20 21:08:26 +08:00
amazing
|
43
imyip 2017-06-20 21:26:19 +08:00 via iPhone
我也希望像楼主那样打扮成漂漂亮亮
|
44
mingyun 2017-06-20 22:35:50 +08:00
厉害了
|
45
leopku 2017-06-20 22:48:36 +08:00
666 的小姐姐
|
46
kingcos 2017-06-20 23:38:42 +08:00
真厉害。。
|
47
mnsw 2017-06-21 00:41:31 +08:00
设计师,,,
|
48
huyinjie 2017-06-21 01:26:16 +08:00 via iPhone
好强
|
49
flowerains 2017-06-21 01:39:29 +08:00
很厉害了,关键是有心专研技术
|
50
yangff 2017-06-21 02:44:37 +08:00
感觉抓个包会比较简单吧…
虽然米家的设备经常有一种搞法是先发到小米的服务器再推送下来… 安全性做得还算不错的… |
51
newton108 2017-06-21 03:01:01 +08:00
完爆 99% v2exer
|
52
kn007 2017-06-21 07:52:44 +08:00 via Android
扎心了,老铁。小姐姐,你为何这么 6
|
53
Yien 2017-06-21 07:54:33 +08:00 via iPhone
佩服!
|
54
aleung 2017-06-21 08:09:22 +08:00 via Android
树莓派装过 home assistant,但小米的开放性太低,玩不了什么,就放弃了。没想过通过无障碍特性可以模拟人工操作 mihome 应用,这个思路超赞!
|
55
badreamm 2017-06-21 08:33:18 +08:00
一晚時間從沒寫過 Android 和 JAVA 到學會入門
扎心了 老姐 |
56
steveshi 2017-06-21 09:55:45 +08:00
这个牛了……
|
58
likaci 2017-06-21 10:25:58 +08:00
不错啊,不知道直接用 homebridge 连 Android 红外控制传统设备行不行的通
|
59
test4zhou 2017-06-21 10:37:47 +08:00
看了小姐姐 github 的项目,厉害!
|
60
denonw 2017-06-21 11:01:14 +08:00
赞
|
61
cxl008 2017-06-21 11:24:48 +08:00
一直不忍心下单米家全套。。。。
|
62
xuan_lengyue 2017-06-21 12:27:20 +08:00
示例视频看到最后有亮点…
|
63
xuan_lengyue 2017-06-21 12:27:55 +08:00
看错了…
|
64
cctrv OP |
65
cctrv OP |
66
gyteng 2017-06-21 15:08:38 +08:00
没有 iPad 和 AppleTV 的情况下如何才能远程控制 HomeBridge 呢
|
67
yangxuan8282 2017-06-21 15:37:48 +08:00
@gyteng 用 vpn 应该可以,另外有网友说用 mqtt 也行
|
68
LeoNG 2017-06-21 16:03:37 +08:00
关于 Socket.io:
我最近也在做智能家居的一个项目,不过是 iOS 端的,遇到了和楼主类似的情况,而且是 100%可以重现的: 1. 打开,app 退到后台,锁屏。 2. ....... 干等,或者抠鼻屎,随你。 3. 再次打开 app,和 UDP 服务器之间的通讯,指令发送、心跳等等,一切都 ok。唯独,和 WiFi 模块之前的通过挂掉了。由于和硬件的通讯是局域网内的广播。所以不知是否是这个有影响。这个问题一直困扰了我很就,各种谷歌,Apple forum 去找,还真让我发现了一个:https://forums.developer.apple.com/thread/45283, 当时想着终于可以甩锅了,但是仔细斟酌(良心发现),发现情况不太一样。也同你一样,写了 Ping 请求保持手机 wifi 模块不休眠,然而没什么用。 之前,我是每次发送 UDP 都会判断是否绑定了端口,是否连接,按理说,这个没问题。但是如果手机锁屏后重新打开,在重连的过程中,发现没有 close socket,所以我在每次 reopen 的时候,都会手动 close。这样就没再出现过这种情况了。至于为什么,我暂时也不太清楚。端口被占用也考虑过,但是想了想不应该唯独 udp 广播有问题。所以想不通了。。。。 一点个人经验,希望能帮到你。 |
69
jonechenug 2017-06-21 16:26:15 +08:00 via Android 1
这么多人,只有我一个人想要微信吗?
|
70
esmdxx1 2017-06-21 16:56:10 +08:00 via iPhone
好
|
71
Lucups 2017-06-21 17:15:51 +08:00
恕我直言,在大陆,楼主使用繁体字是不科学的。
看得累,不利于知识传播分享,尤其是在一些低分辨率屏幕上,繁体字没法看。 故建议楼主改用简体字。 |
72
cctrv OP @gyteng
HomeKit 必須 iPad 或 AppleTV。 HomeBridge 我記得有一個相關項目 Home-Assistant,你看看這個。http://www.keepwn.com/technology/build-home-cloud-center-for-IT/ @LeoNG 所以? 我大約 4 分鐘就先自行 close 來做一次重新連接就可能好了? 我遲些有空試試,因為做了這個項目。 我的外包的上帝在催死我了。 @jonechenug 微信可以啊~ 反正是 WebAPI。 你把 HomeKit 扔了,用這個 Android App + Server,你打開網頁都可以控制開關呢。反正我用 GET 來調用服務。 @Lucups 所以嘛~ 習慣繁體字就好了。 謝謝你的建議咯。我是不會改的。^-^ |
74
cctrv OP |
75
qaulau 2017-06-21 19:38:29 +08:00 via Android
楼上一堆看到美女头像就认为是女的的,应该是单身久了的,难道只有我觉得楼主是抠脚大汉,而且是有信仰的抠脚大汉…
|
77
jonechenug 2017-06-21 23:46:54 +08:00 via Android
/吐血,不是微信控制,是楼主的微信号
|
78
Katy34 2017-06-22 10:14:47 +08:00
牛逼 666
|
79
azh7138m 2017-06-22 11:28:58 +08:00 via Android
被设计师支配的恐惧(瑟瑟发抖的萌新
|
80
goldenlove 2017-06-22 14:42:43 +08:00
默默地围观了楼主个人网站....佩服。
求 ins 围观地址~ |
81
DingSoung 2017-06-22 15:29:25 +08:00
你后面三张 iOS 截图是什么 APP 的呀
|
82
wingyiu 2017-06-22 17:04:42 +08:00
一晚几个小时哦
|
83
Thoxvi 2017-06-22 19:03:43 +08:00 via Android
@jonechenug 这里有个假装不想要的
|
84
dven 2017-06-23 15:21:04 +08:00
NanoPi NEO2,sunxi/Allwinner H5 A53 Quad ?
其實用緊繁體字都冇咩稀奇,喺廣州都幾常見下 |
85
dven 2017-06-23 15:24:47 +08:00
|
86
loveminds 2017-06-23 15:52:02 +08:00 via Android
😂比小敏更能折腾的妹子出现了
|
87
cctrv OP 有人已經找到我微信了
|
88
19tj 2017-06-24 15:11:37 +08:00
那个……你一定没有男朋友吧……
|
89
ihainan 2017-06-24 22:05:44 +08:00
老早就关注了小姐姐的微博……小姐姐棒棒。
|
90
Poko 2017-06-24 22:18:03 +08:00
夭寿啦,没有活路啦
|
91
litpen 2017-06-25 09:27:44 +08:00
不行,我也要努力了,不能呆在没有发展的公司里等死了!
|
92
cctrv OP 我終於,找到神奇的 Socket Bug 的問題所在了。
|
93
ZiLong 2017-06-25 22:59:24 +08:00
不就是膝盖么
|
96
fumichael 2017-07-04 09:13:11 +08:00
哇,好酷的工作。
|
97
GeekCat 2017-07-26 14:15:50 +08:00
忽然觉得被一个设计师在代码上给打败了。。。。
|