[Backlogmanager] [FIWARE-JIRA] (HELP-16127) [fiware-stackoverflow] Sending commands to devices in FIWARE Orion is not working

Fernando Lopez (JIRA) jira-help-desk at jira.fiware.org
Tue Sep 3 08:39:00 CEST 2019


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

Fernando Lopez updated HELP-16127:
----------------------------------
    Description: 
Created question in FIWARE Q/A platform on 29-08-2019 at 15:08
{color: red}Please, ANSWER this question AT{color} https://stackoverflow.com/questions/57711025/sending-commands-to-devices-in-fiware-orion-is-not-working


+Question:+
Sending commands to devices in FIWARE Orion is not working

+Description:+
I am trying to provide a device on FIWARE and send commands. In my case, a lamp with commands ("on" and "off"). But, it's not working. 
The steps to create a device and send command are:


Provide a device;
Create a service group;
Create a registration with commands;
Send a command.


I'm taking the fiware-tutorials following the steps, but don't work. 

The code I have used was:

To create a device:

curl -iX POST \
  'http://localhost:4041/iot/devices' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
  "devices": [
    {
      "device_id": "lamp1",
      "entity_name": "urn:ngsi-ld:Lamp:1",
      "entity_type": "Lamp",
      "protocol": "PDI-IoTA-UltraLight",
      "transport": "HTTP",
      "endpoint": "http://iot-sensors:3001/iot/lamp1",
      "commands": [
        {"name": "on","type": "command"},
        {"name": "off","type": "command"}
       ],
       "attributes": [
        {"object_id": "s", "name": "state", "type":"Text"},
        {"object_id": "l", "name": "luminosity", "type":"Integer"}
       ],
       "static_attributes": [
         {"name":"refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:001"}
      ]
    }
  ]
}
'


To create a service group:

curl -iX POST \
  'http://localhost:4041/iot/services' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
 "services": [
   {
     "apikey":      "4jggokgpepnvsb2uv4s40d59ov",
     "cbroker":     "http://orion:1026",
     "entity_type": "Thing",
     "resource":    "/iot/d"
   }
 ]
}'


To create a registration for commands:

curl -iX POST \
  'http://localhost:1026/v2/registrations' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
  "description": "Lamp Commands",
  "dataProvided": {
    "entities": [
      {
        "id": "urn:ngsi-ld:Lamp:1","type": "Lamp"
      }
    ],
    "attrs": [ "on", "off" ]
  },
  "provider": {
    "http": {"url": "http://orion:1026/v2"},
    "legacyForwarding": true
  }
}'


To send a "on" command:

curl -iX PATCH \
  'http://localhost:1026/v2/entities/urn:ngsi-ld:Lamp:1/attrs' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
  "on": {
      "type" : "command",
      "value" : ""
  }
}'


Doing a HTTP get request to retrieve the entity:

curl -G -X GET \
  'http://localhost:1026/v2/entities/urn:ngsi-ld:Lamp:1' \
  -d 'type=Lamp' \
  -d 'options=keyValues' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /'


I expect a output like:

{
  "id": "urn:ngsi-ld:Lamp:001",
  "type": "Lamp",
  "TimeInstant": "2019-08-28T13:33:51.00Z",
  "luminosity": "1115",
  "off_info": " ",
  "off_status": "UNKNOWN",
  "on_info": " on OK",
  "on_status": "OK",
  "refStore": "urn:ngsi-ld:Store:001",
  "state": "ON",
  "on": "",
  "off": ""
}


but I receive this:

{
  "id": "urn:ngsi-ld:Lamp:1",
  "type": "Lamp",
  "TimeInstant": "2019-08-28T12:50:22.00Z",
  "luminosity": " ",
  "off_info": " ",
  "off_status": "UNKNOWN",
  "on_info": "There was an error in the response of a device to a command [404]: on NOT OK",
  "on_status": "ERROR",
  "refStore": "urn:ngsi-ld:Store:001",
  "state": " ",
  "on": "",
  "off": ""
}



  was:

Created question in FIWARE Q/A platform on 29-08-2019 at 15:08
{color: red}Please, ANSWER this question AT{color} https://stackoverflow.com/questions/57711025/sending-commands-to-devices-in-fiware-orion-is-not-working


