Details
-
Type:
Monitor
-
Status: Closed
-
Priority:
Major
-
Resolution: Done
-
Affects Version/s: None
-
Fix Version/s: 2021
-
Component/s: FIWARE-TECH-HELP
-
Labels:
-
HD-Enabler:Orion
Description
Created question in FIWARE Q/A platform on 20-02-2019 at 04:02
Please, ANSWER this question AT https://stackoverflow.com/questions/54778164/fiware-orion-subscription-sending-empty-body
Question:
Fiware orion subscription sending empty body
Description:
My setup:
docker-compose:
version: "3.1"
services:
mongo-db:
image: mongo:3.6
hostname: mongo-db
container_name: db-mongo
expose:
- "27017"
ports: - "27017:27017"
networks: - default
command: --bind_ip_all --smallfiles
volumes: - mongo-db:/data
orion:
image: fiware/orion:2.1.0
hostname: orion
container_name: fiware-orion
depends_on:
- mongo-db
networks: - default
expose: - "1026"
ports: - "1026:1026"
command: -dbhost mongo-db -logLevel DEBUG
logging:
driver: none
healthcheck:
test: curl --fail -s http://localhost:1026/version || exit 1
iot-agent:
image: fiware/iotagent-ul:latest
hostname: iot-agent
container_name: fiware-iot-agent
depends_on:
- mongo-db
networks: - default
expose: - "4041"
- "7896"
ports: - "4041:4041"
- "7896:7896"
logging:
driver: none
environment: - "IOTA_CB_HOST=orion"
- "IOTA_CB_PORT=1026"
- "IOTA_NORTH_PORT=4041"
- "IOTA_REGISTRY_TYPE=mongodb"
- "IOTA_LOG_LEVEL=DEBUG"
- "IOTA_TIMESTAMP=true"
- "IOTA_MONGO_HOST=mongo-db"
- "IOTA_MONGO_PORT=27017"
- "IOTA_MONGO_DB=iotagentul"
- "IOTA_HTTP_PORT=7896"
- "IOTA_PROVIDER_URL=http://iot-agent:4041"
networks:
default:
ipam:
config:
- subnet: 172.18.1.0/24
volumes:
mongo-db: ~
context:
curl -iX POST \
'http://localhost:1026/v2/op/update' \
-H 'Content-Type: application/json' \
-H 'fiware-service: didi' \
-H 'fiware-servicepath: /' \
-d '{
"actionType":"APPEND",
"entities":[
{
"id":"urn:ngsi-ld:Furniture:unit001", "type":"Furniture",
"name":
,
"price":
},
{
"id":"urn:ngsi-ld:Furniture:unit002", "type":"Furniture",
"name":
,
"price":
},
{
"id":"urn:ngsi-ld:DeliverService:unit001", "type":"ServiceProvider",
"name":
,
"address":{
"type":"PostalAddress",
"value":
}
},
{
"id":"urn:ngsi-ld:BottleCounter:001", "type":"BottleCounter",
"name":
,
"numberOfBottles":
}
]
}'
curl -iX POST \
'http://localhost:1026/v2/op/update' \
-H 'Content-Type: application/json' \
-H 'fiware-service: didi' \
-H 'fiware-servicepath: /' \
-d '{
"actionType":"APPEND",
"entities":[
{
"id":"urn:ngsi-ld:Furniture:unit001", "type":"Furniture",
"refOffice":
},
{
"id":"urn:ngsi-ld:Furniture:unit002", "type":"Furniture",
"refOffice":
},
{
"id":"urn:ngsi-ld:DeliverService:unit001", "type":"ServiceProvider",
"refOffice":
}
]
}'
curl -iX POST \
'http:
//localhost:1026/v2/op/update' \
-H 'Content-Type: application/json' \
-H 'fiware-service: didi' \
-H 'fiware-servicepath: /' \
-d '{
"actionType":"APPEND",
"entities":[
{
"id":"urn:ngsi-ld:Office:001", "type" : "Office",
"name":
,
"sizeInM2":
,
"address":{
"type":"PostalAddress",
"value":
}
}
]
}'
curl -iX POST \
'http://localhost:4041/iot/services' \
-H 'Content-Type: application/json' \
-H 'fiware-service: didi' \
-H 'fiware-servicepath: /' \
-d '{
"services": [
]
}'
curl -G -X GET \
'http://localhost:1026/v2/entities/urn:ngsi-ld:Office:001' \
-H 'fiware-service: didi' \
-H 'fiware-servicepath: /' \
-d 'type=Office' \
-d 'options=keyValues' | json_pp
curl -iX POST \
'http://localhost:4041/iot/devices' \
-H 'Content-Type: application/json' \
-H 'fiware-service: didi' \
-H 'fiware-servicepath: /' \
-d '{
"devices": [
{
"device_id": "bottleCounter001",
"entity_name": "urn:ngsi-ld:BottleCounter:001",
"entity_type": "BottleCounter",
"timezone": "Europe/Berlin",
"attributes": [
],
"static_attributes": [
]
}
]
}'
The subscription:
curl -iX POST \
--url 'http://localhost:1026/v2/subscriptions' \
--header 'Content-Type: application/json' \
-H 'fiware-service: didi' \
-H 'fiware-servicepath: /' \
--data '{
"description": "Notify me of low stock in Office 001",
"subject": {
"entities": [
],
"condition": {
"attrs": ["numberOfBottles"],
"expression":
}
},
"notification": {
"http":
}
}'
I have several problems:
With the condition numberOfBottles<10 the subscription never get triggered. When I use something like numberOfBottles!=10 it is working
There is only an empty body sent to the url http://delivery:8080/subscription/office
A bonus question: if I can fix the first issues:
Is there a way to send the attribute address from urn:ngsi-ld:DeliverService:unit001 to the url http://delivery:8080/subscription/office when the subscription get triggered?
2019-02-20 06:06|CREATED monitor | # answers= 0, accepted answer= False