Как правильно создать подписку Mosquitto с устройством и IoTAgent-UL? - PullRequest
1 голос
/ 29 мая 2019

В настоящее время я разрабатываю сеть на основе Fiware, в которой у меня есть устройства, которые отправляют отчеты по HTTP и JSON через MQTT и работают нормально.Сеть увеличилась, и теперь мне нужно подключить некоторые устройства, которые используют протокол UltraLight.При этом я столкнулся с некоторыми проблемами.

Я следовал (насколько мне известно) официальной документации, предоставленной Фондом FIWARE на разных сайтах (официальное репозиторий github, readthedocs и т. Д.).Я попытался установить новый агент на той же машине, что и агент JSON, и он не сработал - больше об этом позже.Чтобы исключить любые конфликты, я использовал другую виртуальную машину, в которой - на этот раз Docker - я развернул новый экземпляр Orion CB, Mosquitto CB, mongo и агента;новый полный стек Fiware, в основном.

После того, как все было развернуто, я создал новую группу сервисов на агенте через API остальных (POST / iot / devices), дал ему ключ API и адрес CB,На этом шаге я оставил поле ресурса пустым, потому что я действительно не знаю, какую роль оно играет во всей системе.Ответ был 201, как и ожидалось.Следующим шагом было предоставление устройства, которое я сделал посредством POSTing для агента / iot / devices с требуемыми атрибутами и ключом API, упомянутым в предыдущем абзаце.Еще раз, ответ был 201.

Проблема возникает, когда я пытаюсь опубликовать новое измерение, используя mosquitto_pub.Команда работает без сбоев, но сущность в Орионе не обновляется.Доступ к базе данных Orions (Монго) Я могу проверить, что объект был успешно создан, но у него есть пустое значение.Более того, проверка журналов дает следующее:

mosquitto    | 1559157902: New connection from 10.150.150.173 on port 1883.
mosquitto    | 1559157902: New client connected from 10.150.150.173 as mosqpub|28750-mqtt (p1, c1, k60).
fiware-iot-agent | time=2019-05-29T19:25:02.374Z | lvl=DEBUG | corr=2c8aa6e3-faab-4166-9e20-0b362c165939 | trans=2c8aa6e3-faab-4166-9e20-0b362c165939 | op=IoTAgentNGSI.MongoDBGroupRegister arams ["resource","apikey"] with queryObj {"resource":"/iot/d","apikey":"apikeymia"} | comp=IoTAgent
fiware-iot-agent | time=2019-05-29T19:25:02.381Z | lvl=DEBUG | corr=2c8aa6e3-faab-4166-9e20-0b362c165939 | trans=2c8aa6e3-faab-4166-9e20-0b362c165939 | op=IoTAgentNGSI.MongoDBGroupRegister elds [["resource","apikey"]] not found: [{"resource":"/iot/d","apikey":"apikeymia"}] | comp=IoTAgent
fiware-iot-agent | time=2019-05-29T19:25:02.382Z | lvl=ERROR | corr=2c8aa6e3-faab-4166-9e20-0b362c165939 | trans=2c8aa6e3-faab-4166-9e20-0b362c165939 | op=IOTAUL.Common.Binding | srv=n/a | essing device measures [/apikeymia/motion003/attrs] | comp=IoTAgent
mosquitto    | 1559157902: Client mosqpub|28750-mqtt disconnected.

после каждой попытки публикации нового измерения.

Любая помощь приветствуется

1 Ответ

0 голосов
/ 30 мая 2019

На этом шаге я оставил поле ресурса пустым, потому что я действительно не знаю, какую роль оно играет во всей системе

Просмотр журналов:

[...] queryObj {"resource":"/iot/d","apikey":"apikeymia"} | comp=IoTAgent
[...] not found: [{"resource":"/iot/d","apikey":"apikeymia"}] | comp=IoTAgent

Я бы предложил использовать "/iot/d" вместо пустого для поля resource.Может быть, это решит проблему.

...