『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: XCray

[技术探讨] HA 0.110版,控制米家网关警戒的最佳方案,我曾经建议过的

[复制链接]

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-5-31 20:38:30 | 显示全部楼层
本帖最后由 XCray 于 2020-5-31 20:46 编辑

看本质。

那个switch,用的还是python-miio,现在python-miio的作者都在新版本里加入了网关警戒状态的控制,我们还真的有必要再绕一个弯子、用开关来模拟警戒状态?

嗯,关于延迟,我记得之前有人在原理上说的很清楚了,三方程序只能通过miio接口设置和查询米家网关的警戒状态,这个“设置和查询”是没有延迟的,也就是说,指令发出去、结果很快就可以拿到。


但是,米家网关没有提供任何一种接口,在其警戒状态改变时主动在局域网发出通知,三方程序只能主动查询,而查询的频率,和时延就直接相关了。
唯一的例外,是网关会主动通知云端/米家app,当然是加密的,貌似还没有人解开(可能解开的结果一公布出来,官方就会改掉)。
做个简单的测试就明白了:

- 在米家app里改变网关警戒状态,hass里的状态需要多久才会更新?——当然,这个时延其实没啥影响,因为玩hass都用不到这个方向的同步。

- 在hass里改变状态,网关和米家app里的状态需要多久会更新?——没有任何时延(就是数据包传输和处理器耗时),这个才是大家真正用到的。
回复

使用道具 举报

0

主题

23

帖子

240

积分

中级会员

Rank: 3Rank: 3

积分
240
金钱
217
HASS币
0
发表于 2020-6-1 11:50:54 | 显示全部楼层
110.4版本,安装syssi的第三方库没有显示,添加后是未知的C:\Users\asus\Desktop,求教各位大神怎么弄的,刚接触hassio,网上也没查到
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-6-1 14:28:59 | 显示全部楼层
823202848 发表于 2020-6-1 11:50
110.4版本,安装syssi的第三方库没有显示,添加后是未知的,求教各位大神怎么弄的,刚接触hassio,网上也没 ...

愣是没看懂你问的到底是什么问题。。。。。。
回复

使用道具 举报

18

主题

352

帖子

2237

积分

金牌会员

North丶

Rank: 6Rank: 6

积分
2237
金钱
1880
HASS币
0

活跃会员卓越贡献

发表于 2020-6-1 19:26:42 | 显示全部楼层
本帖最后由 raspberry0316 于 2020-6-1 19:36 编辑
XCray 发表于 2020-5-31 20:38
看本质。

那个switch,用的还是python-miio,现在python-miio的作者都在新版本里加入了网关警戒状态的控制 ...

米家app警戒状态和hass的状态双向同步需要多久。这个真没测试过,毕竟手头没有毫秒级别的计时器。米家app 网关 ha 三方通讯:网关警戒的开关和hass的状态改变是同时进行的,包括你双击网关按键ha状态更新。延迟只存在于米家app和网关通讯时间,这个和ha没有关系。所以结论是使用该插件 ha和网关的双向通讯要比米家app快的多。
关于为什么去控制警戒:配合ha的自动化 离家场景激活可以让网关警戒 这样减少人操作(或者说忘记操作)至于真的触发了报警 用米家app接收推送和ha推送 只要能推送有什么区别?
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-6-2 07:51:43 | 显示全部楼层
本帖最后由 XCray 于 2020-6-2 07:58 编辑
raspberry0316 发表于 2020-6-1 19:26
米家app警戒状态和hass的状态双向同步需要多久。这个真没测试过,毕竟手头没有毫秒级别的计时器。米家app  ...

我们是在争论什么吗?

先说hass控制米家网关警戒的意义,毫无疑问,我也认为这个能力非常重要,所以两年前我就开始寻找比较合理的实现方式,并于python-miio的作者进行了讨论,也曾经自己写程序验证。

延迟的事情,也很清楚啊!
- hass控制网关警戒,二者之间没有延迟
- 米家app控制网关警戒,这二者之间也没有延迟
- 网关警戒被hass或A手机上的米家app控制,状态改变后,B手机上米家app里的状态更新,有延迟,但不大
- 网关警戒被手机上的米家app控制,状态改变后,hass中的状态更新,延迟较大(几秒到二十几秒)
延迟的原因,是网关警戒状态变化时,没有提供对外的通知(只有到云端的通知,加密的,除米家官方外都无法使用)。三方程序包括hass等只能通过miio接口主动查询——而主动查询,往往不能频率太高,了解编程的盆友不难理解这一点。
~~~~~~~~~~~~~~~~~~
附:当时我用自己写的一个小程序控制网关警戒状态时与网关的交互消息:
查看警戒模式状态:{"id":65005,"method":"get_arming","params":[]}

{"result":["off"],"id":65005}

查看警戒模式延时:{"id":65006,"method":"get_arm_wait_time","params":[]}

