作一,我用了一晚入了 Android 且 HomeKit 提供了米家大部分的控制 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
cctrv
V2EX    分享创造

作一,我用了一晚入了 Android 且 HomeKit 提供了米家大部分的控制

  cctrv 2017-06-20 08:56:59 +08:00 15375 次点击
这是一个创建于 3037 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

Homebridge 方案一直於米家放度不足,所以是不能把所有的米家都控制起,我已不爽很久了。於,我把它解了。
折系列上文:

t/336563#reply56

目地址

https://github.com/qoli/MiHomePlus

演示

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

操作原理
  • 用「障」特性,和控制米家 App,「 TYPE_WINDOW_CONTENT_CHANGED 」候, MiPlusServer 同步。
  • MiPlusServer 透 Socket.io MIHomePlus 行切。
  • 在 Homebridge 基於 Switcheroo 插件提供操作接口。
  • 所以 MiPlusServer 本是 Web 接口

目起因

天始起了,某日突奇想,了一 NanoPi。

Nano Pi

IMG_5071

搭建了很 Cool 的 HomeBridge。

IMG_5099

後日后,喜地了一小米的空伴。悲就而而生了。

小米的空伴,竟然是不支持好的 Homebridge ! 我法接受的我,始了浪生命的折。

IMG_5176

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 方案。

image

新方案,基於 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

IMG_5178

FullSizeRende

第 1 条附言    2017-06-21 00:38:01 +08:00

一於 Socket.io Java 的

由於需要通信服,所以我使用了 Socket.io.

在注意到一就是,在大 5 分的候。就服器送到手就了。

已定重接。

各位大神有解法?卡有一段了。

另外,Pong Ping 代也了,持在 2 秒一次心跳。

只要 App 重了,就可以正常通信了。真的好奇怪!!!但是重 App 的,障的必手工重。

5 分

第 2 条附言    2017-06-25 22:09:23 +08:00

Socket 的解方案

只有小米有

我在小米的手到奈了。 就拿子了一下。

在子相同的代作正常。很久很久也正常。

後刷 ROM 等一系列意的扎之後,突奇想地在 Google 搜索了「MIUI Socket 5 分 」。竟然被我找到一叫做「神模式」的明。

原文:https://kknews.cc/tech/zpav83.html

如何定神模式?

未命名.001

保持作 22 分以上妥妥的!

未命名.002

的坑,真的好猜得到啊。

97 条回复    2017-07-26 14:15:50 +08:00
mritd
    1
mritd  
   2017-06-20 09:05:24 +08:00 via iPhone
老铁双击 666 完美,周末折腾
mritd
    2
mritd  
   2017-06-20 09:06:40 +08:00 via iPhone
讲真,Ios 的米家跟屎一样,动不动闪退
cctrv
    3
cctrv  
OP
   2017-06-20 09:07:41 +08:00
imyip
    4
imyip  
   2017-06-20 09:11:08 +08:00
佩服!!
designer
    5
designer  
   2017-06-20 09:15:19 +08:00 via iPhone   1
极客美少女!
scnace
    6
scnace  
   2017-06-20 09:25:42 +08:00 via Android   7
我拿起了我布满灰尘的树莓派 拍了拍上面的灰 叹了口气 又放下了…
brucewzp
    7
brucewzp  
   2017-06-20 09:30:29 +08:00 via iPhone
前后端都写了,最后你跟我说你只是一个设计师?[滑稽]好东西赞一个[认真脸]
abmin521
    8
abmin521  
   2017-06-20 09:40:57 +08:00 via Android
nano pi 不烧手吗
crossoverJie
    9
crossoverJie  
   2017-06-20 09:44:03 +08:00
全栈现在包含设计师啦 现在的小姐姐都这么 6 了嘛
manihome
    10
manihome  
   2017-06-20 09:46:05 +08:00
全栈不仅包设计师还包产品。。。
alexskywin
    11
