==== control ==== Set a field value or output status === Description === https://api.eze.io/v1/control/{serial}/{command}/[additional commands] Directly control a field value or output status of a controller. Note that this command will generate traffic to the controller, and is therefore rate limited to avoid excessive traffic. The field has to be set as "Writable". The immediate return data is a confirmation from the servers that the command was accepted. It is not an acknowledgement that the command(s) were actually received or executed on the controller. If the API key is set up with a callback URI, a separate message will be sent to this URI when the command has been confirmed by the controller. See below for the format of the return messages. === Parameters === | ''serial'' | ezeio serial number (XYZ123) | | ''command'' | Command. See below | === Possible commands: === To set the value of a field: ''field[FIELDNO]=value'' https://api.eze.io/v1/control/XYZ987/field[12]=4711 To set the state of a register: ''register[DEVICENO,REGISTERNO]=value'' https://api.eze.io/v1/control/XYZ987/register[2,34]=56 To set the state of an output, bypassing logic: ''output[OUTPUTNO]=value'' https://api.eze.io/v1/control/XYZ987/output[2]=100 Multiple commands can be used in the same call. === Example usage === Set the value of two fields: https://api.eze.io/v1/control/XYZ987/field[12]=888/field[5]=999 == Log flush == Setting the value of a field will also cause any pending buffered log samples to be sent to the servers. This only applies to the control field command. Setting register or output value does not cause a log flush. Tip: To force a log flush without making any changes to field values, write value 0 to field[0]. This has no effect on any valid field, but will still cause a log flush. === Return value === JSON formatted data //(below examples have whitespaces added for readability)// The immediate server reply (acknowledging receipt of the command on the servers): { "reqtime":"2019-06-16T19:50:18Z", "actions":[ "Set field 12 to 888", "Set field 5 to 999", "Callback URI: https://mydomain.com/mycallbackscript.php" ], "status":"OK", "exec_time":0.011375188827514648 } The callback message from the controller, acknowledging processing of the command: { "apikeyid":10009, "subject":"CONTROL_ACK", "time":"2019-06-16T19:45:52Z", "meta":{ "serial":"XYS-987", "group":2, "accountgroupid":0, "name":"Test controller in lab", "note":"Here is a note", "tzofs":"0" }, "adc":{ "1":2, "2":2, "3":7, "4":2, "5":2, "6":2, "7":2, "8":29977, "Vin":12213, "Vbat":12090, "V5":5106 }, "out":{ "1":0, "2":0, "3":0, "4":0 }, "pos":{ "x":38677889, "y":-121174896, "z":0, "signal":-1 }, "fields":{ "1":{ "name":"Uptime", "unit":"s", "assettag":"uptime", "value":1102790 }, "2":{ "name":"Temp (C)", "unit":"°C", "assettag":"temp", "value":26.6 }, "3":{ "name":"Temp (F)", "unit":"°F", "assettag":"", "value":79.879997 } } }