2017-02-23 10 views
0

CEPを使用して私はプロトンとオリオンの間のコミュニケーションの基本的な例を作ろうとしています。 温度値が20以上の場合は、Ortonから温度の通知を受け取り、1つのブール値属性を変更してペイロードを返すだけです。CEP 5.4.3、基本的な条件を引き起こさない

ここで私が使用している定義はあります。

{ 
    "epn": 
    { 
     "events": 
     [ 
      { 
       "name": "TemperatureContextUpdate", 
       "attributes": 
       [ 
        { 
         "dimension": 0, 
         "description": "The certainty that this event happen (value between 0 to 1)", 
         "name": "Certainty", 
         "defaultValue": "1", 
         "type": "Double" 
        }, 
        { 
         "dimension": 0, 
         "description": "No value means it equals the event detection time, other option is to use one of the defined distribution functions with parameters", 
         "name": "OccurrenceTime", 
         "type": "Date" 
        }, 
        { 
         "dimension": 0, 
         "name": "ExpirationTime", 
         "type": "Date" 
        }, 
        { 
         "dimension": 0, 
         "description": "The cost of this event occurrence. Negative if this is an opportunity", 
         "name": "Cost", 
         "type": "Double" 
        }, 
        { 
         "dimension": 0, 
         "description": "Used in case the this event occur within an interval", 
         "name": "Duration", 
         "defaultValue": "0", 
         "type": "Double" 
        }, 
        { 
         "dimension": "0", 
         "name": "entityId", 
         "type": "String" 
        }, 
        { 
         "dimension": "0", 
         "name": "entityType", 
         "type": "String" 
        }, 
        { 
         "dimension": "0", 
         "name": "temperature", 
         "type": "Integer" 
        }, 
        { 
         "dimension": "0", 
         "name": "chaud", 
         "type": "Boolean" 
        } 
       ], 
       "createdDate": "Wed Feb 22 2017" 
      }, 
      { 
       "name": "Out_TemperatureContextUpdate", 
       "attributes": 
       [ 
        { 
         "dimension": 0, 
         "description": "The certainty that this event happen (value between 0 to 1)", 
         "name": "Certainty", 
         "defaultValue": "1", 
         "type": "Double" 
        }, 
        { 
         "dimension": 0, 
         "description": "No value means it equals the event detection time, other option is to use one of the defined distribution functions with parameters", 
         "name": "OccurrenceTime", 
         "type": "Date" 
        }, 
        { 
         "dimension": 0, 
         "name": "ExpirationTime", 
         "type": "Date" 
        }, 
        { 
         "dimension": 0, 
         "description": "The cost of this event occurrence. Negative if this is an opportunity", 
         "name": "Cost", 
         "type": "Double" 
        }, 
        { 
         "dimension": 0, 
         "description": "Used in case the this event occur within an interval", 
         "name": "Duration", 
         "defaultValue": "0", 
         "type": "Double" 
        }, 
        { 
         "dimension": "0", 
         "name": "entityId", 
         "type": "String" 
        }, 
        { 
         "dimension": "0", 
         "name": "entityType", 
         "type": "String" 
        }, 
        { 
         "dimension": "0", 
         "name": "temperature", 
         "type": "Integer" 
        }, 
        { 
         "dimension": "0", 
         "name": "chaud", 
         "type": "Boolean" 
        } 
       ], 
       "createdDate": "Wed Feb 22 2017" 
      } 
     ], 
     "name": "TemperatureDemo", 
     "consumers": 
     [ 
      { 
       "events": 
       [ 
        { 
         "name": "Out_TemperatureContextUpdate" 
        } 
       ], 
       "name": "Consumer_Rest", 
       "properties": 
       [ 
        { 
         "name": "URL", 
         "value": "http://172.17.0.3:1026/v2/entities" 
        }, 
        { 
         "name": "contentType", 
         "value": "application/json" 
        }, 
        { 
         "name": "formatter", 
         "value": "json_ngsi" 
        }, 
        { 
         "name": "delimiter", 
         "value": ";" 
        }, 
        { 
         "name": "tagDataSeparator", 
         "value": "=" 
        }, 
        { 
         "name": "dateFormat", 
         "value": "dd/MM/yyyy-HH:mm:ss" 
        } 
       ], 
       "type": "Rest", 
       "createdDate": "Wed Feb 22 2017" 
      }, 
      { 
       "events": 
       [ 
        { 
         "name": "TemperatureContextUpdate" 
        } 
       ], 
       "name": "Consumer_File", 
       "properties": 
       [ 
        { 
         "name": "filename", 
         "value": "/home/work/Documents/test.txt" 
        }, 
        { 
         "name": "formatter", 
         "value": "json" 
        }, 
        { 
         "name": "delimiter", 
         "value": ";" 
        }, 
        { 
         "name": "tagDataSeparator", 
         "value": "=" 
        } 
       ], 
       "type": "File", 
       "createdDate": "Wed Feb 22 2017" 
      } 
     ], 
     "epas": 
     [ 
      { 
       "inputEvents": 
       [ 
        { 
         "instanceSelectionPolicy": "First", 
         "alias": "TemperatureContextUpdate", 
         "filterExpression": "TemperatureContextUpdate.temperature>=20", 
         "name": "TemperatureContextUpdate", 
         "consumptionPolicy": "Consume" 
        } 
       ], 
       "derivedEvents": 
       [ 
        { 
         "name": "Out_TemperatureContextUpdate", 
         "reportParticipants": false, 
         "expressions": 
         { 
          "Cost": "TemperatureContextUpdate.Cost", 
          "Certainty": "TemperatureContextUpdate.Certainty", 
          "OccurrenceTime": "TemperatureContextUpdate.OccurrenceTime", 
          "Duration": "TemperatureContextUpdate.Duration", 
          "entityId": "TemperatureContextUpdate.entityId", 
          "ExpirationTime": "TemperatureContextUpdate.ExpirationTime", 
          "chaud": "true", 
          "entityType": "TemperatureContextUpdate.entityType", 
          "temperature": "TemperatureContextUpdate.temperature" 
         } 
        } 
       ], 
       "evaluationPolicy": "Immediate", 
       "name": "EPA_Change", 
       "internalSegmentation": 
       [ 
       ], 
       "context": "always", 
       "epaType": "Basic", 
       "cardinalityPolicy": "Single", 
       "localPlacement": true, 
       "createdDate": "Wed Feb 22 2017", 
       "computedVariables": 
       [ 
       ] 
      } 
     ], 
     "optimization": 
     { 
     }, 
     "contexts": 
     { 
      "temporal": 
      [ 
       { 
        "terminators": 
        [ 
        ], 
        "neverEnding": true, 
        "atStartup": true, 
        "name": "always", 
        "type": "TemporalInterval", 
        "createdDate": "Wed Feb 22 2017", 
        "initiators": 
        [ 
        ] 
       } 
      ], 
      "segmentation": 
      [ 
      ], 
      "composite": 
      [ 
      ] 
     }, 
     "producers": 
     [ 
     ] 
    } 
} 

