Структура Azure IoTHub DeviceMessage и запрос маршрута - PullRequest
0 голосов
/ 03 июля 2018

Я использовал пример Python из https://docs.microsoft.com/de-de/azure/iot-hub/quickstart-send-telemetry-python для отправки телеметрических данных на IoTHub. Теперь я пытаюсь пересылать только сообщения от устройства «test-device» в хранилище BLOB-объектов через пользовательскую конечную точку и маршрут. Со строкой запроса «true» все сообщения со всех устройств отправляются в хранилище. Однако я не получаю запрос на выбор только сообщений из deviceId "test-device". Я ищу в документации, но не нашел полезного примера ...

Может кто-нибудь помочь мне с запросом? По крайней мере, было бы также полезно отобрать входящие сообщения внутри IoTHub, чтобы получить представление о структуре сообщений IotHub (как это делается в «примере данных» StreamAnalytics).

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Вы можете попытаться использовать $connectionDeviceId = "{your device id}" в запросе маршрута. connectionDeviceId отмечается в сообщениях, связанных с услугами, IoT Hub. Я думаю, что это проще, чем безмолвное предложение. Свойства системы сообщений начинаются с символа «$». Больше языка запросов для маршрутизации сообщений здесь .

0 голосов
/ 03 июля 2018

Очень хорошая запись в блоге о маршрутизации сообщений здесь .

Вы можете, например, направить любые свойства, которые вы добавляете к своим сообщениям, или любое поле внутри тела сообщения (если это JSON в кодировке UTF-8). Не уверен, что вы можете по умолчанию использовать маршрут по deviceId, но вы можете, например, добавить свойство "testmessage": true к вашим сообщениям, а затем иметь правило маршрутизации, соответствующее этому: "testmessage" = true

...