リソース管理 API

リソース管理 API は、ゲートウェイの管理、ゲートウェイが認識しているデバイスの管理、そして、デバイスが提供するアクションの取得を行います。アクションの実行については、デバイス API をご覧ください。リソース管理 API は、そのほか、ニックネームとタグも管理します。

デバイスを登録する際には名前 (deviceName) を割り振りますが、登録後、別名を割り当てることもできます。その別名のことをニックネームと呼びます。アクション実行の際には、デバイスを識別するシング ID (thingId) だけでなく、ニックネームを指定してすることもできます (デバイス名を指定してサービスを実行することはできません)。

タグとは、複数のデバイスをグルーピングする名前です。サービス実行の際にはタグ名 (tagName) を指定して、複数のデバイスをまとめて操作することが可能です。例えば、同じ部屋に 4 つのライトがあるとします。その 4 つのライトに対して「居間のライト」というタグを登録すれば、以降、「居間のライト」というタグを指定して 1 回のリクエストで 4 つのライトを点灯したり消灯することができるようになります。

なお、ニックネームやタグを指定してサービスを実行したい場合は、「デバイス API」の request() メソッドを使います。

searchGateway()

このメソッドは、UUID から Symphony に一時的に登録されているユーザー未割当のゲートウェイを検索します。すでにユーザー割り当て済みのゲートウェイは検索できません。ゲートウェイが初めて Symphony に接続すると、該当のゲートウェイはユーザー未割当の状態で一時的に Symphony に保存されます。ユーザー未割当の状態のゲートウェイは、一定時間を経過すると自動的に削除されますので、ゲートウェイをアクティブにしてから早いうちにこのメソッドを実行してください。もし Symphony から削除されてしまった場合は、再度、ゲートウェイを Symphony に接続しなおしてください。そうすれば、新たにユーザー未割当状態で Symphony に登録されます。

このメソッドは、CompletableFuture オブジェクトを返します。このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
uuid String 必須 ゲートウェイの UUID。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("uuid", "#836a8e20-025e-11a8-392e-b827ebbd2f2e")
    .build();

symphony.searchGateway(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

ゲートウェイが見つからなかった場合のレスポンスの例
{
  "result": 0,
  "error": null,
  "gatewayInfo": null
}
ゲートウェイが見つかった場合のレスポンスの例
{
  "result": 0,
  "error": null,
  "gatewayInfo": {
    "gatewayId": "gw-CAE3AB3F4F5A93733CF2451E720F2344",
    "gatewayName": "node-gotapi",
    "gatewayUuid": "836a8e20-025e-11a8-392e-b827ebbd2f2e",
    "gatewayType": "hgw",
    ...,
    "isOnline": true
  }
}

レスポンス情報のうち、主要な値の意味は以下のとおりです。

レスポンス
プロパティ名 説明
gatewayInfo SymphonyObject ゲートウェイ情報を表す GatewayInfo オブジェクト。

getGateways()

このメソッドは、サインインユーザーが登録済みのゲートウェイのリストを取得します。このメソッドは、CompletableFuture オブジェクトを返します。

サンプルコード
dSymphony.getGateways().thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null,
  "gatewayList": [
    {
      "gatewayId": "gw-CAE3AB3F4F5A93733CF2451E720F2344",
      "gatewayName": "居間のゲートウェイ",
      "gatewayUuid": "836a8e20-025e-11a8-392e-b827ebbd2f2e",
      "gatewayType": "hgw",
      ...,
      "isOnline": true
    }
  ]
}
レスポンス
プロパティ名 説明
gatewayList SymphonyArray ゲートウェイ情報を表す GatewayInfo オブジェクトを格納したリスト。

registerGateway()