{"result":[5],"id":65006}

设置警戒模式,开:{"id":65013,"method":"set_arming","params":["on"]}

{"result":["ok"],"id":65013}

设置警戒模式,关:{"id":65014,"method":"set_arming","params":["off"]}

{"result":["ok"],"id":65014}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我的观点是:

在python-miio没有提供控制网关警戒这个能力之前,模拟一个开关来代表网关的警戒状态,不失为一种“巧妙”的解决办法。但是在python-miio已经提供这个能力、hass具备了原生的支持能力的情况下,再采用这种绕弯子的方法就没啥必要了。
至于你说的发生报警时,米家推送和HA推送有啥区别的问题,
- 如果互联网中断,ha可以发短信,米家不可以
- ha可以监控到网关离线或重要的传感器离线并推送告警,米家不可以
- 如果停电,ha可以获取UPS提供的事件通知,并推送告警,米家不可以
- 米家的云端服务器经常性瘫痪,导致告警事件推送失败或延迟,ha的推送则靠谱的多
回复

使用道具 举报

3

主题

91

帖子

1172

积分

金牌会员

Rank: 6Rank: 6

积分
1172
金钱
1081
HASS币
0
发表于 2020-6-3 08:40:07 | 显示全部楼层


目前使用了官方的网关警戒功能,设置了家中无人自动打开警戒,检测到有人回家自动关闭警戒。实际使用中可能会有一点小问题:自动打开警戒的逻辑是person均不在家,通过路由器追踪以及动态传感器的合作很容易完成。但是在回家自动关闭警戒上有点小问题,手机回家自动连上路由器需要一小段时间(其实时间已经是很少了),但动态传感器只要检测到有人活动就会触发警报,这其中没有一个缓冲时间,所以理论上回家后就不能出现在动态传感器报警范围之内,需要在玄关位置刻意停留一段时间并且手机wlan处于打开状态。我原先的设想是:一旦人回家,开门,系统先挂起比如1-2分钟,通过TTS语音报告一个警戒语句诸如“请及时验明身份”之类的。在这期间,网关警戒不发生警报,如果在规定时间内连接路由器身份无误,那么自动解除警报,如果规定时间内没有验明身份,自动发出警报。不知道楼主有没有碰到这样的问题或者有没有什么好的建议可以实施这个想法。
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-6-3 12:21:13 | 显示全部楼层
本帖最后由 XCray 于 2020-6-3 12:22 编辑
pauldw1230 发表于 2020-6-3 08:40
目前使用了官方的网关警戒功能,设置了家中无人自动打开警戒,检测到有人回家自动关闭警戒。实际使用中可 ...

你这个是检测回家的及时性问题,曾经也是我很头疼的事儿。

推荐解决方案:
1、智能门锁,正常开锁就解除警戒。注意必须是本地联动才可以保证时效;
2、蓝牙,在门口放个人体传感器,有人就触发蓝牙探测、探测到任一家人的手机(也可以是蓝牙beacon/手表手环等任意蓝牙器件)就解除警戒(撤防)

两种方案,具体都可以参考我其他的帖子。

顺便说下,我现在的配置,所有家人离家自动布防/任一家人回家自动撤防 运行非常完美
回复

使用道具 举报

3

主题

91

帖子

1172

积分

金牌会员

Rank: 6Rank: 6

积分
1172
金钱
1081
HASS币
0
发表于 2020-6-3 15:32:54 | 显示全部楼层
XCray 发表于 2020-6-3 12:21
你这个是检测回家的及时性问题,曾经也是我很头疼的事儿。

推荐解决方案:

智能门锁短期内不会更换了,之前已经换过三星的锁了,再换成本就太大了,家里也不会同意了。蓝牙的这个可以考虑,我来看看怎么实施。谢谢!
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-6-3 16:29:26 | 显示全部楼层
pauldw1230 发表于 2020-6-3 15:32
智能门锁短期内不会更换了,之前已经换过三星的锁了,再换成本就太大了,家里也不会同意了。蓝牙的这个可 ...

蓝牙,就是我在另一个帖子里说的 monitor 那个,确实很好用——其实是最好用,我反正是没找到更好用的方案。

三星锁?如果支持联网的话,说不定也可以集成到 HA 呢。
回复

使用道具 举报

18

主题

352

帖子

2237

积分

金牌会员

North丶

Rank: 6Rank: 6

积分
2237
金钱
1880
HASS币
0

活跃会员卓越贡献

发表于 2020-6-4 13:15:35 | 显示全部楼层
pauldw1230 发表于 2020-6-3 08:40
目前使用了官方的网关警戒功能,设置了家中无人自动打开警戒,检测到有人回家自动关闭警戒。实际使用中可 ...

最好的办法就是换一个信号强一点的路由器 你在楼道里就已经连接上wifi 问题就解决了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-28 09:33 , Processed in 0.084667 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表