【问题标题】:Device connected, but 'IBMIoT: Error: Connection refused: Not authorized' message keeps popping up设备已连接,但“IBMIoT:错误:连接被拒绝:未授权”消息不断弹出
【发布时间】:2016-06-09 16:52:45
【问题描述】:

我正在 IBM Bluemix 中试验 IoT 服务,参加 a running MOOC at Coursera。我已经设置了我的试用帐户并成功注册了一些设备。我正在使用 Bluemix 中的以下简单 Node-RED 流测试 Bluemix 和我的 Raspberry Pi 之间的连接:

Node-RED flow @ Bluemix

其中normal和alert是各自字符串的简单注入节点,format message节点同样简单(返回msg,其中msg.payload = {'a' : {'indicator' : msg.payload}};,IBM IoT节点如下:

senseHAT 设备已注册并成功连接到 Bluemix,从 Watson IoT Platform 仪表板可以看出:

在 Raspberry 方面,我设置了以下简单流程来捕获 Bluemix 中发出的“命令”(normal 和 alert):

Node-RED flow @ Raspberry Pi

all commands 节点如下:

现在,虽然“命令”normal 和 alert 从 Bluemix 传递到我的 Raspberry,但我不断收到主题错误消息,如下所示(注意时间戳):

并且在 Node-RED 控制台中记录了类似的错误消息(每分钟一次):

Connection Error :: Error: Connection refused: Not authorized
9 Jun 19:41:19 - [error] IBMIoT: Error: Connection refused: Not authorized
Iotfclient is offline. Retrying connection
Connection was closed.

我想知道怎么可能,一方面让“命令”通过,另一方面每分钟收到一条错误消息,声称我没有连接,因为我的设备未经授权。

有什么想法吗?

附注(以及可能有用的附加信息):

  1. 在 Watson IoT Platform 仪表板中按“刷新”,senseHAT 设备似乎已断开连接;刷新整个页面(即从浏览器中),它再次显示为已连接
  2. 无论我尝试了什么,我都无法连接上面显示的其他两个设备(b827eb0a0ee8 和 b827eb5f5bbd) - 我什至尝试在 Bluemix 中删除并重新注册它们...

【问题讨论】:

  • 补充说明:1. 这是一个已知问题,已在计划 2 中修复。b827eb0a0ee8 是一个设备,但您在尝试连接时使用的是网关客户端 ID (g:e7u2kv:raspberry:b827eb0a0ee8 应为 d:e7u2kv:raspberry:b827eb0a0ee8,同样,b827eb5f5bbd 是网关,但您使用的是设备客户端 ID (d:e7u2kv :raspberryGW:b827eb5f5bbd 应该是 g:e7u2kv:raspberryGW:b827eb5f5bbd)

标签: raspberry-pi ibm-cloud node-red watson-iot


【解决方案1】:

根据我之前的评论,这看起来可能是网关和设备的混合。从日志来看,您似乎更改了网关和设备之间的设备 ID 类型,并且在某些情况下,ID 为 b827eb0a0ee8 的设备已作为网关连接(在屏幕截图中仅显示为设备),随后断开连接,因为它会尝试未经授权的事情(可能会尝试连接未注册的设备;即客户端 ID 混淆问题)。

设备的自动注册暂时被禁用,因此如果设备不存在(因为客户端 ID 错误),则网关设备将断开连接。

【讨论】:

    【解决方案2】:

    我接受 Paul 的回答是正确的,因为它帮助我弄清楚发生了什么,但它相当神秘。以下是正在发生的事情以及补救措施。

    如果(甚至不小心)您尝试错误地将设备连接为网关(反之亦然),整个事情就会变得一团糟...:

    1. 您无法重新连接设备/网关,即使您返回并更正凭据(即您的设备/网关注定失败...)
    2. 一旦发生这样的事情(事故...),所有您的其他注册设备,虽然它们可以成功连接到 Bluemix,但请给出我在上面的问题中描述的错误消息 (包括 Node-RED 控制台中的状态,永远报告Connection was closed。
    3. 重新启动 Bluemix 应用程序无效

    因此,一旦由于某种原因发生此类错误/事故,补救措施是停止并重新启动您的本地 Node-RED 服务(即在我的情况下,在我的 Raspberry Pi 中运行的服务) )。

    我希望这有助于平台的未来改进 - 这肯定是一种意外行为。

    【讨论】:

    • 听起来问题可能是 Node Red 中的 IoT 节点没有正确更新固定凭据,需要重新启动才能更新配置?
    • 听起来很合理 - 但同样,为什么其他设备会出现这种行为??
    【解决方案3】:

    我也有同样的行为。只是重新启动本地 Node-RED 并没有帮助。重启后,我删除了 wiotp-credentials 节点,重新创建了它,部署了流程,最后我的网关连接上了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-25
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      • 1970-01-01
      相关资源
      最近更新 更多