このメソッドは、まだどのユーザーにも関連付けられていない仮登録状態のゲートウェイ ID (getewayId) を指定して、そのゲートウェイを自分のゲートウェイとして登録します。すでに登録済みのゲートウェイを指定するとエラーを返します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
gatewayId String 必須 ゲートウェイ ID。この値は、searchGateway() メソッドから得られます。
gatewayName String 必須 ゲートウェイの名前。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("gatewayId", "gw-CAE3AB3F4F5A93733CF2451E720F2344")
    .put("gatewayName", "居間のゲートウェイ")
    .build();

dSymphony.registerGateway(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null
}

updateGateway()

このメソッドは、ゲートウェイの ID を指定して、そのゲートウェイの名前とタイプを変更します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
gatewayId String 必須 ゲートウェイの ID。
gatewayName String 必須 ゲートウェイの名前。
gatewayType String 任意 ゲートウェイのタイプ。指定できる値は mobile, hgw のいずれか。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("gatewayId", "gw-CAE3AB3F4F5A93733CF2451E720F2344")
    .put("gatewayName", "仕事部屋のゲートウェイ")
    .build();

dSymphony.updateGateway(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null
}

deleteGateway()

このメソッドは、ゲートウェイの ID を指定して、そのゲートウェイを削除します。ゲートウェイが削除されると、それに関連するデバイス情報、アクション情報、アーカイブはすべて削除されます。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
gatewayId String 必須 ゲートウェイの ID。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("gatewayId", "gw-CAE3AB3F4F5A93733CF2451E720F2344")
    .build();

dSymphony.deleteGateway(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null
}

getUnregisteredDevices()

このメソッドは、ゲートウェイの ID を指定して、そのゲートウェイが認識しているデバイスのうち、まだ Symphony に登録されていないデバイスの一覧を返します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
gatewayId String 必須 ゲートウェイの ID。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("gatewayId", "gw-CAE3AB3F4F5A93733CF2451E720F2344")
    .build();

dSymphony.getUnregisteredDevices(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null,
  "deviceList": [
    {
      "thingId": "th-A428E95C5CA6EAAFC204AC21728ED7B9",
      "serviceId": "hue-light-0017882C7D50-1",
      "deviceName": "Philips hue bridge 2015",
      "type": "",
      "isOnline": true,
      ...
    },
    ...
  ]
}
レスポンス
プロパティ名 説明
deviceList SymphonyArray 未登録デバイス情報を表す UnregisteredDeviceInfo オブジェクトを格納したリスト。

getDevices()

このメソッドは、サインインしているユーザーに関連付けられているすべてのデバイスを検索します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
latitude Float 任意 デバイスの現在位置の緯度。デバイスが現在位置検知をサポートしている場合のみ利用可能。
longitude Float 任意 デバイスの現在位置の経度。デバイスが現在位置検知をサポートしている場合のみ利用可能。
locationItemId String 任意 デバイスの現在位置 ID。デバイスが現在位置検知をサポートしている場合のみ利用可能。
deviceName String 任意 デバイスの名前。部分一致で検索します。アルファベットの場合は、大文字と小文字は区別されます。
nickname String 任意 デバイスのニックネーム。完全一致で検索します。
tagName String 任意 デバイスのタグ名。完全一致で検索します。
gatewayId Gateway 任意 ゲートウェイ ID。この ID を指定すると、検索対象が該当のゲートウェイに関連付けられたデバイスのみに限定されます。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("deviceName", "リモコン");
    .put("gatewayId", "gw-CAE3AB3F4F5A93733CF2451E720F2344")
    .build();

dSymphony.getDevices(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null,
  "deviceList": [
    {
      "deviceName": "赤外線リモコン REX",
      "thingId": "th-DF069858E95F1BB895D97006BAC7F6AA",
      "serviceId": "rex-base-409f38d28d9a",
      "deviceCategory": "rex-base",
      "type": "",
      "isOnline": true,
      ...
    }
  ]
}
レスポンス
プロパティ名 説明
deviceList SymphonyArray デバイス情報を表す DeviceInfo オブジェクトを格納したリスト。

registerDevice()

