Официального руководства по подключению JSON IoT Agent к устройству через MQTT не существует, но очень похоже на Ultralight IoT Agent
IoT Devices.либо:
- датчики - считывание измерений из реального мира
- приводы - изменение состояния мира
- или оба
Ваша проблема здесь в том, что вы не можете заставить Орион напрямую обновлять атрибут / состояние датчика .Атрибуты объекта в Context Broker представляют входящее состояние датчика - то есть измерения от этого датчика .
Например, для датчика , считывающего состояниеклапана это может быть "open: "true"
Чтобы обновить привод , вам нужно будет отправить команду , а не изменить значение.
Вы должны настроить команду при подготовке устройства (предполагается, что у вас уже есть услуга):
curl -iX POST \
'http://localhost:4041/iot/devices' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"devices": [
{
"device_id": "bell001",
"entity_name": "urn:ngsi-ld:Bell:001",
"entity_type": "Bell",
"protocol": "PDI-IoTA-UltraLight",
"transport": "MQTT",
"commands": [
{ "name": "ring", "type": "command" }
],
"static_attributes": [
{"name":"refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:001"}
]
}
]
}
'
Затем вы можете отправить команду, чтобы что-то сделать (например, позвонить, открытьклапан и т. д.), изменяя состояние атрибута команды.
curl -iX PATCH \
'http://localhost:1026/v2/entities/urn:ngsi-ld:Bell:001/attrs' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"ring": {
"type" : "command",
"value" : ""
}
}'
В зависимости от того, как вы подготовили устройства, вам также может понадобиться зарегистрировать команду - хотя это может не произойтибыть необходимым.