I'm using IoTAgent over MQTT configuration. After going step by step with the tutorial presented on FIWARE's website is there a way to invoke command using measurment input of the IoT Agent?
Let's say i have 2 arduinos: one is an actuator and the other one is a sensor. The actuator has LED attached, sensor has a button. I want to send a message from sensor-arduino with command ON (to MQTT Broker or directly as an Ultralight message via HTTP - as far as I tested IoTA for Ultralight can run simultaneously both modes which is great) what will invoke sending the command defined for given device.
Let's say im using this config:
curl -iX POST \
'http://localhost:4041/iot/devices' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"devices": [
{
"device_id": "bell001",
"entity_name": "urn:ngsi-ld:Bell:001",
"entity_type": "Bell",
"protocol": "PDI-IoTA-UltraLight",
"transport": "MQTT",
"commands": [
{ "name": "ring", "type": "command" }
],
"static_attributes": [
{"name":"refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:001"}
]
}
]
}
'
I can invoke command like this (which is very inconvenient):
curl -iX POST \
'http://localhost:4041/v1/updateContext' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"contextElements": [
{
"type": "Bell",
"isPattern": "false",
"id": "urn:ngsi-ld:Bell:001",
"attributes": [
{ "name": "ring", "type": "command", "value": "" }
],
"static_attributes": [
{"name":"refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:001"}
]
}
],
"updateAction": "UPDATE"
}'
Or after registering the command, I can use Orion Context Broker:
curl -iX PATCH \
'http://localhost:1026/v2/entities/urn:ngsi-ld:Lamp:001/attrs' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"on": {
"type" : "command",
"value" : ""
}
}'
Those approaches give me a response in Mosquitto subscriber.
How can I create a message sent to IoTAgent (via MQTT or HTTP) that will invoke command sent to MQTT Broker? The command is further managed in actuator-arduino as long as is received in the MQTT Broker.