このメソッドは、Symphony にデバイスを登録します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
gatewayId String 必須 ゲートウェイ ID。
thingId String 必須 デバイスを識別するシング ID。まだ Symphony に登録されていないシング ID を指定してください。Symphony に未登録のデバイスのシング ID は、getUnregisteredDevices() メソッドから得られます。もしシング ID を指定しなければ、該当のゲートウェイに関連付けられている Symphony に未登録のデバイスすべてをまとめて登録します。
deviceName String 必須 デバイスの名前。パラメータに thingId を指定した場合にのみ有効です。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("gatewayId", "gw-CAE3AB3F4F5A93733CF2451E720F2344")
    .put("thingId", "th-DF069858E95F1BB895D97006BAC7F6AA")
    .put("deviceName", "赤外線リモコン REX")
    .build();

dSymphony.registerDevice(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null,
  "deviceList": [
    {
      "thingId": "th-DF069858E95F1BB895D97006BAC7F6AA",
      "serviceId": "rex-base-409f38d28d9a",
      "deviceName": "赤外線リモコン REX",
      "type": "",
      "isOnline": true,
      ...
    }
  ]
}
レスポンス
プロパティ名 説明
deviceList SymphonyArray デバイス情報を表す DeviceInfo オブジェクトを格納したリスト。

deleteDevices()

このメソッドは、Symphony に登録されたデバイスをすべて削除します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドに引数はありません。

サンプルコード
dSymphony.deleteDevices().thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null
}

getDevice()

このメソッドは、シング ID からデバイス情報を取得します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
thingId String 必須 シング ID。
latitude String 任意 現在位置(緯度)
longitude String 任意 現在位置(経度)
locationItemId String 任意 位置を特定する識別子
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("thingId", "th-DF069858E95F1BB895D97006BAC7F6AA")
    .build();

dSymphony.getDevice(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null,
  "device": {
    "deviceName": "赤外線リモコン REX",
    "thingId": "th-DF069858E95F1BB895D97006BAC7F6AA",
    "serviceId": "rex-base-409f38d28d9a",
    "deviceCategory": "rex-base",
    "type": "",
    "isOnline": true,
    ...
  }
}
レスポンス
プロパティ名 説明
device Object デバイス情報を表す DeviceInfo オブジェクト

updateDevice()

このメソッドは、デバイスの名前を変更します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
thingId String 必須 シング ID。
deviceName String 必須 デバイスの名前。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("thingId", "th-DF069858E95F1BB895D97006BAC7F6AA")
    .put("deviceName", "居間の赤外線リモコン REX")
    .build();

dSymphony.updateDevice(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null
}

deleteDevice()

このメソッドは、Symphony に登録されたデバイスを 1 つ削除します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
thingId String 必須 シング ID。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("thingId", "th-DF069858E95F1BB895D97006BAC7F6AA")
    .build();

dSymphony.deleteDevice(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null
}

getActions()

このメソッドは、登録されているすべてのデバイスからアクションを検索します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
latitude Float 任意 デバイスの現在位置の緯度。デバイスが現在位置検知をサポートしている場合のみ利用可能。
longitude Float 任意 デバイスの現在位置の経度。デバイスが現在位置検知をサポートしている場合のみ利用可能。
locationItemId String 任意 位置を特定する識別子
deviceName String 任意 デバイスの名前。部分一致で検索します。アルファベットの場合は、大文字と小文字は区別されます。
nickname String 任意 デバイスのニックネーム。完全一致で検索します。
tagName String 任意 デバイスのタグ名。完全一致で検索します。
gatewayId String 任意 ゲートウェイ ID。この ID を指定すると、検索対象が該当のゲートウェイに関連付けられたデバイスのみに限定されます。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("thingId", "th-DF069858E95F1BB895D97006BAC7F6AA")
    .build();

