首页 > 解决方案 > 如何更新 Homebridge 插件的特征值?

问题描述

我有一个用于 Homebridge 的插件,用于操作阴影,即 WindowCovering Services。它基本上模仿了阴影的遥控器。遥控器有 16 个通道,其中一个通道 0 可操作所有阴影。每个灯罩/通道都是动态平台上的附件。随着阴影的移动,我正在更新 CurrentPosition 和 PositionState 特征。现在这似乎工作正常。但是,某些更新似乎从未到达 Homekit。

当多个灯罩/通道同时移动时,这在 Home 应用程序中显示为“正在打开”或“正在关闭”。当 PositionState 更新为 Stopped 时,图标会显示当前的 %age open。但是,某些色调的更新会丢失。

我认为更新调用之间可能需要延迟,因此我实施了一个方案,以防止调用与可配置的延迟紧密结合。这似乎有所改善,但更新仍然丢失,我真的不知道是否需要延迟。

所有 PositionState 更新都通过此代码进行。我已经调试这个问题很长一段时间了,并且确信代码已执行,但我无法弄清楚为什么 Home 应用程序没有看到 Stop。

  updateStateCB() {
    this.service.getCharacteristic(this.platform.Characteristic.PositionState).updateValue(this.positionState);
    this.logTimeCh('Update state:' + this.positionState);
  }

我可能在哪里出错了?通话之间是否需要延迟?Homekit的某个地方有错误吗?

谢谢

标签: node.jshomekit

解决方案


推荐阅读