alexskywin  
   2017-06-20 10:00:27 +08:00
不会安卓开发的前端不是设计师,完美诠释
kely
    12
kely  
   2017-06-20 10:00:40 +08:00
我是一个假的前端,徘徊在被设计师支配的恐惧中
aksoft
    13
aksoft  
   2017-06-20 10:07:23 +08:00
现在的女孩子这么厉害??谁能罩得住
cctrv
    14
cctrv  
OP
   2017-06-20 10:28:26 +08:00


gongjianwei
    15
gongjianwei  
   2017-06-20 10:34:16 +08:00 via Android
非常感谢
graetdk
    16
graetdk  
   2017-06-20 10:43:16 +08:00
哈哈哈,厉害~
aliuwr
    17
aliuwr  
   2017-06-20 11:13:22 +08:00
要脸不,还给不给中低端的前端 /后端 /产品活路?
Betacoefficient
    18
Betacoefficient  
   2017-06-20 11:16:07 +08:00
@aliuwr 你丢脸不,能力居然差,还觉得人能力强,还要人给你活路,你求她啊,哈哈哈
Exyn0s
    19
Exyn0s  
   2017-06-20 11:30:02 +08:00 via Android
小姐姐好
tomczhen
    20
tomczhen  
   2017-06-20 12:02:43 +08:00 via Android
嗯,其实 pi 也可以省掉
http://post.smzdm.com/p/553097
run2
    21
run2  
   2017-06-20 13:37:46 +08:00
厉害了,

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

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

不 NanoPi 好便宜。才 59-79 而已。
cctrv
    31
cctrv  
OP
   2017-06-20 18:54:13 +08:00 via iPhone
@21grams 的啊。
一晚 Android 和 JAVA 到入。
什功能完善的花了外 1 天()
doggg
    32
doggg  
   2017-06-20 18:54:55 +08:00
人漂亮,设计漂亮,技术也漂亮。膝盖给你就是。
doggg
    33
doggg  
   2017-06-20 18:56:56 +08:00
有一群很棒的同事一起打理喜欢的事业应该每天都很有趣吧。
cctrv
    34
cctrv  
OP
   2017-06-20 18:59:42 +08:00 via iPhone
@qceytzn 漏吧~我大 1/3 的密是社工能找到的
人私什在乎的普通玩家
cctrv
    35
cctrv  
OP
   2017-06-20 19:00:30 +08:00 via iPhone
@doggg 可惜我是人工作室接接外包而已。
哈哈哈哈
AsisA
    36
AsisA  
   2017-06-20 19:01:26 +08:00 via Android
233,这真是「不会写程序的设计师不是好作家」了,设计好,程序好,文章也好
cctrv
    37
cctrv  
OP
   2017-06-20 19:10:24 +08:00 via iPhone
@tomczhen 法好啊。可惜我 Pi 了。另外,我的手是小米的。
amorphobia
    38
amorphobia  
   2017-06-20 20:09:14 +08:00
@cctrv 别替换成 Android 啊,我有两个 pi 却没一个 Android [捂脸]
meathill
    39
meathill  
   2017-06-20 20:12:29 +08:00
极客妹子很强力
onion83
    40
onion83  
   2017-06-20 21:05:05 +08:00
我也希望拥有 “人体感情器” !
MASAILA
    41
MASAILA  
   2017-06-20 21:07:25 +08:00
很强啊 看开头 还以为会是哪家开发平台的软问
aristotll
    42
aristotll  
   2017-06-20 21:08:26 +08:00
amazing
imyip
    43
imyip  
   2017-06-20 21:26:19 +08:00 via iPhone
我也希望像楼主那样打扮成漂漂亮亮
mingyun
    44
mingyun  
   2017-06-20 22:35:50 +08:00
厉害了
leopku
    45
leopku  
   2017-06-20 22:48:36 +08:00
666 的小姐姐
kingcos
    46
kingcos  
   2017-06-20 23:38:42 +08:00
