---
# System prepended metadata

title: ECAタグの仕様

---

# ECAタグの仕様


| ECA | タグ | 概要|
| -------- | -------- | -------- |
|     | recipeType     | レシピ実行のトリガとなる種類（1:機器状態，2:環境情報,3:生体情報）     |		
|    Event	|event	|レシピ実行のトリガとなるイベントを記述するための配列|
||number|	Condition部分の要素と対応づけるための番号
||triggerDeviceId|	状態を確認したい機器のID（iHACフレームワークのDBで管理）
||fetch|	トリガとなる情報の取得方法（MQTT，REST API）
||provider	|環境情報を取得するプロバイダのURL
||mqttTopic	|MQTTを用いて取得する環境情報のトピック名
|Condition	|condition	|レシピ実行時に確認される条件を記述するための配列
||number	|Event部分の要素と対応づけるための番号
||triggerDeviceStatus	|レシピ実行条件となる機器の状態（例：Power，Mode）
||triggerDeviceStatusValue|	レシピ実行条件となる機器状態の値（例：ON，Cooling）
||operator|	レシピ実行条件の比較演算子（$eq：＝,$ne：≠,$gt：>,$le：＜,$gte：≧,$lte：≦）
||value|	レシピ実行条件となる閾値
|Action	|action	|条件を満たした場合に実行するアクションを記述する配列|
|　|controlDeviceId|	制御対象機器のID（iHACフレームワークのDBで管理）
|　|controlDeviceStatus	|制御内容（例：Power，Mode）
||controlDeviceStatuValue|	制御内容で使用する値（例：ON，Cooling，24）
||controlMethod|	制御方法（例：VoiceInstruction，ENL，DLNA）
||untterance	|発話内容（例：扇風機つけて）

複数条件のレシピを作成する場合，Condition部分に$and，$or，$nor，$notタグを使用し，その中にそれぞれの条件を記述する．次のページに複数条件，複数Actionの例を示す．

 
# レシピ例

{
  "recipeType":2,
  "event": [
    {
      "number": 1, "fetch": "MQTT",
      "provider": "m13.cloudmqtt.com", 
      "mqttTopic": "living/temperature"
    },
    {
      "number": 2, "fetch": "MQTT",
      "provider": "m13.cloudmqtt.com", 
      "mqttTopic": "living/humidity"
    }
  ],
  "condition": [
    "$and": [
      {
        "number": 1,
        "operator": "$gte", "value": 30.0
      },
      {
        "number": 2,
        "operator": "$gte", "value": 32.8
      }
    ]
  ],
  "action": [
    {
      "controlDeviceId": 1,
      "controlDeviceStatus": "Power",
      "controlDeviceStatusValue": "On"
    },
    {
      "controlDeviceId": 2,
      "controlDeviceStatus": "Color",
      "controlDeviceStatusValue": "lampColor"
    }
  ]
}
