デバイスにコマンドを送るために、開発者はコマンドに対応する属性を知り、それらを更新するだけでよい。

IoT インテグレータは、登録プロセス (POST リクエスト) でコマンド関連の属性を次のように宣言する必要があります :

POST <idas_host>:<idas_port>/iot/devices
//Example: HTTP POST: http://130.206.80.40:5371/iot/devices 
Headers: {'content-type': 'application/json’; 'X-Auth-Token' : [TOKEN]; "Fiware-Service: OpenIoT”; "Fiware-ServicePath: /"}
Payload:
{"devices": [
    { "device_id": ”[DEV_ID]",
    "entity_name": ”[ENTITY_ID]",
    "entity_type": "thing",
    "endpoint": "http://[DEVICE_IP]:[PORT]",
    "timezone": ”Europe/Madrid",
    "commands": [
        { "name": ”RawCommand",
        "type": "command",
        "value": “[Dev_ID]@RawCommand|%s"
        } ],
    "attributes": [

Context Broker の NGSI エンティティのこの属性 ”RawCommand” の更新は、デバイスにコマンドを送信します。

"endpoint": "http://[DEVICE_IP]:[PORT]" の行が宣言されている場合、デバイスは同期的にその URL でコマンドをリッスンすることになっています。

エンドポイントが宣言されていない場合 (その行が存在しない場合)、デバイスはポーリング・モードで動作します。したがって、非同期の方法でコマンドを受け取ると想定されます (つまり、デバイスが積極的にコマンドをリクエストしたとき)。 ポーリング・モードでコマンドを受信するデバイスの場合、コマンドの完全な保留キューは、次の HTTP GET リクエストで受信されます :

POST <idas_host>:<idas_port>/d?k=<apikey>&i=<device_ID>
//Example: HTTP GET:
Headers: {'content-type': 'application/text’; 'X-Auth-Token' : [TOKEN]; "Fiware-Service: OpenIoT”; "Fiware-ServicePath: /"}
http://130.206.80.40:5371/iot/d?k=[APIKEY]&i=[DEV_ID]