Я следил за официальной документацией о cygnus и orion. Все общие средства развертывания развернуты правильно, без ошибок в файлах журналов. Но что-то странное случается, Орион никогда не уведомляет Лебедя.Orion не уведомил Cygnus
Чтобы проверить этот механизм, я последовал примеру с автомобилем, указанным в официальной документации.
Моя сущность создание Баш скрипт:
(curl $1:1026/v1/updateContext -s -S --header 'Content-Type: application/json' --header 'Accept: application/json' -d @- | python -mjson.tool) <<EOF
{
"contextElements": [
{
"type": "Car",
"isPattern": "false",
"id": "Car1",
"attributes": [
{
"name": "speed",
"type": "integer",
"value": "75"
},
{
"name": "fuel",
"type": "float",
"value": "12.5"
}
]
}
],
"updateAction": "APPEND"
}
EOF
Моя организация подписки Баш скрипт:
(curl $1:1026/v1/subscribeContext -s -S --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Fiware-Service: vehicles' --header 'Fiware-ServicePath: /4wheels' -d @- | python -mjson.tool) <<EOF
{
"entities": [
{
"type": "Car",
"isPattern": "false",
"id": "Car1"
}
],
"attributes": [
"speed",
"oil_level"
],
"reference": "http://$2:5050/notify",
"duration": "P1M",
"notifyConditions": [
{
"type": "ONCHANGE",
"condValues": [
"speed"
]
}
],
"throttling": "PT1S"
}
EOF
Моя сущность обновление Баш скрипт:
(curl $1:1026/v1/updateContext -s -S --header 'Content-Type: application/json' --header 'Accept: application/json' -d @- | python -mjson.tool) <<EOF
{
"contextElements": [
{
"type": "Car",
"isPattern": "false",
"id": "Car1",
"attributes": [
{
"name": "speed",
"type": "integer",
"value": $2
}
]
}
],
"updateAction": "UPDATE"
}
EOF
Примечание: Orion отвечает все запросы.
После выполнения этих сценариев cygnus должен получать информацию от orion и сохранять его в базе данных, но ничего не происходит. Ни в файле /var/log/cygnus/cygnus.log, ни в файле /var/log/contextBroker/contextBroker.log не сообщается никакой информации об уведомлении о orion.
Примечание: Если я использую скрипт notify.sh, приведенный в официальной документации, Cygnus хорошо работает и сохраняет все данные в базе данных.
Примечание: Я прочитал в других вопросах проблемы с открытыми портами, но они не применимы к моим.
EDIT 1
После подписываюсь Орион, ответ:
{
"subscribeResponse": {
"duration": "P1M",
"subscriptionId": "563e12b4f4d8334d599753e0",
"throttling": "PT1S"
}
}
И когда я обновляю anentity, Орион возвращает:
{
"contextResponses": [
{
"contextElement": {
"attributes": [
{
"name": "speed",
"type": "integer",
"value": ""
}
],
"id": "Car1",
"isPattern": "false",
"type": "Car"
},
"statusCode": {
"code": "200",
"reasonPhrase": "OK"
}
}
]
}
Чтобы получить объект из orion Я использовал следующий сценарий:
(curl $1:1026/v1/queryContext -s -S --header 'Content-Type: application/json' \
--header 'Accept: application/json' -d @- | python -mjson.tool) <<EOF
{
"entities": [
{
"type": "Car",
"isPattern": "false",
"id": "Car1"
}
]
}
EOF
Ответ:
{
"contextResponses": [
{
"contextElement": {
"attributes": [
{
"name": "fuel",
"type": "float",
"value": "12.5"
},
{
"name": "speed",
"type": "integer",
"value": "123"
}
],
"id": "Car1",
"isPattern": "false",
"type": "Car"
},
"statusCode": {
"code": "200",
"reasonPhrase": "OK"
}
}
]
}
Примечание Значение скорости была обновлена с успехом.
Какое значение скорости перед обновлением? Вы можете проверить это с помощью 'GET/v1/contextEntities/Car1/attributes/speed' – fgalan
Обновлено. Орион хорошо работает, но не уведомляет Лебедя. – urb
Какое значение показывает GET для скорости? Какое значение скорости вы используете в запросе на обновление, отправляете ли вы GET? Спасибо! – fgalan