IBM Bluemix:已连接设备,但“IBMIoT:错误:拒绝连接:未授权”消息不断弹出

时间:2016-06-09 16:52:45

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

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

Node-RED flow @ Bluemixenter image description here

其中normalalert是相应字符串的简单注入节点,format message节点同样简单(返回msg,其中msg.payload = {'a' : {'indicator' : msg.payload}};,以及IBM IoT节点如下:

enter image description here

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

enter image description here

在Raspberry方面,我设置了以下简单流程来捕捉Bluemix中发布的'命令'(normalalert):

Node-RED flow @ Raspberry Pienter image description here

all commands节点如下:

enter image description here

现在,虽然'命令'normalalert从Bluemix传递到我的Raspberry,但我继续收到主题错误消息,如下所示(注意时间戳):

enter image description here

并在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. 无论我尝试过什么,我都无法连接上面显示的其他两个设备(b827eb0a0ee8b827eb5f5bbd) - 我甚至尝试在Bluemix中重新删除并重新注册它们......

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

我接受保罗的答案是正确的,因为它帮助我弄清楚发生了什么,但它相当神秘。这是究竟发生了什么,以及补救措施。

如果(甚至意外)你试图错误地将设备连接为网关(反之亦然),整个事情就搞砸了......:

  1. 您无法重新连接设备/网关,即使您返回并更正凭据(即您的设备/网关注定失败......)
  2. 一旦发生了这样的事情(意外......),全部您的其他注册设备,虽然它们可以成功连接到Bluemix,但请提供我在上面的问题中描述的错误消息(包括Node-RED控制台中的状态,永远报告Connection was closed
  3. 重启您的Bluemix应用程序无效
  4. 所以,一旦出现这样的错误/事故,无论出于何种原因,补救就是停止并重新启动您的本地Node-RED服务(就我的情况而言,是在我的Raspberry Pi中运行的服务) )。

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

答案 2 :(得分:0)

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