【问题标题】:Google Cloud IOT- Device Configuration via Firebase/cloud functions?Google Cloud IOT- 通过 Firebase/云功能进行设备配置?
【发布时间】:2018-06-30 14:22:03
【问题描述】:

我已经能够使用 mqtt->pubsub->firebase 函数->FCM 从我的 iot 设备成功接收状态和遥测数据到 android 应用程序。我的iot设备也注册了接收config回调,在设备连接时成功接收到当前config mqtt消息。

现在,我希望能够使用我的 android 应用程序启动配置消息以发送运行/停止命令。我原以为我可以通过 android api 调用或从云函数中完成此操作。网络上似乎没有任何示例。

此示例似乎旨在在第 3 方 node.js 服务器上运行,而不是从云函数或 Android 应用程序内部运行:https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/master/iot/manager/manager.js#L865

在云函数中,使用 admin.firestore() 和 admin.messaging() 来调用函数并完成我需要的事情非常容易。然而,IOT API 的工作方式似乎不同。我显然错过了一些东西。

简而言之-如何从 android 或云功能启动 IOT 配置消息?如果我也可以访问其他注册表管理功能,那就太好了。

提前感谢您的帮助。

【问题讨论】:

  • 为什么不能直接从Android调用云端功能?
  • 我可能可以直接调用云函数,但我不知道如何从云函数中调用 IOT API。我对此比较陌生,我可能只是想不通。 IOT 核心的唯一 API 似乎是 REST API。

标签: android node.js firebase google-cloud-functions


【解决方案1】:

Dazza5000 向我介绍了 IOT Core API for Java:

https://developers.google.com/api-client-library/java/apis/cloudiot/v1

这将允许我从 Android 向我的 IOT 设备发送配置数据。我不认为可以从云函数调用此 API。

【讨论】:

    【解决方案2】:

    使用Cloud Functions for Firebase,您只需创建一个HTTPS trigger 即可创建一个可以直接调用的函数。然后,当您拥有在部署后显示的 URL 时,您可以使用设备上可用的任何 HTTP 库调用该 URL。对于 Android 设备,URLConnection 是内置选项。应该有大量的 HTTP 触发器示例(尤其是在 functions-samples 存储库中)和 URLConnection 代码,您可以借用它们来构建它。

    【讨论】:

    • 你知道如何从云函数中调用物联网核心函数吗?
    • 什么是“物联网核心功能”?
    • 特别是在我的情况下,我想向我的 IOT 设备发送“运行”命令。据我了解,发送数据“云到设备”的唯一方法是通过更新设备配置。为了更新设备配置,我需要调用函数 com.google.api.services.cloudiot.v1.model.DeviceConfig。此调用似乎在云功能中不可用。老实说,它在其他方面的限制非常严格,这使得它对于发送命令并不是很理想,但我认为这是向那个方向发送数据的唯一方法(从云端到设备)
    • Cloud Functions 代码在后端类型的服务器上运行,而不是在设备上。
    【解决方案3】:

    您应该能够从 android 应用程序调用云函数,然后将其与 IOT api 集成 - 您也可以让 android 客户端调用其余 api 的 https://cloud.google.com/iot/docs/reference/rest/

    DeviceManager也有JAVA接口:

    https://cloud.google.com/iot/docs/samples/device-manager-samples

    【讨论】:

    • 能否举个例子说明如何从云函数中调用 IOT API?
    • 我不知道怎么做,但看起来这是一个标准的休息请求。我不擅长 javascript/typescript,这是我认为云功能使用的。我是一个 JAVA 人
    • 我也是 node.js/javascript 的新手。你的底部链接是我没见过的。它表明有一个我可以调用的库:com.google.api.services.cloudiot.v1。* 如果我能弄清楚如何从云函数中调用它,我就准备好了。
    • 可以——可以跳过云功能,使用JAVA库与IOT平台交互。
    猜你喜欢
    • 1970-01-01
    • 2022-09-27
    • 2020-03-27
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 2019-06-13
    相关资源
    最近更新 更多