真厉害。。
mnsw
    47
mnsw  
   2017-06-21 00:41:31 +08:00
设计师,,,
huyinjie
    48
huyinjie  
   2017-06-21 01:26:16 +08:00 via iPhone
好强
flowerains
    49
flowerains  
   2017-06-21 01:39:29 +08:00
很厉害了,关键是有心专研技术
yangff
    50
yangff  
   2017-06-21 02:44:37 +08:00
感觉抓个包会比较简单吧…
虽然米家的设备经常有一种搞法是先发到小米的服务器再推送下来… 安全性做得还算不错的…
newton108
    51
newton108  
   2017-06-21 03:01:01 +08:00
完爆 99% v2exer
kn007
    52
kn007  
   2017-06-21 07:52:44 +08:00 via Android
扎心了,老铁。小姐姐,你为何这么 6
Yien
    53
Yien  
   2017-06-21 07:54:33 +08:00 via iPhone
佩服!
aleung
    54
aleung  
   2017-06-21 08:09:22 +08:00 via Android
树莓派装过 home assistant,但小米的开放性太低,玩不了什么,就放弃了。没想过通过无障碍特性可以模拟人工操作 mihome 应用,这个思路超赞!
badreamm
    55
badreamm  
   2017-06-21 08:33:18 +08:00
一晚 Android 和 JAVA 到入
扎心了 老姐
steveshi
    56
steveshi  
   2017-06-21 09:55:45 +08:00
这个牛了……
Jasoncao
    57
Jasoncao  
   2017-06-21 10:25:11 +08:00
@cctrv 流撇坏了
likaci
    58
likaci  
   2017-06-21 10:25:58 +08:00
不错啊,不知道直接用 homebridge 连 Android 红外控制传统设备行不行的通
test4zhou
    59
test4zhou  
   2017-06-21 10:37:47 +08:00
看了小姐姐 github 的项目,厉害!
denonw
    60
denonw  
   2017-06-21 11:01:14 +08:00
cxl008
    61
cxl008  
   2017-06-21 11:24:48 +08:00
一直不忍心下单米家全套。。。。
xuan_lengyue
    62
xuan_lengyue  
   2017-06-21 12:27:20 +08:00
示例视频看到最后有亮点…
xuan_lengyue
    63
xuan_lengyue  
   2017-06-21 12:27:55 +08:00
看错了…
cctrv
    64
cctrv  
OP
   2017-06-21 14:30:18 +08:00
@yangff
我的思路是,先去看看抓包。
抓包全部都是加加密。我看到就不想破解了。
接著,去看看 adb 控制 Android,就是的效率太低了。
最後才是障服……
cctrv
    65
cctrv  
OP
   2017-06-21 14:31:46 +08:00   1
@likaci
homebridge-switcheroo 是走 API 接口的。所以。
不,外接口的缺是判不。
gyteng
    66
gyteng  
   2017-06-21 15:08:38 +08:00
没有 iPad 和 AppleTV 的情况下如何才能远程控制 HomeBridge 呢
yangxuan8282
    67
yangxuan8282  
   2017-06-21 15:37:48 +08:00
@gyteng 用 vpn 应该可以,另外有网友说用 mqtt 也行
LeoNG
    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 广播有问题。所以想不通了。。。。

一点个人经验,希望能帮到你。
jonechenug
    69
jonechenug  
   2017-06-21 16:26:15 +08:00 via Android   1
这么多人,只有我一个人想要微信吗?
esmdxx1
    70
esmdxx1  
   2017-06-21 16:56:10 +08:00 via iPhone
Lucups
    71
Lucups  
   2017-06-21 17:15:51 +08:00
恕我直言,在大陆,楼主使用繁体字是不科学的。

看得累,不利于知识传播分享,尤其是在一些低分辨率屏幕上,繁体字没法看。
故建议楼主改用简体字。
cctrv
    72
cctrv  
OP
   2017-06-21 18:43:39 +08:00
