【问题标题】:Smart Home & Report State: what happens if the current known state is not in sync with the reality?智能家居和报告状态:如果当前已知状态与现实不同步会怎样?
【发布时间】:2018-07-20 08:08:35
【问题描述】:

我通过实现SYNCEXECUTEDISCONNECT 操作实现了基本的智能家居服务。在SYNC 操作中,所有设备都将willReportState 设置为false

但是,在https://developers.google.com/actions/smarthome/report-state 上,我了解到我们需要自己报告状态变化。这意味着所有设备都必须将willReportState 设置为true,我假设?

我的主要问题是如果最后报告的状态与现实不同步会发生什么?

例如,假设我们在 5 分钟前报告了某个设备(具有 OnOff 特征)已关闭电源。几秒钟前,客户通过按下开机按钮手动为设备供电。假设 Smart Home Graph 尚未报告或知道这一事实。

如果客户要求 Google 助理:关闭我的设备,现在会发生什么?这个请求会被拒绝吗?也就是说,即使 Graph Home 服务认为设备已经断电,履行服务是否会收到此后端?

另外,如果我们实施报告状态,我们是否还必须实施QUERY 操作?还是两者都需要?

在旁注中,本文档也没有真正解决必须报告状态更改的频率。它是否记录在其他地方?

【问题讨论】:

  • 我为这个问题添加了价值 100 声望点的赏金!
  • 如果您的服务不支持,为什么要使用报告状态?如果您不能支持报告状态,您可以简单地将willReportState 设置为false。如您发布的链接中所述,您的服务将不符合视觉助手的条件。如果你将willReportState设置为false,每次请求动作时,都会执行动作,每次请求状态时,都会执行查询
  • @pincopallino 您的推荐描述了所需的流程。但是文档说报告状态实现是公开启动智能家居代理的要求(请参阅有问题的链接),所以我想知道这到底意味着什么。不幸的是,我将其解释为必须实施报告状态。如果这是真的,我对此要求有一些问题或疑虑。
  • 我认为(我希望有人可以确认)他们的意思是公开发布比以前更直观的新 Google 助理。查看他们在上次 IO 中展示的内容,例如 this article,其中展示了与智能设备交互的新方式(例如 thermostat

标签: actions-on-google google-smart-home


【解决方案1】:

是的,您需要支持 ReportState 并返回 willReportState: true 对于具有 traits 状态的设备。有关 trait 需要报告的状态,请参阅 trait 文档。

关于您的主要问题,您需要能够报告 OnOff 特征的变化(例如用户打开设备),包括从其他表面(例如硬件开关或任何其他智能家居平台)触发的状态变化.如果命令是状态相关的,则当用户尝试执行命令时,未能报告最新状态可能会导致错误。在此示例中,尝试关闭灯会起作用(因为开/关不依赖于状态),但任何其他依赖于状态的命令(例如调光或变亮)可能会失败。

您仍然需要实施 QUERY,因为 Google 可能随时查询您的履行网址,而不是使用报告的状态。

最后,关于频率,您需要在状态发生变化时立即报告状态。如果有一系列快速的状态变化导致终端状态,例如调节调光开关直到达到所需的亮度,您可以等到达到终端状态。

【讨论】:

  • 谢谢。关于主要问题,特征文档中究竟在哪里说明了所讨论的特征需要报告回来?我无法找到该信息。尽管您提到打开/关闭设备不依赖于状态,但这并不明显。我在文档中找不到?例如,可以实现仅在状态为关闭时才将请求传播到设备的 on 命令(反之亦然)?
  • 每个特征文档都有一个部分列出与特征相关的状态。无论执行是否依赖于状态,都需要报告特征中的每个状态。在开/关示例中,很明显它不依赖于状态,因为可以在不检查状态的情况下执行以下操作,例如关闭已经关闭的灯。但是,如果不检查设备的当前状态,则根本无法执行某些操作(例如亮灯),否则亮灯可能会导致实际变暗甚至打开灯(如果它们已关闭)。
  • 再一次,合作伙伴需要报告支持的特征的所有状态,并且不应该担心操作是否依赖于状态。这是 Google 助理会弄清楚并决定使用报告的数据或在必要时查询您的后端的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-19
  • 2021-09-05
  • 2021-03-28
  • 2019-09-30
  • 2012-08-06
相关资源
最近更新 更多