[Backlogmanager] [FIWARE-JIRA] (HELP-13267) [fiware-stackoverflow] Orion CB doesn' t update lazy attributes on IoT Agent

Jose Manuel Cantera (JIRA) jira-help-desk at jira.fiware.org
Tue Jan 16 16:19:00 CET 2018


     [ https://jira.fiware.org/browse/HELP-13267?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jose Manuel Cantera reassigned HELP-13267:
------------------------------------------

    Assignee: Jose Gato Luis  (was: Jose Manuel Cantera)

> [fiware-stackoverflow] Orion CB doesn't update lazy attributes on IoT Agent
> -------------------------------------------------------------------------------
>
>                 Key: HELP-13267
>                 URL: https://jira.fiware.org/browse/HELP-13267
>             Project: Help-Desk
>          Issue Type: Monitor
>          Components: FIWARE-TECH-HELP
>            Reporter: Backlog Manager
>            Assignee: Jose Gato Luis
>              Labels: fiware, fiware-orion
>
> Created question in FIWARE Q/A platform on 09-01-2018 at 09:01
> {color: red}Please, ANSWER this question AT{color} https://stackoverflow.com/questions/48163972/orion-cb-doesnt-update-lazy-attributes-on-iot-agent
> +Question:+
> Orion CB doesn't update lazy attributes on IoT Agent
> +Description:+
> I'm trying to use Orion CB as Contex Provider for an IoT Agent in which I have registred a device with lazy attributes only.
> On the IoT Agent I need to handle updateContext requests so I did a handler for these requests like this:
> iotAgentLib.setDataUpdateHandler(updateContextHandler);
> And in the updateContextHandler function I have only one instruction:
> console.log(attributes);
> In order to see if all the values I want to update have been received correctly.
> Now if I do an update on one of the attributes of the entity represented by the device:
> curl -i -X POST \
> -H "fiware-service:service1" \
> -H "fiware-servicepath:/subservice1" \
> -H "X-Auth-Token:wNRwDwqYlLoLD8U9sFkTAEE6PfYMbQ" \
> -H "Content-Type:application/json" \
> -d \
> '{
>     "contextElements": [
>         {
>             "id": "ncc_estimate",
>             "attributes": [
>                 {
>                     "name": "arrival",
>                     "type": "string",
>                     "value": "some_value"
>                 }
>             ]
>         }
>     ],
>     "updateAction": "UPDATE"
> } ' \
> 'http://{orion_address}/v1/updateContext'
> What I see on the IoT Agent output console is:
> time=2018-01-09T08:14:59.539Z | lvl=DEBUG | corr=2f4fdb0c-f515-11e7-86b2-0242ac110003 | trans=6ac5c35d-d7bf-419c-8f64-bc843b991d47 | op=IoTAgentNGSI.GenericMiddlewares | srv=service1 | subsrv=/subservice1 | msg=Body:
> {
>     "contextElements": [
>         {
>             "type": "nccestimate",
>             "isPattern": "false",
>             "id": "ncc_estimate",
>             "attributes": [
>                 {
>                     "name": "arrival",
>                     "type": "string",
>                     "value": ""
>                 }
>             ]
>         }
>     ],
>     "updateAction": "UPDATE"
> }
> Where as you can see the value field is empty, as I can also see from the console.log() output in the UpdateHandler function that is:
> [ { name: 'arrival', type: 'string', value: '' } ]
> It seems that Orion is deleting the value before sending it to the IoT Agent. What could be the problem? Am I wrong doing something?
> edit:
> Here is the response for the call to: /v1/registry/contextEntities/ncc_estimate
> {"contextRegistrationResponses":[
>     {"contextRegistration":
>         {"entities":[
>             {
>                 "type":"nccestimate",
>                 "isPattern":"false",
>                 "id":"ncc_estimate"
>             }
>         ],
>         "attributes":[
>             {
>                 "name":"transport_type",
>                 "type":"string",
>                 "isDomain":"false"
>             },
>             {
>                 "name":"arrival",
>                 "type":"string",
>                 "isDomain":"false" 
>            }
>         ],
>         "providingApplication":"http://192.168.199.151:4044"}
>     }
> ]}
> edit2:
> This is what Orion is sending to the iot agent when performing the updateContext operation described before:
> POST //updateContext HTTP/1.1
> User-Agent: orion/1.10.0-next libcurl/7.19.7
> Host: 192.168.199.151:4044
> fiware-service: service1
> Fiware-ServicePath: /subservice1
> X-Auth-Token: M62UkJc7yKX5aQwaHrsODfIrV4Ou85
> Accept: application/json
> Content-length: 169
> Content-type: application/json; charset=utf-8
> Fiware-Correlator: 42561e9a-f615-11e7-8610-0242ac110003
> {"contextElements":[{"type":"nccestimate","isPattern":"false","id":"ncc_estimate","attributes":[{"name":"arrival","type":"string","value":""}]}],"updateAction":"UPDATE"}
> As you can see the "value" field for the attribute is empty.
> I'm using Orion version 1.10.0 and iot agent node lib version 2.5.1.



--
This message was sent by Atlassian JIRA
(v6.4.1#64016)


More information about the Backlogmanager mailing list

You can get more information about our cookies and privacy policies clicking on the following links: Privacy policy   Cookies policy