dSymphony.getActions(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null,
  "deviceList": [
    {
      "deviceName": "赤外線リモコン REX",
      "thingId": "th-DF069858E95F1BB895D97006BAC7F6AA",
      "serviceId": "rex-base-409f38d28d9a",
      "actionInfo": {
        "actionId": "ac-E62149FF981F20C09FBDF2A42F811FD2",
        "summary": "バッテリーレベルの取得",
        "url": "/battery:get",
        ...
      },
      ...
    },
    {
      "deviceName": "赤外線リモコン REX",
      "thingId": "th-DF069858E95F1BB895D97006BAC7F6AA",
      "serviceId": "rex-base-409f38d28d9a",
      "actionInfo": {
        "actionId": "ac-B9F4A4C4B7B42ED18116791B0B937067",
        "summary": "照度センサー計測値の取得",
        "url": "/illuminance:get",
        ...
      }
    },
    ...
  ]
}

レスポンス情報のうち、主要な値の意味は以下のとおりです。

レスポンス
プロパティ名 説明
deviceList SymphonyArray デバイスおよびアクション情報を表す DeviceActionInfo オブジェクトのリスト。

getDeviceActions()

このメソッドは、指定のデバイスが提供するアクションの一覧を取得します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
thingId String 必須 シング ID。
latitude Float 任意 デバイスの現在位置の緯度。デバイスが現在位置検知をサポートしている場合のみ利用可能。
longitude Float 任意 デバイスの現在位置の経度。デバイスが現在位置検知をサポートしている場合のみ利用可能。
locationItemId String 任意 位置を特定する識別子
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("thingId", "th-DF069858E95F1BB895D97006BAC7F6AA")
    .build();

dSymphony.getDeviceActions(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null,
  "deviceList": [
    {
      "deviceName": "赤外線リモコン REX",
      "thingId": "th-DF069858E95F1BB895D97006BAC7F6AA",
      "serviceId": "rex-base-409f38d28d9a",
      "actionInfo": {
        "actionId": "ac-E62149FF981F20C09FBDF2A42F811FD2",
        "summary": "バッテリーレベルの取得",
        "url": "/battery:get",
        ...
      },
      ...
    },
    {
      "deviceName": "赤外線リモコン REX",
      "thingId": "th-DF069858E95F1BB895D97006BAC7F6AA",
      "serviceId": "rex-base-409f38d28d9a",
      "actionInfo": {
        "actionId": "ac-B9F4A4C4B7B42ED18116791B0B937067",
        "summary": "照度センサー計測値の取得",
        "url": "/illuminance:get",
        ...
      }
    },
    ...
  ]
}

レスポンス情報のうち、主要な値の意味は以下のとおりです。

レスポンス
プロパティ名 説明
deviceList SymphonyArray デバイスおよびアクション情報を表す DeviceActionInfo オブジェクトのリスト。

getNicknames()

このメソッドは、ニックネームを検索します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
thingId String 任意 シング ID。
nickname String 任意 ニックネーム。完全一致で検索します。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("thingId", "th-DF069858E95F1BB895D97006BAC7F6AA")
    .build();

dSymphony.getNicknames(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null,
  "nicknameList": [
    {
      "nicknameId": "nn-28CE971EED9BA43952DFA0EB8834BC04",
      "nickname": "居間のリモコン",
      "deviceList": [
        {
          "deviceName": "赤外線リモコン REX",
          "thingId": "th-DF069858E95F1BB895D97006BAC7F6AA",
					"serviceId": "rex-base-409f38d28d9a",
          ...
        }
      ]
    },
    ...
  ]
}

レスポンス情報のうち、主要な値の意味は以下のとおりです。

レスポンス
プロパティ名 説明
nicknameList SymphonyArray ニックネーム情報を表す NicknameInfo オブジェクトのリスト

addNickname()

このメソッドは、登録済みデバイスへニックネームを新規に登録します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
thingId String または SymphonyArray 必須 シング ID、または、シング ID のリスト。リストで複数のシング ID を関連付ける場合は、最大 2 つまで、かつ、その 2 つのシング ID が表すデバイスは同一 (serviceId が同一) でなければいけません。
nickname String 必須 ニックネーム。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("thingId", "th-DF069858E95F1BB895D97006BAC7F6AA")
    .put("nickname", "居間のリモコン")
    .build();