+Question:+
Sending commands to devices in FIWARE Orion is not working

+Description:+
I am trying to provide a device on FIWARE and send commands. In my case, a lamp with commands ("on" and "off"). But, it's not working. 
The steps to create a device and send command are:


Provide a device;
Create a service group;
Create a registration with commands;
Send a command.


I'm taking the fiware-tutorials following the steps, but don't work. 

The code I have used was:

To create a device:

curl -iX POST \
  'http://localhost:4041/iot/devices' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
  "devices": [
    {
      "device_id": "lamp1",
      "entity_name": "urn:ngsi-ld:Lamp:1",
      "entity_type": "Lamp",
      "protocol": "PDI-IoTA-UltraLight",
      "transport": "HTTP",
      "endpoint": "http://iot-sensors:3001/iot/lamp1",
      "commands": [
        {"name": "on","type": "command"},
        {"name": "off","type": "command"}
       ],
       "attributes": [
        {"object_id": "s", "name": "state", "type":"Text"},
        {"object_id": "l", "name": "luminosity", "type":"Integer"}
       ],
       "static_attributes": [
         {"name":"refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:001"}
      ]
    }
  ]
}
'


To create a service group:

curl -iX POST \
  'http://localhost:4041/iot/services' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
 "services": [
   {
     "apikey":      "4jggokgpepnvsb2uv4s40d59ov",
     "cbroker":     "http://orion:1026",
     "entity_type": "Thing",
     "resource":    "/iot/d"
   }
 ]
}'


To create a registration for commands:

curl -iX POST \
  'http://localhost:1026/v2/registrations' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
  "description": "Lamp Commands",
  "dataProvided": {
    "entities": [
      {
        "id": "urn:ngsi-ld:Lamp:1","type": "Lamp"
      }
    ],
    "attrs": [ "on", "off" ]
  },
  "provider": {
    "http": {"url": "http://orion:1026/v2"},
    "legacyForwarding": true
  }
}'


To send a "on" command:

curl -iX PATCH \
  'http://localhost:1026/v2/entities/urn:ngsi-ld:Lamp:1/attrs' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
  "on": {
      "type" : "command",
      "value" : ""
  }
}'


Doing a HTTP get request to retrieve the entity:

curl -G -X GET \
  'http://localhost:1026/v2/entities/urn:ngsi-ld:Lamp:1' \
  -d 'type=Lamp' \
  -d 'options=keyValues' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /'


I expect a output like:

{
  "id": "urn:ngsi-ld:Lamp:001",
  "type": "Lamp",
  "TimeInstant": "2019-08-28T13:33:51.00Z",
  "luminosity": "1115",
  "off_info": " ",
  "off_status": "UNKNOWN",
  "on_info": " on OK",
  "on_status": "OK",
  "refStore": "urn:ngsi-ld:Store:001",
  "state": "ON",
  "on": "",
  "off": ""
}


but I receive this:

{
  "id": "urn:ngsi-ld:Lamp:1",
  "type": "Lamp",
  "TimeInstant": "2019-08-28T12:50:22.00Z",
  "luminosity": " ",
  "off_info": " ",
  "off_status": "UNKNOWN",
  "on_info": "There was an error in the response of a device to a command [404]: on NOT OK",
  "on_status": "ERROR",
  "refStore": "urn:ngsi-ld:Store:001",
  "state": " ",
  "on": "",
  "off": ""
}



     HD-Enabler: Orion

