【问题标题】:Mismatch between HomeGraph Query Response and Query Response from Cloud service[FireStore] - Google Smart HomeHomeGraph 查询响应与来自云服务的查询响应不匹配[FireStore] - Google Smart Home
【发布时间】:2020-08-25 06:27:32
【问题描述】:

我是智能家居领域的新手,我正在尝试使用 Google App Engine 和 Firestore 为我的云服务实施智能家居解决方案。我已成功集成我的设备和智能家居解决方案,并且能够使用 Google 助手和 Google Home 更新设备状态。经过大量阅读后,HomeGraph ReportState 也通过 REST 实现,在 Execute 期间以及设备状态在 Google Home 之外发生变化时执行(用户更改风扇的风扇速度)。

现在的问题是,在执行 Execute API 时,Firestore 数据库由 API 更新并调用 homegraph 报告状态,因此它们之间的数据是同步的(两个查询响应都匹配)。但是,当在 Smarthome 系统外部调用主图报告状态以更新用户所做的更改时,数据不同步。 Home Graph 具有最新更新,但 Firestore 具有由 Google 助理完成的最后更新状态。

如何同步 HomeGraph 和智能家居云服务,HomeGraph 有准确的数据。

【问题讨论】:

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


    【解决方案1】:

    有两种方法可以确保数据在 Home Graph 和您的服务之间同步。一种方法是修改非 Google Home 状态更改,以便它们仍然通过您的服务。这可以是您调用的新中间端点,它将在更新主图之前更新您的数据库,确保您有状态更改。

    或者,您可以使用Home Graph Query API 调用,它会根据 Home Graph 从您的服务返回设备状态。您需要手动调用它,因为无法订阅更改。

    【讨论】:

    • 感谢您的回复。我倾向于你提到的第一种方式。我希望 Home Graph 和智能家居应用程序云服务之间有一个自动同步过程,因为任何物理状态更改都会更新到 Home Graph,但智能家居应用程序却没有注意到。唯一需要注意的是,我需要创建一个到云服务级别的端点并从我的端执行“执行”操作,而不是由 Google 助手执行。
    • 但仍然不清楚更新 HomeGraph 有什么意义,如果它不会更新我的云服务。当谷歌助手询问设备状态时,它仍然对我的智能家居云服务执行“QUERY” Intent 并返回过时的数据。我不妨根据状态变化而不是 HomeGraph 来更新我的云服务。
    • 这里有点前瞻性。我们正在努力迁移服务以信任 HomeGraph 数据,而不是在可能的情况下发送额外的 QUERY 意图。这还没有完全实现,但是如果你保持 HomeGraph 是最新的,将会减少你的服务的意图流量。
    • 这是有道理的,因为到目前为止,如果我们不更新 HomeGraph 不会产生太大影响,但从未来的角度来看,当 HomeGraph 将处理其公平份额的 QUERY 意图时,这可能会减轻服务。感谢您的澄清
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 2014-06-22
    • 2018-08-18
    • 2020-08-27
    相关资源
    最近更新 更多