| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | //IoT Scanner//This agi script will list the manager cached device list. If the list not exists//It will perform an auto scan instead.//Require the iot librequirelib("iot");function main(){	//Check if the IoT Controller is ready	if (iot.ready() == true){		//List the iot device in cache		var deviceList = iot.list();				if (deviceList.length == 0){			sendResp("No iot device found");			return;		}		//Assuming the first device is an example object with a basic echo function		//When an AJAX request is called to its endpoint		var thisDevice = deviceList[0]; //Change this if your testing device is not the first device on the iot device list		console.log(thisDevice.Name);		//Connect the first device by its uuid		iot.connect(thisDevice.DeviceUUID);		//Find the endpoint with type "none"		var targetEndpoint = undefined;		for (var i = 0; i < thisDevice.ControlEndpoints.length; i++){			var thisEndpoint = thisDevice.ControlEndpoints[i];			if (thisEndpoint.Type == "none"){				//Lets pick this endpoint as an example for toggling				targetEndpoint = thisEndpoint;				break;			}		}		if (targetEndpoint == undefined){			sendResp("This device do not have an endpoint with type \"none\". Try again with another iot device in your network.")			return		}		//Now, we execute this endpoint by the device id and the endpoint name		//exec require {device id, target endppoint name, payload (object)}		//In this case, we can pass anything into the object field as none type endpoint		//will just ignore all the input payload		var results = iot.exec(thisDevice.DeviceUUID, targetEndpoint.Name, {})		//Disconnect the iot device if needed		iot.disconnect(thisDevice.DeviceUUID);		if (results == false){			//There is something wrong with the toggling. See Terminal for output			sendResp("Failed to toggle device. See terminal for more information.")		}else{			//Return what the iot device reply to the responce output			//The results return from iot.exec is an JSON object			HTTP_HEADER = "application/json; charset=utf-8";			sendResp(JSON.stringify(results));		}	}else{		sendResp("IoT Manager not ready");	}}//Run the main functionmain();
 |