问题标签 [google-cloud-iot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1624 浏览

android - 如何使用 Android Studio 将数据从 Raspberry pi 发送到 Google Cloud IoT Core?

我正在做 Android Things 项目。

我想向 Google Cloud IoT Core 发布一条字符串消息,但显示了错误。

我正在使用带有 Android Things OS 的 Raspberry Pi 3,并使用 Android Studio 对其进行编程。

错误截图:

在此处输入图像描述

这是整个代码:

AndroidManifest.xml:

IotCoreCommunicator 类

IotCorePasswordGenerator 类

MainActivity 类:

更新:

我按照this documentation和this demo将私钥从“pem”格式转换为“pkcs8”格式,然后错误“Invalid key spec”消失了,但仍然存在“FATAL EXCEPTION”和“java.lang.IllegalArgumentException” : bad base-64" 如下图所示:

[![在此处输入图像描述][4]][4]

它说这些是导致错误的相关代码(在上图中以蓝色显示:

IotCorePasswordGenerator.java:47

IotCorePasswordGenerator.java:34

IotCoreCommunicator.java:135

IotCoreCommunicator.java:101

MainActivity.java:58

更新 2

我删除了语句“-----BEGIN PRIVATE KEY-----”和语句“-----END PRIVATE KEY-----”,错误“bad base 64”消失了,现在还有另一个错误是“管道损坏”,如下图所示,当我重新打开 Android Studio 并重建项目时,这个错误“管道损坏”被删除,当我再次运行项目时它又回来了。

错误(第一张图片)

带有开始和结束语句的私钥(第二张图片)

没有开始和结束语句的私钥(第三张图片)

在此处输入图像描述在此处输入图像描述在此处输入图像描述

0 投票
2 回答
207 浏览

google-cloud-platform - Google IOT 后端多久更新一次设备状态?

我每分钟在以下 URL 上执行一次 GET,以获取我的 IOT 注册表中所有设备的设备状态

获得Device后,我有兴趣确定以下字段是否在当前时间戳的最后一分钟内:

我的设备经常 ping 远程代理,MQTT Keep Alive 时间为 10 秒,所以我假设一分钟内最多有 6 次心跳。

这个想法是我想收集每个设备的可用性和正常运行时间指标以及警报的统计信息。

所有这些都有效,但我怀疑 Google 后端没有足够频繁地更新心跳、事件和状态时间戳,有时会导致上述设置记录我的设备未启动的统计信息,而实际上它们是。

我的问题是:

  • 我的设备心跳时间在设备状态下的更新速度有多快?一分钟太短了吗?

  • 您会推荐一种更好的方法来实现上述目标吗?这意味着什么?

0 投票
2 回答
562 浏览

google-cloud-platform - 使用代理对 mqtt.googleapis.com (Cloud IOT) 的 VPC 私有 Google API 访问

我为 VPC启用了私有 Google API 访问权限,并使用描述的这个HTTP 代理解决方案将我的异地数据中心连接到 Google Cloud 后端。

使用该解决方案,我通过使用 gsutil 在异地网络中移动文件来验证 Google 对象存储 api 的工作。

但是,我无法连接到云 IOT 所需的 mqtt.googleapis.com。

我认为这是因为在 mqtt.googleapis.com 上运行的 MQTT 代理无法通过专用网络访问,除非它也像上述 HTTP 代理解决方案一样被代理。

同时,实际的 gsutil IOT 命令可以正常工作,因为我认为它们是通过 Google HTTP API 运行的。

为了解决这个问题,我看到我们需要以下任何一种,除非有人有不同的方法来做到这一点?

  1. 在私有 VPC 中运行 MQTT 代理代理并将 MQTT 数据包路由到 mqtt.googleapis.com 。在这种情况下,我们可以使用合适的 MQTT 代理代理吗?

  2. 如果我们获得 mqtt 网桥 (mqtt.googleapis.com) 正在运行的一系列公共 IP,那么我们可以简单地为这个用例构建网络路由。这是可用的吗?

0 投票
1 回答
129 浏览

google-cloud-platform - 仅当设备在线时物联网推送通知

我有一个应该能够接收推送通知的 IoT 设备,但我不希望以任何方式保留通知。设备当前在线并收到通知,或者没有,一旦设备再次上线,通知应该会丢失并且不会发送。我知道这不是配置通知的工作方式......还是他们?有没有其他方法可以解决这个问题?基本上它是向设备发送一种命令

0 投票
2 回答
828 浏览

google-app-engine - 物联网设备如何将文件上传到云端?

谷歌云平台上的物联网设备是否有可能以某种方式将文件上传到云端?在这种情况下,它不完全是遥测数据发布。直接访问存储桶可能很有用。要么访问我的基于 AppEngine 的应用程序,但如果我将它上传到我的应用程序(下一步将把文件放入存储桶),我怎么可能对设备进行身份验证以确保发送它的设备对我来说实际上是它声称的设备?

0 投票
1 回答
94 浏览

google-cloud-platform - Google Cloud IOT,通过 API 阻止通信

我想阻止与 Google Cloud IOT 注册表中的设备进行通信。

用于阻止通信的 gcloud 命令:https ://cloud.google.com/iot/docs/gcloud-examples#block_or_allow_communication_from_a_device

Patch API没有明确说明如何使用 API 阻止设备通信

那么这是如何实现的呢?

0 投票
1 回答
771 浏览

config - Google Cloud IoT - 多个配置消息

在我的代码中,我订阅了 3 个不同的主题:

如果我没有订阅 /devices/{}/config 我不会收到任何配置消息,那没关系。但是,如果我在 /devices/{}/config 中订阅了我的每个订阅,我都会收到一条消息。

例子:

在“/devices/{}/config”和“/devices/{}/events”中订阅了 2 条配置消息。

在“/devices/{}/config”和“/devices/{}/state”中订阅了 2 条配置消息。

在“/devices/{}/config”、“/devices/{}/state”和“/devices/{}/events”中订阅了 3 条配置消息。

在“/devices/{}/events”和“/devices/{}/state”中订阅,我收到 0 条配置消息。

这导致 IoT 核心出现错误:mqtt:

无法更新设备“xxxxxxxx”。设备状态每 1s 只能更新一次。

事实上,我想要并且只需要一个配置消息。我究竟做错了什么?

这是我的代码:

0 投票
1 回答
749 浏览

c - 通过 C 中的 MQTT 连接到 Google IoT 核心的问题

我已经从这里设置了示例程序:https ://github.com/GoogleCloudPlatform/cpp-docs-samples/tree/master/iot/mqtt-ciotc

当我尝试运行该示例时,我得到的唯一错误消息是:“连接失败,返回代码 1”

然后我继续尝试 NodeJs 版本https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/master/iot/mqtt_example

使用相同的roots.pem、私钥和公钥,NodeJs 示例完美运行。我可以在 Google 控制台上查看传入的消息。

是否有任何工具可以帮助我调试 C 示例的问题?或者关于问题可能是什么的任何建议?

谢谢

0 投票
1 回答
242 浏览

firebase - Slow function execution from google iot core MQTT modifyCloudToDeviceConfig()

I am using google iot core with google cloud functions. When I try update iot device config remotely with modifyCloudToDeviceConfig() function, I get an update in the device after 5-10 sec.

I run in firestorm cloud function onUpdate(). To execute cloud function it takes less than 100ms, but to finish MQTT request devices.modifyCloudToDeviceConfig() it takes at least 5 sec. But when I use google iot core console to send a command to the device via 'Update Config', device will get this update immediately.

What can be the reason of slow modifyCloudToDeviceConfig() function execution?

0 投票
1 回答
55 浏览

google-cloud-platform - Google Cloud IoT 频繁从云功能向设备发送配置更新时,几乎没有丢失配置更新消息

我按照此处的示例使用配置更新和云功能在移动应用程序和 esp32 设备之间进行通信,但是当我经常发送配置更新消息时,其中一些没有发送;说在 5 条中只有 3 条配置更新消息正在发送,我有两个问题:

1)我们可以多久发送一次配置更新以避免丢失一些更新。
2)云功能和物联网设备之间是否有任何替代方式进行通信。