私はところでそれが正しく私のディレクトリに作成して、私は定義を変更するたびに変更され、最初の更新は受信ですが、このファイルは常に空である間にファイルを作成しよう。残りのペイロードは、条件が決して引き起こされないように送信されません。

私が送っペイロード:

{ 
"subscriptionId": "51c04a21d714fb3b37d7d5a7", 
"data": 
[ { 
"id": "temp1", 
"type": "Temperature", 
"temperature": { 
    "type":"integer", 
    "value": 28, 
    "metadata":{} 
}, 
"chaud": { 
    "type":"boolean", 
    "value": false, 
    "metadata":{} 
}, 
    "Certainty": { 
     "value": "1", 
     "type": "Float" 
    }, 
    "Cost": { 
     "value": "0", 
     "type": "Float" 
    }, 
    "Name": { 
     "value": "", 
     "type": "String" 
    }, 
    "EventSource": { 
     "value": "", 
     "type": "String" 
    }, 
    "Duration": { 
     "value": "0", 
     "type": "Float" 
    } 
} 
] 
} 

ログcatalina.out:

INFOS:開始イベントメッセージボディリーダー févr。 23、2017 11:23:35 AM com.ibm.hrl.proton.webapp.providers.EventJSONNgsiMessageReader parseVTwoFormat INFOS:イベント:TemperatureContextUpdate févr。 23、2017 11:23:35 AM com.ibm.hrl.proton.webapp.providers.EventJSONNgsiMessageReader readFrom INFOS:終了したイベント・メッセージ・ボディー・リーダー févr。 23、2017 11:23:35 AM com.ibm.hrl.proton.webapp.providers.EventJSONNgsiMessageReader readFrom INFOS:EventJSONNgsiMessageReader:読み取りイベントTemperatureContextUpdate; entityId = temp1; EventId = ba868559-7589-4720-ab75-658b920a3f14; chaud = false; entityType =温度;クロノン=ヌル;温度= 28; DetectionTime = 1487845415319;名前=;確信度= 1;コスト= 0; EventSource =; OccurrenceTime = null;継続時間= 0;注釈=; ExpirationTime = null;ブローカーから... févr。 23,2207 11:23:35 AM com.ibm.hrl.proton.webapp.resources.EventResource submitNewEvent INFOS:submitNewEventから開始 févr。 23、2017年11時23分35秒AM com.ibm.hrl.proton.webapp.resources.EventResource submitNewEvent INFOS:だからプロトンランタイムに送信されたイベント...

私の問題である任意のアイデア?

ありがとうございました。

答えて

0

あなたの間違いは、空の名前のイベントを送信することです。 同じ情報が入力に重複していることは申し訳ありませんが、これはProtonとOrionの統合から生まれたものです。それぞれは異なる形式の情報を必要とし、その違いはスムーズには修正されませんでした。

あなたはこのように、入力されたイベント名を含める必要が送るべき入力:name属性は、現在値「TemperatureContextUpdate」を持っている

こと

{ 
"subscriptionId": "51c04a21d714fb3b37d7d5a7", 
"data": 
[ { 
"id": "temp1", 
"type": "Temperature", 
"temperature": { 
    "type":"integer", 
    "value": "28", 
    "metadata":{} 
}, 
"chaud": { 
    "type":"boolean", 
    "value": false, 
    "metadata":{} 
}, 
    "Certainty": { 
     "value": "1", 
     "type": "Float" 
    }, 
    "Cost": { 
     "value": "0", 
     "type": "Float" 
    }, 
    "Name": { 
     "value": "TemperatureContextUpdate", 
     "type": "String" 
    }, 
    "EventSource": { 
     "value": "", 
     "type": "String" 
    }, 
    "Duration": { 
     "value": "0", 
     "type": "Float" 
    } 
} 
] 
} 

注意

関連する問題