dSymphony.addNickname(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null,
  "nicknameId": "nn-28CE971EED9BA43952DFA0EB8834BC04"
}

レスポンス情報のうち、主要な値の意味は以下のとおりです。

レスポンス
プロパティ名 説明
nicknameId String 新たに登録されたニックネームの ID。

deleteNicknames()

このメソッドは、すべてのニックネームをまとめて削除します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドには、引数はありません。

サンプルコード
dSymphony.deleteNicknames().thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null
}

getNickname()

このメソッドは、ニックネーム ID からニックネーム情報を取得します。このメソッドは CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
nicknameId String 必須 ニックネーム ID。
thingId String 任意 シング ID。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("nicknameId", "nn-9D0DD0330D6C963E2063B3878CDECD17")
    .build();

dSymphony.getNickname(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null,
  "nickname": {
    "nicknameId": "nn-9D0DD0330D6C963E2063B3878CDECD17",
    "nickname": "赤外線リモコン",
    "deviceList": [
      {
        "deviceName": "赤外線リモコン REX",
        "thingId": "th-DF069858E95F1BB895D97006BAC7F6AA",
        "serviceId": "rex-base-409f38d28d9a",
        ...
      }
    ]
  }
}

レスポンス情報のうち、主要な値の意味は以下のとおりです。

レスポンス
プロパティ名 説明
nickname SymphonyArray ニックネーム情報を表す NicknameInfo オブジェクト

updateNickname()

このメソッドは、ニックネームの名前および関連付けられているデバイス (シング ID) を変更します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
nicknameId String 必須 ニックネーム ID。
thingId String または SymphonyArray 必須 シング ID、または、シング ID のリスト。リストで複数のシング ID を関連付ける場合は、最大 2 つまで、かつ、その 2 つのシング ID が表すデバイスは同一 (serviceId が同一) でなければいけません。
nickname String 必須 ニックネーム。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("nicknameId", "nn-9D0DD0330D6C963E2063B3878CDECD17")
    .put("thingId", "th-DF069858E95F1BB895D97006BAC7F6AA")
    .put("nickname", "居間のリモコン")
    .build();

dSymphony.updateNickname(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null
}

deleteNickname()

このメソッドは、ニックネームを削除します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
nicknameId String 必須 ニックネーム ID。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("nicknameId", "nn-9D0DD0330D6C963E2063B3878CDECD17")
    .build();

dSymphony.deleteNickname(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null
}

getTags()

このメソッドは、登録済みのタグ、および、そのタグに関連付けられているデバイスの情報を検索します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
tagId String 任意 タグ ID。
tagName String 任意 タグ 名。完全一致で検索します。
thingId String 任意 シング ID。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .build();

dSymphony.getTags(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null,
  "tagList": [
    {
      "tagId": "tg-F38172B6AC6ADE205A67706A54508704",
      "tagName": "居間の照明",
      "deviceList": [
        {
          "deviceName": "Hue color lamp 2",
          "thingId": "th-177FD7DDF0536BDE816762DCF394A116",
          ...
        },
        {
          "deviceName": "Hue color lamp 3",
          "thingId": "th-01F2ED28B70E730504438D1F1405B451",
          ...
        },
        {
          "deviceName": "Hue color lamp 1",
          "thingId": "th-A7E2F85D264D52E8F2EA0B507D8CCA57",
          ...
        }
      ]
    }
  ]
}

レスポンス情報のうち、主要な値の意味は以下のとおりです。

レスポンス
プロパティ名 説明
tagList SymphonyArray タグ情報を表す TagInfo オブジェクトのリスト。

createTag()

