fiware-orionfiware-cygnus

Cygnus-Orion subscription endpoint


What is the best endpoint to subscribe Cygnus to Orion CB for subscription change: /v1/subscribeContext or /v2/subscriptions please?

Tried this, no response:

$(curl localhost:1026/v1/subscribeContext -s -S --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Fiware-Service: smartGondor' --header 'Fiware-ServicePath: /gardens' -d @- | python -mjson.tool) <<EOF
{
    "entities": [
        {
            "type": "Device",
            "isPattern": "false",
            "id": "raspiSensorTV"
        }
    ],
    "attributes": [
        "Temperature Sensor",
        "TimeInstant"
    ],
    "reference": "http://localhost:5050/notify",
    "duration": "P1M",
    "notifyConditions": [
        {
            "type": "ONCHANGE",
            "condValues": [
                "Temperature Sensor"
            ]
        }
    ],
    "throttling": "PT1S"
}
EOF

This seems to work, but not sure if its the best way to go, as no observations are received.

$curl -iX POST \
  'http://localhost:1026/v2/subscriptions' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: smartGondor' \
  -H 'fiware-servicepath: /gardens' \
  -d '{
  "description": "Notify Cygnus of all context changes",
  "subject": {
    "entities": [
    {
        "idPattern": ".*",
      "type": "Device"
    }
    ]
  },
  "notification": {
    "http": {
    "url": "http://cygnus:5050/notify"
    },
    "attrsFormat": "legacy"
  },
  "throttling": 5
}'

Solution

  • At the present moment Cygnus doesn't support NGSIv2 notifications so you need to use the NGSIv1 endpoint. You can find more information in this section of Cygnus documentation and this other.