Клиент - Ошибка сообщения информации об агенте: "DEVICE_GROUP_NOT_FOUND" - PullRequest
0 голосов
/ 11 декабря 2018

Похоже, что IoT-агент не получает меры, в журнале агента указано, что группа устройств не найдена [MONGO-ALARM].Кто-нибудь понимает, что означает эта ошибка или как ее исправить?Журнал агента:

time=2018-12-10T16:48:24.824Z | lvl=DEBUG | corr=n/a | trans=n/a | op=LWM2MLib.COAPRouter | msg=Handling request with method [POST] on url [/rd/1] with messageId [24748]
time=2018-12-10T16:48:24.826Z | lvl=DEBUG | corr=n/a | trans=n/a | op=LWM2MLib.UpdateRegistration | msg=Handling update registration request
time=2018-12-10T16:48:24.826Z | lvl=DEBUG | corr=n/a | trans=n/a | op=LWM2MLib.COAPUtils | msg=Extracting query parameters from request
time=2018-12-10T16:48:24.827Z | lvl=DEBUG | corr=n/a | trans=n/a | op=LWM2MLib.UpdateRegistration | msg=Updating device register with lifetime [undefined] and address [193.136.33.222].
{"op":"IOTAgent.LWM2MHandlers","time":"2018-12-10T16:48:24.827Z","lvl":"DEBUG","msg":"Handling update registration of the device"}
time=2018-12-10T16:48:24.829Z | lvl=DEBUG | corr=54b6621d-65fd-43db-ac9b-fade34e4d947 | trans=54b6621d-65fd-43db-ac9b-fade34e4d947 | op=IoTAgentNGSI.MongoDBGroupRegister | srv=n/a | subsrv=n/a | msg=Looking for group params ["resource","apikey"] with queryObj {} | comp=IoTAgent
time=2018-12-10T16:48:24.835Z | lvl=DEBUG | corr=54b6621d-65fd-43db-ac9b-fade34e4d947 | trans=54b6621d-65fd-43db-ac9b-fade34e4d947 | op=IoTAgentNGSI.MongoDBGroupRegister | srv=n/a | subsrv=n/a | msg=Device group for fields [["resource","apikey"]] not found: [{}] | comp=IoTAgent
**time=2018-12-10T16:48:24.836Z | lvl=ERROR | corr=54b6621d-65fd-43db-ac9b-fade34e4d947 | trans=54b6621d-65fd-43db-ac9b-fade34e4d947 | op=IoTAgentNGSI.Alarms | srv=n/a | subsrv=n/a | msg=Raising [MONGO-ALARM]: {"name":"DEVICE_GROUP_NOT_FOUND","message":"Couldn\t find device group","code":404} | comp=IoTAgent**
time=2018-12-10T16:48:24.836Z | lvl=DEBUG | corr=54b6621d-65fd-43db-ac9b-fade34e4d947 | trans=54b6621d-65fd-43db-ac9b-fade34e4d947 | op=IoTAgentNGSI.MongoDBDeviceRegister | srv=n/a | subsrv=n/a | msg=Looking for device with id [raspiSensorTV]. | comp=IoTAgent
time=2018-12-10T16:48:24.843Z | lvl=ERROR | corr=54b6621d-65fd-43db-ac9b-fade34e4d947 | trans=54b6621d-65fd-43db-ac9b-fade34e4d947 | op=IoTAgentNGSI.Alarms | srv=n/a | subsrv=n/a | msg=Releasing [MONGO-ALARM] | comp=IoTAgent
{"op":"IOTAgent.LWM2MHandlers","time":"2018-12-10T16:48:24.843Z","lvl":"DEBUG","msg":"Preregistered device found."}
time=2018-12-10T16:48:24.844Z | lvl=DEBUG | corr=n/a | trans=n/a | op=LWM2MLib.UpdateRegistration | msg=Update registration request ended successfully
{"time":"2018-12-10T16:48:24.894Z","lvl":"DEBUG","msg":"Observers created successfully."}

Приведенный выше журнал появляется каждый раз, когда устройство сообщает об отправке меры, но мой запрос для подготовленных устройств возвращает пустой список:

curl -X GET \
  'http://localhost:4041/iot/devices' \
  -H 'fiware-service: smartGondor' \
  -H 'fiware-servicepath: /gardens'

{"count":0,"devices":[]}

Любая идея, пожалуйста?

1 Ответ

0 голосов
/ 21 декабря 2018

Ваш запрос показывает, что ни одно устройство еще не было успешно подготовлено.

Вероятно, вы либо не предоставили группу услуг для своего агента IoT, либо не подготовили само устройство.Если измерение получено до предоставления группы услуг, то агент IoT не будет знать, как устройства идентифицируют себя или где сохранить измерения.

Вы можете подготовить группу услуг несколькими способами, но один метод будетбыть следующим:

curl -iX POST \
  'http://iot-agent:4041/iot/services' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: <xxxxxxx>' \
  -H 'fiware-servicepath: <yyyyy>' \
  -d '{
 "services": [
   {
     "apikey":      "<api-key>",
     "cbroker":     "http://orion:1026",
     "entity_type": "Thing",
     ...etc
   }
 ]
}'

После этого любое неизвестное устройство, отвечающее с правильным <api-key>, создаст объект с именем Thing.

Конечно, если вы хотите быть более конкретным, вы можете подготовить устройство, как показано:

curl -iX POST \
  'http://iot-agent:4041/iot/devices' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: <xxxxxxx>' \
  -H 'fiware-servicepath: <yyyyy>' \
  -d '{
 "devices": [
   {
     "device_id":   "motion001",
     "entity_name": "urn:ngsd-ld:Motion:001",
     "entity_type": "Motion",
     "attributes": [
       { "object_id": "c", "name": "count", "type": "Integer" }
     ],
   }
 ]
}
'

Это гарантирует, что устройство, идентифицирующее как motion001, будет сохранено как Motionсущность и различные отображения будут иметь место.

...