@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
所以嘛~ 繁字就好了。
你的建咯。我是不改的。^-^
DingSoung
    73
DingSoung  
   2017-06-21 18:44:22 +08:00
@cctrv 下面三张 iOS 的截图的 app 叫什么, 这些东西的硬件是怎么联网的
cctrv
    74
cctrv  
OP
   2017-06-21 19:16:03 +08:00 via iPhone
qaulau
    75
qaulau  
   2017-06-21 19:38:29 +08:00 via Android
楼上一堆看到美女头像就认为是女的的,应该是单身久了的,难道只有我觉得楼主是抠脚大汉,而且是有信仰的抠脚大汉…
cctrv
    76
cctrv  
OP
   2017-06-21 21:41:27 +08:00
@qaulau ~ 我又不面。
不我有微博和 ins
jonechenug
    77
jonechenug  
   2017-06-21 23:46:54 +08:00 via Android
/吐血,不是微信控制,是楼主的微信号
Katy34
    78
Katy34  
   2017-06-22 10:14:47 +08:00
牛逼 666
azh7138m
    79
azh7138m  
   2017-06-22 11:28:58 +08:00 via Android
被设计师支配的恐惧(瑟瑟发抖的萌新
goldenlove
    80
goldenlove  
   2017-06-22 14:42:43 +08:00
默默地围观了楼主个人网站....佩服。
求 ins 围观地址~
DingSoung
    81
DingSoung  
   2017-06-22 15:29:25 +08:00
你后面三张 iOS 截图是什么 APP 的呀
wingyiu
    82
wingyiu  
   2017-06-22 17:04:42 +08:00
一晚几个小时哦
Thoxvi
    83
Thoxvi  
   2017-06-22 19:03:43 +08:00 via Android
@jonechenug 这里有个假装不想要的
dven
    84
dven  
   2017-06-23 15:21:04 +08:00
NanoPi NEO2,sunxi/Allwinner H5 A53 Quad ?
其用繁字都咩稀奇,州都常下
dven
    85
dven  
   2017-06-23 15:24:47 +08:00
@qaulau
人地女噶


@GPU
@cctrv
如果我可能中意摞 Linux 跑多 D 咯


@aksoft
技并界,更唔分男女
loveminds     86
loveminds  
   2017-06-23 15:52:02 +08:00 via Android
比小敏更能折腾的妹子出现了
cctrv
    87
cctrv  
OP
   2017-06-23 17:27:09 +08:00 via iPhone
有人已找到我微信了
19tj
    88
19tj  
   2017-06-24 15:11:37 +08:00
那个……你一定没有男朋友吧……
ihainan
    89
ihainan  
   2017-06-24 22:05:44 +08:00
老早就关注了小姐姐的微博……小姐姐棒棒。
Poko
    90
Poko  
   2017-06-24 22:18:03 +08:00
夭寿啦,没有活路啦
litpen
    91
litpen  
   2017-06-25 09:27:44 +08:00
不行,我也要努力了,不能呆在没有发展的公司里等死了!
cctrv
    92
cctrv  
OP
   2017-06-25 22:10:41 +08:00
我於,找到神奇的 Socket Bug 的所在了。
ZiLong
    93
ZiLong  
   2017-06-25 22:59:24 +08:00
不就是膝盖么
Kalv8n
&nsp;   94
Kalv8n  
   2017-07-02 11:34:22 +08:00 via Android
@cctrv 求 ins
LeoNG
    95
LeoNG  
   2017-07-03 19:17:55 +08:00
@cctrv #92 棒棒哒~
fumichael
    96
fumichael  
   2017-07-04 09:13:11 +08:00
哇,好酷的工作。
GeekCat
    97
GeekCat  
   2017-07-26 14:15:50 +08:00
忽然觉得被一个设计师在代码上给打败了。。。。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3472 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 36ms UTC 04:43 PVG 12:43 LAX 21:43 JFK 00:43
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86