false true false srv 127.0.0.1 = rest_port 9081 = mqtt_srv 127.0.0.1 = continue false 1 1 1 false false saveConfig true true true true true true true false true true false false false true false false false true 0 true true true true true false false ${mqtt_srv} 1883 3.1 10 false 10 TCP false conn_ true 300 0 0 true false { "sql" : "create stream demo (Temperature bigint, humidity bigint) WITH (FORMAT=\"JSON\", DATASOURCE=\"devices/+/messages\" )" } = ${srv} ${rest_port} /streams POST true false true false Stream demo is created. Assertion.response_data true 16 false false true false { "id": "rule1", "sql": "SELECT * FROM demo WHERE temperature > 20 GROUP BY COUNTWINDOW(5,1) HAVING COUNT(*) > 2", "actions": [ { "log": {} }, { "mqtt": { "server": "tcp://${mqtt_srv}:1883", "topic": "devices/result", "qos": 1, "clientId": "demo_001" } } ] } = ${srv} ${rest_port} /rules POST true false true false Rule rule1 was created Assertion.response_data true 16 true false = ${srv} ${rest_port} /rules/rule1/status GET true false true false $.source_demo_0_records_in_total 0 true false false false true 10 , iot_data.txt false false true shareMode.thread false device_id,temperature,humidity devices/${device_id}/messages 0 false String 1024 {"temperature": ${temperature}, "Humidity" : ${humidity}} true false = ${srv} ${rest_port} /rules/rule1/status GET true false true false $.source_demo_0_records_in_total 10 true false false false $.sink_mqtt_1_0_records_in_total 5 true false false false true false = ${srv} ${rest_port} /rules/rule1 DELETE true false true false Rule rule1 is dropped. Assertion.response_data false 16 false false true false { "id": "rule1", "sql": "SELECT * FROM demo WHERE temperature > 20 GROUP BY COUNTWINDOW(5,2)", "actions": [ { "log": {} }, { "mqtt": { "server": "tcp://${mqtt_srv}:1883", "topic": "devices/result", "qos": 1, "clientId": "demo_001" } } ] } = ${srv} ${rest_port} /rules POST true false true false Rule rule1 was created Assertion.response_data true 16 true false = ${srv} ${rest_port} /rules/rule1/status GET true false true false $.source_demo_0_records_in_total 0 true false false false true 10 , iot_data.txt false false true shareMode.thread false device_id,temperature,humidity devices/${device_id}/messages 0 false String 1024 {"temperature": ${temperature}, "Humidity" : ${humidity}} true false = ${srv} ${rest_port} /rules/rule1/status GET true false true false $.source_demo_0_records_in_total 10 true false false false $.sink_mqtt_1_0_records_in_total 3 true false false false true false = ${srv} ${rest_port} /rules/rule1 DELETE true false true false Rule rule1 is dropped. Assertion.response_data false 16 false false true false { "id": "rule1", "sql": "SELECT * FROM demo WHERE temperature > 20 GROUP BY COUNTWINDOW(5) HAVING COUNT(*) > 2", "actions": [ { "log": {} }, { "mqtt": { "server": "tcp://${mqtt_srv}:1883", "topic": "devices/result", "qos": 1, "clientId": "demo_001" } } ] } = ${srv} ${rest_port} /rules POST true false true false Rule rule1 was created Assertion.response_data true 16 true false = ${srv} ${rest_port} /rules/rule1/status GET true false true false $.source_demo_0_records_in_total 0 true false false false true 10 , iot_data.txt false false true shareMode.thread false device_id,temperature,humidity devices/${device_id}/messages 0 false String 1024 {"temperature": ${temperature}, "Humidity" : ${humidity}} true false = ${srv} ${rest_port} /rules/rule1/status GET true false true false $.source_demo_0_records_in_total 10 true false false false $.sink_mqtt_1_0_records_in_total 2 true false false false true false = ${srv} ${rest_port} /rules/rule1 DELETE true false true false Rule rule1 is dropped. Assertion.response_data false 16 true false = ${srv} ${rest_port} /streams/demo DELETE true false true false Stream demo is dropped. Assertion.response_data false 16 1000 continue false 10 1 1 false false saveConfig true true true true true true true false true true false false false true false false false true 0 true true true true true , countwindow_data.txt false false true shareMode.thread false count ${mqtt_srv} 1883 3.1 10 false 10 TCP false conn_ true 300 0 0 devices/result 0 false true number of received messages 1 import net.sf.json.JSONArray; import net.sf.json.JSONObject; String response = SampleResult.getResponseDataAsString(); JSONArray jsonArr = JSONArray.fromObject(response); int count = Integer.parseInt(vars.get("count")); if(count != jsonArr.size()) { Failure = true; FailureMessage = "The count window size is not correct."; return; } for(int j = 0; j < jsonArr.size(); j++) { int temperature = jsonArr.getJSONObject(j).getInt("Temperature"); if(temperature <= 20) { Failure = true; FailureMessage = "The temperature should not be less than 20."; break; } } false