智能家居 google 操作无响应且设备始终处于离线状态

Smart home google action not responding and device is always offline

我使用 action-on-google 和 nodeJs 创建了一个智能家居动作,它运行良好。当你说打开关闭时,它会向我的服务器发送 MQTT 请求,这意味着 onExecute 函数工作正常但问题是 google 没有通过 OK 响应我的命令它说“抱歉它看起来像你的设备现在不可用”,我还观察到我的设备在 Google 家庭应用程序中始终处于离线状态。是否需要使用 firebase 并从那里获取设备状态?

Firebase 是允许存储设备状态的 Web 服务之一。您可以随意使用其他网络服务。

如果您的设备处于离线状态,可能是因为您的 Google Home 应用尚未收到您设备的状态。 以下是 Google Home App 接收设备数据的两条路径:

  1. Google 服务器将发送一个 action.devices.QUERY 意图并回调您的函数(例如 onQuery)以通过您的实现获取您设备的数据,请参阅action.devices.QUERY。 因此,请在onQuery函数中打印日志,并确保您的函数正常运行。

  2. 您的智能家居操作必须使用 reportStateAndNotification 的 API 来更新您设备在 Home Graph 中的数据,请参阅 Method: devices.reportStateAndNotification

如果 Google Assistant 给你“抱歉,设备现在不可用”,这可能是因为 Google 服务器没有收到来自你的 fulfillment 的正确信息。请按照以上建议重试。

如果您仍然遇到问题,请检查您的 logs 以确定该设备的特定问题。