このメソッドは、タグを新規に生成し、複数の同種別のデバイスを関連付けてグルーピングします。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
thingIdList SymphonyArray 必須 シング ID のリスト。シング ID が表すデバイスは、同じ種別のデバイスでなければいけません (たとえば、ライトとテレビをタグでグルーピングすることはできません)。
tagName String 必須 タグ名。
サンプルコード
SymphonyArray array = new SymphonyArray.Builder()
    .add("th-A7E2F85D264D52E8F2EA0B507D8CCA57")
    .add("th-177FD7DDF0536BDE816762DCF394A116")
    .add("th-01F2ED28B70E730504438D1F1405B451")
    .build();

SymphonyObject params = new SymphonyObject.Builder()
    .put("thingIdList", array)
    .put("tagName", "居間の照明")
    .build();

dSymphony.createTag(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});
レスポンスの例
{
  "result": 0,
  "error": null,
  "tagId": "tg-F38172B6AC6ADE205A67706A54508704"
}

レスポンス情報のうち、主要な値の意味は以下のとおりです。

レスポンス
プロパティ名 説明
tagId String 新たに登録されたタグの ID。

deleteTags()

このメソッドは、登録されているすべてのタグをまとめて削除します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドには、引数はありません。

サンプルコード
dSymphony.deleteTags().then(function (res) {
  console.log(JSON.stringify(res, null, '  '));
}).catch(function (error) {
  console.error(error);
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null
}

getTag()

このメソッドは、タグ ID から該当のタグ、および、そのタグに関連付けられているデバイスの情報を検索します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
tagId String 必須 タグ ID。
thingId String 任意 シング ID。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("tagId", "tg-F38172B6AC6ADE205A67706A54508704")
    .build();

dSymphony.getTag(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null,
  "tagInfo": {
    "tagId": "tg-F38172B6AC6ADE205A67706A54508704",
    "tagName": "居間の照明",
    "deviceList": [
      {
        "deviceName": "Hue color lamp 2",
        "thingId": "th-177FD7DDF0536BDE816762DCF394A116",
        ...
      },
      {
        "deviceName": "Hue color lamp 1",
        "thingId": "th-A7E2F85D264D52E8F2EA0B507D8CCA57",
        ...
      },
      {
        "deviceName": "Hue color lamp 3",
        "thingId": "th-01F2ED28B70E730504438D1F1405B451",
        ...
      }
    ]
  }
}

レスポンス情報のうち、主要な値の意味は以下のとおりです。

レスポンス
プロパティ名 説明
tagInfo SymphonyArray タグ情報を表す TagInfo オブジェクト。

updateTag()

このメソッドは、タグに関連付けられているデバイスのリスト、そして、タグ名を変更します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
tagId String 必須 タグ ID。
thingIdList SymphonyArray 必須 シング ID のリスト。
tagName String 必須 タグ名。
サンプルコード
SymphonyArray array = new SymphonyArray.Builder()
    .add("th-A7E2F85D264D52E8F2EA0B507D8CCA57")
    .add("th-177FD7DDF0536BDE816762DCF394A116")
    .add("th-01F2ED28B70E730504438D1F1405B451")
    .build();

SymphonyObject params = new SymphonyObject.Builder()
    .put("tagId", "tg-F38172B6AC6ADE205A67706A54508704")
    .put("thingIdList", array)
    .put("tagName", "居間の照明")
    .build();

dSymphony.updateTag(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null
}

deleteTag()

このメソッドは、タグを削除します。このメソッドは、CompletableFuture オブジェクトを返します。

このメソッドは、以下のプロパティを持ったオブジェクトを引数に取ります。

パラメータ
プロパティ名 必須 説明
tagId String 必須 タグ ID。
サンプルコード
SymphonyObject params = new SymphonyObject.Builder()
    .put("tagId", "tg-F38172B6AC6ADE205A67706A54508704")
    .build();

dSymphony.deleteTag(params).thenAccept(obj -> {
    Log.d(TAG, obj.toString());
}).exceptionally(ex -> {
    Log.e(TAG, "", ex);
    return null;
});

このメソッドの実行が成功すると、コールバック関数には Symphony から返されたオブジェクトが引数に与えられます。

レスポンスの例
{
  "result": 0,
  "error": null
}