> [fiware-stackoverflow] Sending commands to devices in FIWARE Orion is not working
> ---------------------------------------------------------------------------------
>
>                 Key: HELP-16127
>                 URL: https://jira.fiware.org/browse/HELP-16127
>             Project: Help-Desk
>          Issue Type: Monitor
>          Components: FIWARE-TECH-HELP
>            Reporter: Backlog Manager
>            Assignee: Fermín Galán
>              Labels: fiware, fiware-orion
>
> Created question in FIWARE Q/A platform on 29-08-2019 at 15:08
> {color: red}Please, ANSWER this question AT{color} https://stackoverflow.com/questions/57711025/sending-commands-to-devices-in-fiware-orion-is-not-working
> +Question:+
> Sending commands to devices in FIWARE Orion is not working
> +Description:+
> I am trying to provide a device on FIWARE and send commands. In my case, a lamp with commands ("on" and "off"). But, it's not working. 
> The steps to create a device and send command are:
> Provide a device;
> Create a service group;
> Create a registration with commands;
> Send a command.
> I'm taking the fiware-tutorials following the steps, but don't work. 
> The code I have used was:
> To create a device:
> curl -iX POST \
>   'http://localhost:4041/iot/devices' \
>   -H 'Content-Type: application/json' \
>   -H 'fiware-service: openiot' \
>   -H 'fiware-servicepath: /' \
>   -d '{
>   "devices": [
>     {
>       "device_id": "lamp1",
>       "entity_name": "urn:ngsi-ld:Lamp:1",
>       "entity_type": "Lamp",
>       "protocol": "PDI-IoTA-UltraLight",
>       "transport": "HTTP",
>       "endpoint": "http://iot-sensors:3001/iot/lamp1",
>       "commands": [
>         {"name": "on","type": "command"},
>         {"name": "off","type": "command"}
>        ],
>        "attributes": [
>         {"object_id": "s", "name": "state", "type":"Text"},
>         {"object_id": "l", "name": "luminosity", "type":"Integer"}
>        ],
>        "static_attributes": [
>          {"name":"refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:001"}
>       ]
>     }
>   ]
> }
> '
> To create a service group:
> curl -iX POST \
>   'http://localhost:4041/iot/services' \
>   -H 'Content-Type: application/json' \
>   -H 'fiware-service: openiot' \
>   -H 'fiware-servicepath: /' \
>   -d '{
>  "services": [
>    {
>      "apikey":      "4jggokgpepnvsb2uv4s40d59ov",
>      "cbroker":     "http://orion:1026",
>      "entity_type": "Thing",
>      "resource":    "/iot/d"
>    }
>  ]
> }'
> To create a registration for commands:
> curl -iX POST \
>   'http://localhost:1026/v2/registrations' \
>   -H 'Content-Type: application/json' \
>   -H 'fiware-service: openiot' \
>   -H 'fiware-servicepath: /' \
>   -d '{
>   "description": "Lamp Commands",
>   "dataProvided": {
>     "entities": [
>       {
>         "id": "urn:ngsi-ld:Lamp:1","type": "Lamp"
>       }
>     ],
>     "attrs": [ "on", "off" ]
>   },
>   "provider": {
>     "http": {"url": "http://orion:1026/v2"},
>     "legacyForwarding": true
>   }
> }'
> To send a "on" command:
> curl -iX PATCH \
>   'http://localhost:1026/v2/entities/urn:ngsi-ld:Lamp:1/attrs' \
>   -H 'Content-Type: application/json' \
>   -H 'fiware-service: openiot' \
>   -H 'fiware-servicepath: /' \
>   -d '{
>   "on": {
>       "type" : "command",
>       "value" : ""
>   }
> }'
> Doing a HTTP get request to retrieve the entity:
> curl -G -X GET \
>   'http://localhost:1026/v2/entities/urn:ngsi-ld:Lamp:1' \
>   -d 'type=Lamp' \
>   -d 'options=keyValues' \
>   -H 'fiware-service: openiot' \
>   -H 'fiware-servicepath: /'
> I expect a output like:
> {
>   "id": "urn:ngsi-ld:Lamp:001",
>   "type": "Lamp",
>   "TimeInstant": "2019-08-28T13:33:51.00Z",
>   "luminosity": "1115",
>   "off_info": " ",
>   "off_status": "UNKNOWN",
>   "on_info": " on OK",
>   "on_status": "OK",
>   "refStore": "urn:ngsi-ld:Store:001",
>   "state": "ON",
>   "on": "",
>   "off": ""
> }
> but I receive this:
> {
>   "id": "urn:ngsi-ld:Lamp:1",
>   "type": "Lamp",
>   "TimeInstant": "2019-08-28T12:50:22.00Z",
>   "luminosity": " ",
>   "off_info": " ",
>   "off_status": "UNKNOWN",
>   "on_info": "There was an error in the response of a device to a command [404]: on NOT OK",
>   "on_status": "ERROR",
>   "refStore": "urn:ngsi-ld:Store:001",
>   "state": " ",
>   "on": "",
>   "off": ""
> }



--
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