Сбой NodeRed при попытке подключиться к концентратору IoT Azure - PullRequest
0 голосов
/ 16 мая 2018

Я попытался развернуть очень простой поток красного узла для отправки сообщения с помощью MQTT в Azure. К сожалению, каждый раз он вылетает на красный узел.

Я использую NodeRed на Raspberry Pi 3:

16 May 11:29:19 - [info] Node-RED version: v0.18.4
16 May 11:29:19 - [info] Node.js  version: v8.11.1
16 May 11:29:19 - [info] Linux 4.14.34-v7+ arm LE

Пробовал обе эти библиотеки узлов:

https://github.com/Azure/azure-iot-sdk-node/tree/master/device/node-red https://github.com/rasavant-ms/node-red-contrib-azure/tree/master/iot-hub

Узел Red Log:

   Connection string :HostName=learning-hub.azure-devices.net;DeviceId=undefined;SharedAccessKey=undefined
16 May 11:16:52 - [error] [azureiothub:Azure IoT Hub] Could not connect: Connection refused: Not authorized
16 May 11:16:52 - [info] [azureiothub:Azure IoT Hub] Connected to Azure IoT Hub.
16 May 11:16:52 - [red] Uncaught Exception:
16 May 11:16:52 - TypeError: Cannot read property 'on' of undefined
nodered.service: Main process exited, code=exited, status=1/FAILURE
nodered.service: Unit entered failed state.
nodered.service: Failed with result 'exit-code'.
nodered.service: Service hold-off time over, scheduling restart.
Stopped Node-RED graphical event wiring tool..

Это мой простой поток:

NodeRed Flow

И информация в узлах:

Azure IoT Hub

Azure IoT Hub information

DTU Smart Library Azure

{
  "deviceID": "SensorTag-D2",
  "SAK": "<Primary-Key>",
  "Protocol": "mqtt",
  "Data": {
    "Light": "25"
  }
} 

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

Вам необходимо использовать формат данных ниже на узле ввода.

{
  "deviceId": "testenode1",
  "key": "cw3nniq77BbjpOCDLqb7xEFTU509HeR6Ki1NwR20jj0=",
  "protocol": "amqp",
  "data": "{tem: 25, wind: 20}"
}

, а узел Azure IoT Hub имеет имя хоста.

Я думаю, что предыдущая версия имеет ключ SAK вместо ключа.

0 голосов
/ 17 мая 2018

Судя по информации журнала и узла IoT-концентратора Azure, вы не установили строку подключения IoT-концентратора Azure. Вы можете импортировать поток с помощью копирования и вставить следующее во всплывающее окно:

[{"id":"7b108cb1.4807c8","type":"azureiothub","z":"8d630437.6181a8","name":"Azure IoT Hub","protocol":"amqp","x":379.5,"y":89.22000122070312,"wires":[["b79e7772.b39cc8"]]},{"id":"2269b09.2499b5","type":"inject","z":"8d630437.6181a8","name":"Inject data","topic":"","payload":"Hello from device","payloadType":"str","repeat":"","crontab":"","once":false,"x":209.5,"y":196.01998901367187,"wires":[["7b108cb1.4807c8"]]},{"id":"b79e7772.b39cc8","type":"function","z":"8d630437.6181a8","name":"Convert Bytes to String","func":"msg.payload = msg.payload.toString();\nreturn msg;","outputs":1,"noerr":0,"x":614.5,"y":201.57000732421875,"wires":[["a142535d.158f4"]]},{"id":"a142535d.158f4","type":"debug","z":"8d630437.6181a8","name":"","active":true,"console":"false","complete":"false","x":762.5,"y":320.1499938964844,"wires":[]}]

А затем дважды щелкните узел Azure IoT Hub, чтобы отобразить настройку строки подключения. enter image description here

И, пожалуйста, обратите внимание, что, когда вы хотите отправить данные, вы должны установить Payload для внедрения как строковый формат вместо json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...