Google cloud firestore HomeGraph查询响应与云服务[FireStore]-谷歌智能家居的查询响应不匹配

Google cloud firestore HomeGraph查询响应与云服务[FireStore]-谷歌智能家居的查询响应不匹配,google-cloud-firestore,actions-on-google,google-smart-home,Google Cloud Firestore,Actions On Google,Google Smart Home,我是智能家居世界的新手,我正在尝试通过谷歌应用引擎和Firestore为我的云服务实施智能家居解决方案。我已经成功地集成了我的设备和智能家居解决方案,并能够使用Google assistant和Google home更新设备状态。经过大量阅读,Get HomeGraph ReportState也通过REST实现,REST在执行期间以及设备状态在Google home之外发生变化时执行(用户更改风扇的风扇速度) 现在的问题是,当执行API时,Firestore数据库由API更新,homegraph

我是智能家居世界的新手,我正在尝试通过谷歌应用引擎和Firestore为我的云服务实施智能家居解决方案。我已经成功地集成了我的设备和智能家居解决方案,并能够使用Google assistant和Google home更新设备状态。经过大量阅读,Get HomeGraph ReportState也通过REST实现,REST在执行期间以及设备状态在Google home之外发生变化时执行(用户更改风扇的风扇速度)

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


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

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


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

感谢您的回复。我倾向于你提到的第一种方式。我希望Home Graph和智能家居应用程序云服务之间会有一个自动同步过程,因为任何物理状态的更改都会更新到Home Graph,但智能家居应用程序是不经意的。唯一需要注意的是,我需要创建一个云服务级别的端点,并从我的终端执行一个“执行”操作,而不是由Google助手来执行。但是,如果HomeGraph不打算更新我的云服务,那么更新HomeGraph有什么意义呢。当被问及设备的状态时,Google assistant仍然会对我的智能家居云服务执行“查询”意图,并返回过时的数据。我还不如在状态改变时更新我的云服务,而不是HomeGraph。这里有一点前瞻性。我们正在努力将服务迁移到信任HomeGraph数据,以在可能的情况下替代发送额外的查询意图。这还没有完全实现,但如果您让HomeGraph保持最新,将减少服务的意向流量。这是有意义的,因为到目前为止,如果我们不更新HomeGraph,将不会有太大影响,但从未来的角度来看,当HomeGraph处理其公平份额的查询意向时,这可能会减轻服务的流量。谢谢你的澄清