2017-02-23 5 views
0

CEP를 사용하여 저는 Proton과 Orion 간의 기본적인 의사 소통을하려고합니다. 나는 단순히 온도 값이 20보다 크거나 같으면 양성자가 오리온으로부터 온도의 통지를 받고 온도 값이 20보다 크거나 같으면 페이로드를 돌려 보내길 원한다.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": 
     [ 
     ] 
    } 
} 

나는 BTW 제대로 내 디렉토리에 생성하고 내가 정의를 변경할 때마다 변경되고, 첫 번째 업데이트는받을 수 있지만이 파일은 항상 비어있는 상태에서 파일을 만들어보십시오. 나머지 페이로드는 절대로 조건이 실행되지 않는 것처럼 보내지 않습니다.

페이로드 내가 보내

{ 
"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 정보 : 이벤트 : 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 = 거짓; 엔티티 유형 = 온도; Chronon = null; 온도 = 28; DetectionTime = 1487845415319; 이름 =; 확실성 = 1; 비용 = 0; EventSource =; OccurrenceTime = null; 지속 시간 = 0; 주석 =; ExpirationTime = null; 브로커에서 ... févr. 23, 2017 11:23:35 AM com.ibm.hrl.proton.webapp.resources.EventResource submitNewEvent 정보 : submitNewEvent 시작 févr. 23, 2017 오전 11시 23분 35초 com.ibm.hrl.proton.webapp.resources.EventResource submitNewEvent INFOS : 양성자 런타임에 보낸 이벤트 ...

그래서 어떤 생각이 내 문제가 무엇입니까?

감사합니다.

답변

0

실수로 이름이 비어있는 일정을 보내는 것입니다. 동일한 정보가 입력 내용에 중복되어 유감스럽게 생각합니다. 그러나 Proton과 Orion 간의 통합으로 인해 정보가 중복되고 차이가 원활하게 패치되지 않았습니다.

이 같은 입력 이벤트 이름을 포함해야 보내야 입력 : 이름 속성이 현재 값 "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" 
    } 
} 
] 
}