延迟
https://zhuanlan.zhihu.com/p/580567480?
云端执行走的是这样的流程:
信号这样转一圈需要时间的,而且受到网络质量的影响很大。
同时如果外网中断,则所有的自动化全部失效。
当设备的状态发生变化后,会上报到服务器,服务器再推送给APP进行状态呈现,但中间可能会有网络上的延迟或者丢包的情况。网络正常的情况下,从状态变化到APP显示,平均在0.8秒左右,如果网络较差,那么这个时间可能会比较长,如果一段时间后显示的状态仍不正确,可以尝试主动刷新下界面。
延迟通常是指通过米家APP或物理按键等操作设备后,设备在HA中的实体状态要等几秒甚至十几秒后才会更新。
原因分析
xiaomi miot auto 插件造成的延迟
本插件目前主要是通过轮询的方式获取设备状态,通俗的讲就是每隔几十秒去刷新一次状态。在token方式集成时,这个时长是可以直接修改的(添加集成和修改集成选项均可),目前默认是30秒。而通过账号集成时,由于一个集成配置会对应多个设备,因此无法统一配置,需要为每个设备实体添加自定义属性interval_seconds来修改轮询时长:
一般情况下,对于开关、灯、环境传感器等设备,我们推荐使用默认轮询时长即可,过于频繁的请求状态可能会使设备负载过高,且大部分请求是无意义的。
对于人体传感器、门磁、无线开关类设备,它们的状态通常为瞬时状态(即:事件),部分型号支持获取最后一次事件触发的时间,且默认轮询时长为15秒,对于无法获取最后触发事件的设备,即使修改轮询时间到1秒,也可能无法获取正确的状态。因此此类设备通过本插件集成后不太推荐用于触发实时自动化,仅适合作为如几分钟无人移动关灯这类自动化的条件。
如果需要实时更新状态,推荐使用多模网关配合XiaomiGateway3集成。
另外还有一种延迟,比如在HA打开某个实体开关后,几秒内开关回弹到操作前的状态,然而实际上已经操作成功,并在一分钟内实体状态又恢复到实际状态。这种情况通常发生在小米账号(云端)接入的设备,具体原因是操作后指令发送给设备后HA会立即请求新的状态,而这个时候设备还未将新的状态同步到小米云端,导致获取到操作之前的状态,一分钟后HA重新获取到实际的状态。目前本插件针对这种情况已经做了优化(操作后延迟几秒再获取状态),大部分设备已不会出现,如果你的设备有出现,请提交issue或通过自定义属性cloud_delay_update来修改延迟时长:
https://github.com/al-one/hass-xiaomi-miot/issues/100
https://zhuanlan.zhihu.com/p/580567480?
延迟过高是因为云端运行的原因,我满世界在找怎么本地化执行的办法,我知道可以,但是没找到能教我的文章
云端执行走的是这样的流程:
触发设备➡网关➡路由器➡米家服务器➡路由器➡网关➡执行设备,
信号这样转一圈需要时间的,而且受到网络质量的影响很大。
同时如果外网中断,则所有的自动化全部失效。
当设备的状态发生变化后,会上报到服务器,服务器再推送给APP进行状态呈现,但中间可能会有网络上的延迟或者丢包的情况。网络正常的情况下,从状态变化到APP显示,平均在0.8秒左右,如果网络较差,那么这个时间可能会比较长,如果一段时间后显示的状态仍不正确,可以尝试主动刷新下界面。
延迟通常是指通过米家APP或物理按键等操作设备后,设备在HA中的实体状态要等几秒甚至十几秒后才会更新。
原因分析
xiaomi miot auto 插件造成的延迟
本插件目前主要是通过轮询的方式获取设备状态,通俗的讲就是每隔几十秒去刷新一次状态。在token方式集成时,这个时长是可以直接修改的(添加集成和修改集成选项均可),目前默认是30秒。而通过账号集成时,由于一个集成配置会对应多个设备,因此无法统一配置,需要为每个设备实体添加自定义属性interval_seconds来修改轮询时长:
一般情况下,对于开关、灯、环境传感器等设备,我们推荐使用默认轮询时长即可,过于频繁的请求状态可能会使设备负载过高,且大部分请求是无意义的。
对于人体传感器、门磁、无线开关类设备,它们的状态通常为瞬时状态(即:事件),部分型号支持获取最后一次事件触发的时间,且默认轮询时长为15秒,对于无法获取最后触发事件的设备,即使修改轮询时间到1秒,也可能无法获取正确的状态。因此此类设备通过本插件集成后不太推荐用于触发实时自动化,仅适合作为如几分钟无人移动关灯这类自动化的条件。
如果需要实时更新状态,推荐使用多模网关配合XiaomiGateway3集成。
另外还有一种延迟,比如在HA打开某个实体开关后,几秒内开关回弹到操作前的状态,然而实际上已经操作成功,并在一分钟内实体状态又恢复到实际状态。这种情况通常发生在小米账号(云端)接入的设备,具体原因是操作后指令发送给设备后HA会立即请求新的状态,而这个时候设备还未将新的状态同步到小米云端,导致获取到操作之前的状态,一分钟后HA重新获取到实际的状态。目前本插件针对这种情况已经做了优化(操作后延迟几秒再获取状态),大部分设备已不会出现,如果你的设备有出现,请提交issue或通过自定义属性cloud_delay_update来修改延迟时长:
https://github.com/al-one/hass-xiaomi-miot/issues/100
0