在thingsboard.yml文件中,有如下配置:
- 默认不活动超时时间/秒 600秒
- 默认状态检查间隔/秒 60秒
- 是否持久化到遥测
state:
# Should be greater then transport.sessions.report_timeout
defaultInactivityTimeoutInSec: "${DEFAULT_INACTIVITY_TIMEOUT:600}"
defaultStateCheckIntervalInSec: "${DEFAULT_STATE_CHECK_INTERVAL:60}"
# Controls whether we store device 'active' flag in attributes (default) or telemetry.
# If you device to change this parameter, you should re-create the device info view as one of the following:
# If 'persistToTelemetry' is changed from 'false' to 'true': 'CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_ts_view;'
# If 'persistToTelemetry' is changed from 'true' to 'false': 'CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_attribute_view;'
persistToTelemetry: "${PERSIST_STATE_TO_TELEMETRY:false}"
主要控制设备的服务端属性active;默认的十分钟监测离线,导致设备离线十分钟后页面才显示离线,active的值一直为true,我们可以自定义时间,比如修改为60秒。
虽然设置了是1分钟响应,但是在断开设备后,也不是完全在1分钟内,active的值就变为false,设备断开后,还会有一定活动时间,当不活动后1分钟才会修改active的值,实测在3-4分钟左右会自动更新状态。
active = 当前时间 < (最后活动时间 + 不活动超时时间)