Difference between revisions of "Changelog"
(Created page with " <b>Using the old firmware R083, you could still use the old Rules and commands</b> ==Rules Commands== Note: mii is a random key that is generated by the client and should be...") |
m (Updated Commands - R085) |
||
(2 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
+ | == Authentication == | ||
+ | In order to connect to the webserver - first specify a web-interface url, then the portid - 7681 followed by web-interface login password.<br /> | ||
− | < | + | <webinterfaceUrl>:<portid>/<Login>/<password><br /> |
− | == | + | Example ws://10.10.10.254:7681/root/frank<br /> |
− | Note: mii is a random key that is generated by the client and should be used for matching the received response to the corresponding request. Maximum string length of mii is 32 characters. A unique mii should be used for each request | + | |
− | === | + | == Device Commands == |
− | Command to get the list of | + | Note: mii is a random key that is generated by the client and should be used for matching the received response to the corresponding request.<br /> |
− | + | Maximum string length of mii is 32 characters. A unique mii should be used for each request<br /> | |
+ | |||
+ | === Devicelist === | ||
+ | |||
+ | Command to get the list of sensors and other smart devices associated with the almond. <br /> | ||
+ | |||
+ | Request | ||
{ | { | ||
− | + | "mii":"<random key>", | |
− | + | "cmd":"devicelist" | |
} | } | ||
− | + | ||
− | Response | + | Response |
− | { "mii":"<random key>","commandtype":" | + | { |
− | + | "mii":"<random key>","commandtype":"devicelist","data" : {"1":{"devicename":"ContactSwitch #1","friendlydevicetype":"ContactSwitch","devicetype":"12","deviceid":"1","location":"Default","devicevalues": | |
− | + | {"1": {"index":"1","name":"STATE","value":"true"},"2":{"index":"2","name":"LOW BATTERY","value":"0"},"3":{"index":"3","name":"TAMPER","value":"true"}}},"2":{"devicename":"BinarySwitch | |
− | + | #2","friendlydevicetype":"BinarySwitch","devicetype":"1","deviceid":"2","location":"Default","devicevalues":{"1":{"index":"1","name":"SWITCH BINARY","value":"true"}}}} | |
− | + | } | |
− | + | ||
− | + | === Setdeviceindex === | |
− | } | + | Command to set the device index value without timeout. <br /> |
− | === | + | |
− | Command to | + | Request |
− | Request | + | |
{ | { | ||
"mii":"<random key>", | "mii":"<random key>", | ||
− | "cmd":" | + | "cmd":"setdeviceindex", |
− | " | + | "devid":"<device id>", |
− | + | "index":"<deviceindex>", | |
+ | "value":"<indexvalue>" | ||
+ | } | ||
+ | |||
Response<br /> | Response<br /> | ||
Success<br /> | Success<br /> | ||
{ | { | ||
− | "mii":"<random key>","commandtype":" | + | "mii":"<random key>","commandtype":"setdeviceindex","success":"true","data":{"devid":"<deviceid>","index":"<deviceindex>","value":"<indexvalue>"} |
− | } | + | }<br /> |
− | <br /> | + | |
Failure<br /> | Failure<br /> | ||
{ | { | ||
− | "mii":"<random key>","commandtype":" | + | "mii":"<random key>","commandtype":"setdeviceindex",:"success":"false"} |
} | } | ||
<br /> | <br /> | ||
Example<br /> | Example<br /> | ||
− | In the following example, | + | In the following example, the value of index 1 is set to ‘true’ for device id 2.<br /> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
{ | { | ||
− | "mii":" | + | "mii":"jdnbc", |
+ | "cmd":"setdeviceindex", | ||
+ | "devid":"2", | ||
+ | "index":"1", | ||
+ | "value":"true", | ||
} | } | ||
− | <br /> | + | Response <br /> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
{ | { | ||
− | "mii":" | + | "mii":"jdnbc","commandtype":"setdeviceindex","success":"true","data":{"devid":"2","index":"1","value":"true"} |
− | + | }<br /> | |
− | + | ||
− | + | ===Getdeviceindex=== | |
− | + | Command to get the value of a device index. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | } | + | |
− | + | ||
− | + | ||
− | <br /> | + | |
− | === | + | |
− | Command to | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
Request | Request | ||
{ | { | ||
− | + | "mii":"<random key>", | |
− | + | "cmd":"getdeviceindex", | |
− | + | "devid":"<deviceid>", | |
− | + | "index":"<deviceindex>" | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | |||
Response<br /> | Response<br /> | ||
Success | Success | ||
{ | { | ||
− | "mii":"<random key>", "commandtype":" | + | "mii":"<random key>","commandtype":"getdeviceindex","success":"true","data":{"devid":"<deviceid>","index":"<deviceindex>","value":"<indexvalue>"} |
} | } | ||
Failure | Failure | ||
− | + | { | |
− | + | "mii":"<random key>","commandtype":"getdeviceindex","success":"false" | |
− | + | } | |
Example | Example | ||
− | In the following example, | + | In the following example, value of index 1 is retrieved for device id 2. |
− | { | + | { |
− | + | "mii":"jdnbc", | |
− | + | "cmd":"getdeviceindex", | |
− | + | "devid":"2", | |
− | + | "index":"1" | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | |||
Response | Response | ||
− | { | + | { |
− | "mii":" | + | "mii":"jdnbc","commandtype":"getdeviceindex","success":"true","data":{"devid":"2","index":"1","value":"false"} |
} | } | ||
− | + | ||
− | === | + | ===Editdevicename=== |
− | Command to | + | Command to edit name and location of a device.<br /> |
− | Request | + | Request<br /> |
− | { | + | { |
− | "mii":"<random key>", | + | "mii":"<random key>", |
− | "cmd":" | + | "cmd":"editdevicename", |
− | " | + | "devid":"6", |
− | + | "name":"newswitchsss", | |
− | + | "location":"default" | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | " | + | |
− | " | + | |
} | } | ||
Response<br /> | Response<br /> | ||
Success | Success | ||
− | { | + | { |
− | "mii":"<random key>","commandtype":" | + | "mii":"<random key>","commandtype":"editdevicename","success":"true" |
} | } | ||
Failure | Failure | ||
− | |||
− | |||
− | |||
− | |||
− | |||
{ | { | ||
− | + | "mii":"<random key>","commandtype":"editdevicename","success":"false" | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | + | ||
− | + | ===Updatealmondmode=== | |
− | + | Command to change the almond mode.<br /> | |
− | + | Request<br /> | |
− | + | { | |
− | === | + | "mii":"<random key>", |
− | Command to | + | "cmd":"updatealmondmode", |
− | Request | + | "mode":"<mode i.e. 2/3>", |
− | { | + | "emailid":"<email id>" |
− | "mii":"<random key>", | + | |
− | "cmd":" | + | |
− | " | + | |
− | " | + | |
} | } | ||
Response<br /> | Response<br /> | ||
Success | Success | ||
{ | { | ||
− | "mii":"<random key>", "commandtype":" | + | "mii":"<random key>","commandtype":"updatealmondmode","success":"true","data":{"mode":"2","emailid":"swetha.reddy@securifi.com"} |
} | } | ||
<br /> | <br /> | ||
Failure | Failure | ||
− | + | { | |
− | + | "mii":"<random key>","commandtype":"updatealmondmode","success":"false" | |
+ | } | ||
<br /> | <br /> | ||
− | + | ==Rules Commands== | |
− | + | Note: mii is a random key that is generated by the client and should be used for matching the received response to the corresponding request. Maximum string length of mii is 32 characters. A unique mii should be used for each request.<br /> | |
− | { | + | ===Ruleslist=== |
− | + | Command to get the list of existing rules.<br /><br /> | |
− | + | Request:<br /> | |
− | + | {“CommandType":"RuleList","MobileInternalIndex":"123"} | |
− | + | <br /> | |
− | } | + | |
+ | Response:<br /> | ||
+ | {"CommandType":"RuleList" ,"Rules":[{"ID":"1","Name":"12346","Valid":"1","Triggers":[{"Type":"EventTrigger","EventType":"AlmondModeUpdated","ID":"1","Grouping":"AND","Condition":"eq","Validation":"true","Value":"home"}, | ||
+ | { "Type":"DeviceTrigger","ID":"1","Index":"1","Grouping":"AND","Validation":"true","Condition":"eq","Value":"false"}],"Results":[{"Type":"EventResult","EventType":"AlmondModeUpdated","ID":"1","PreDelay":"0", | ||
+ | "Validation":"true","Value":"away"},{"Type":"DeviceResult","ID":"2","Index":"1","PreDelay":"0","Validation":"true","Value":"false"}]}]} | ||
<br /> | <br /> | ||
− | + | ||
+ | ===Addrule=== | ||
+ | Command to create a new rule.<br /> | ||
+ | Request<br /> | ||
+ | { | ||
+ | "MobileInternalIndex": "111", | ||
+ | "CommandType": "AddRule", | ||
+ | "Name": "MYRULE", | ||
+ | "Valid":"true", | ||
+ | "Triggers": [ | ||
{ | { | ||
− | " | + | "Type": "DeviceTrigger", |
+ | "ID": "1", | ||
+ | "Index": "1", | ||
+ | "Value": "true", | ||
+ | "Grouping": "AND", | ||
+ | "Condition": "eq", | ||
+ | "Validation": "true" | ||
+ | }, | ||
+ | { | ||
+ | "Type": "EventTrigger", | ||
+ | "ID": "1", | ||
+ | "EventType": "AlmondModeUpdated", | ||
+ | "value": "home", | ||
+ | "Grouping": "AND", | ||
+ | "Condition": "eq" | ||
} | } | ||
− | + | ], | |
− | + | "Results": [ | |
− | + | { | |
− | { | + | "Type": "DeviceResult", |
− | " | + | "ID": "2", |
− | " | + | "Index": "1", |
− | " | + | "Value": "true", |
− | + | "PreDelay": "10" | |
− | + | }, | |
− | + | ||
− | + | ||
{ | { | ||
− | " | + | "Type": "EventResult", |
+ | "ID": "1", | ||
+ | "EventType": "AlmondModeUpdated", | ||
+ | "Value": "away", | ||
+ | "PreDelay": "0" | ||
} | } | ||
− | + | ] | |
− | + | }<br /><br /> | |
− | + | ||
− | <br /> | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | <br /> | + | |
Response<br /> | Response<br /> | ||
+ | |||
{ | { | ||
− | " | + | "CommandType":"AddRule", |
+ | "Success":"true", | ||
+ | "MobileInternalIndex":"111", | ||
+ | "ReasonCode":"1" | ||
} | } | ||
<br /> | <br /> | ||
− | + | ||
− | + | ===Updaterule=== | |
− | === | + | Command to update an existing rule.<br /> |
− | Command to | + | |
Request<br /> | Request<br /> | ||
+ | { | ||
+ | "MobileInternalIndex": "111", | ||
+ | "CommandType": "UpdateRule", | ||
+ | "Name": "UPATERULE", | ||
+ | "Valid":"true", | ||
+ | "ID": "1", | ||
+ | "Triggers": [ | ||
{ | { | ||
− | + | "Type": "DeviceTrigger", | |
− | + | "ID": "1", | |
− | + | "Index": "1", | |
− | + | "Value": "true", | |
− | + | "Grouping": "AND", | |
− | + | "Condition": "eq" | |
− | + | }, | |
− | + | ||
− | } | + | |
− | + | ||
− | + | ||
{ | { | ||
− | " | + | "Type": "EventTrigger", |
+ | "ID": "1", | ||
+ | "EventType": "AlmondModeUpdated", | ||
+ | "Value": "home", | ||
+ | "Grouping": "AND", | ||
+ | "Condition": "eq" | ||
} | } | ||
− | + | ], | |
− | + | "Results": [ | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
{ | { | ||
− | " | + | "Type": "DeviceResult", |
+ | "ID": "2", | ||
+ | "Index": "1", | ||
+ | "Value": "true", | ||
+ | "PreDelay": "10" | ||
+ | }, | ||
+ | { | ||
+ | "Type": "EventResult", | ||
+ | "ID": "1", | ||
+ | "EventType": "AlmondModeUpdated", | ||
+ | "Value": "away", | ||
+ | "PreDelay": "10" | ||
} | } | ||
− | + | ] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
+ | |||
+ | <br /> | ||
Response<br /> | Response<br /> | ||
− | |||
{ | { | ||
− | " | + | "CommandType":"UpdateRule", |
+ | "Success":"true", | ||
+ | "MobileInternalIndex":"111", | ||
+ | "ReasonCode":"1" | ||
} | } | ||
− | + | <br /> | |
− | + | ||
− | + | ===Removerule=== | |
− | + | Command to remove an existing rule.<br /> | |
− | + | Request<br /> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
{ | { | ||
− | " | + | "CommandType": "RemoveRule", |
− | + | "Rules": { | |
− | + | "ID": "1" | |
− | + | }, | |
− | + | "MobileInternalIndex": "111" | |
− | + | ||
− | " | + | |
− | " | + | |
− | + | ||
− | + | ||
− | + | ||
− | " | + | |
} | } | ||
<br /> | <br /> | ||
Response<br /> | Response<br /> | ||
− | |||
{ | { | ||
− | " | + | "CommandType":"RemoveRule", |
+ | "Success":"true", | ||
+ | "MobileInternalIndex":"111", | ||
+ | "ReasonCode":"0" | ||
} | } | ||
− | |||
− | |||
− | |||
<br /> | <br /> | ||
− | === | + | |
− | Command to | + | |
− | Request | + | ===Removeallrules=== |
− | { | + | Command to remove all rules.<br /> |
− | " | + | Request<br /> |
− | " | + | { |
− | + | "CommandType":"RemoveAllRules", | |
− | + | "MobileInternalIndex":"111" | |
− | + | ||
− | + | ||
− | + | ||
} | } | ||
<br /> | <br /> | ||
Response<br /> | Response<br /> | ||
− | |||
{ | { | ||
− | + | "CommandType":"RemoveAllRules", | |
− | + | "Success":"true", | |
− | + | "MobileInternalIndex":"111", | |
− | + | "ReasonCode":"0" | |
− | + | } | |
− | === | + | <br /> |
− | Command to | + | |
− | Request | + | |
− | { | + | ===Validaterule=== |
− | + | Command to validate an existing rule.<br /> | |
− | + | Request<br /> | |
− | + | { | |
− | + | "CommandType":"ValidateRule", | |
+ | "ID":"1", | ||
+ | "Value":"true" | ||
+ | "MobileInternalIndex":"111" | ||
} | } | ||
<br /> | <br /> | ||
Response<br /> | Response<br /> | ||
− | |||
{ | { | ||
− | " | + | "CommandType":"ValidateRule", |
+ | "MobileInternalIndex":"111", | ||
+ | "ReasonCode":"0", | ||
+ | "Success":"false", | ||
+ | "Data":{ | ||
+ | "Value":"true", | ||
+ | "ID":"1" | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
+ | <br /> | ||
− | == | + | |
− | Command to | + | ==ClientList== |
+ | Command to get clientlist.<br/> | ||
Request | Request | ||
{ | { | ||
− | + | "MobileInternalIndex":"<random key>", | |
− | + | "CommandType":"ClientList" | |
− | + | ||
} | } | ||
+ | |||
Response | Response | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{ | { | ||
− | + | "MobileInternalIndex":"<random key>", | |
− | + | "CommandType":"ClientList", | |
− | + | "Success":"true", | |
+ | "Clients":[ | ||
+ | { | ||
+ | "ID":"1", | ||
+ | "Name":"iphone_4s", | ||
+ | "Connection":"wireless", | ||
+ | "MAC":"other", | ||
+ | "Type":"other", | ||
+ | "LastKnownIP":"10.2.2.11", | ||
+ | "Active":"false", | ||
+ | "UseAsPresence":"true", | ||
+ | "LastActiveEpoch":"1433920922", | ||
+ | "Wait":"6" | ||
+ | }, | ||
+ | { | ||
+ | "ID":"2", | ||
+ | "Name":"buildserver.lan", | ||
+ | "Connection":"wired", | ||
+ | "MAC":"d8:50:e6:54:1b:9c", | ||
+ | "Type":"other", | ||
+ | "LastKnownIP":"10.10.10.1", | ||
+ | "Active":"true", | ||
+ | "UseAsPresence":"false", | ||
+ | "LastActiveEpoch":"1433920922", | ||
+ | "Wait":"6" | ||
+ | } | ||
+ | ] | ||
} | } | ||
− | + | ||
− | + | Note - Success Tag in response:<br/> | |
− | + | If the Almond is in AP mode or Range Extender mode then Success tag will be set to ‘false’.<br/> | |
− | + | ||
− | <br/> | + | ===UpdateClient=== |
− | === | + | Command to Update the data of a client. <br/> |
− | Command to | + | ID - Clientid <br/> |
− | Request | + | Name - name of the client<br/> |
+ | Connection - wired/wireless<br/> | ||
+ | Type - pc | ||
+ | laptop | ||
+ | tablet | ||
+ | smartphone | ||
+ | ipod | ||
+ | ipad | ||
+ | iphone | ||
+ | mac | ||
+ | printer | ||
+ | router_switch | ||
+ | hub | ||
+ | tv | ||
+ | chromecast | ||
+ | appleTV | ||
+ | android_stick | ||
+ | camera | ||
+ | nest | ||
+ | other | ||
+ | |||
+ | Use As Presence - true/false<br/> | ||
+ | Request<br/> | ||
{ | { | ||
− | " | + | "MobileInternalIndex":"<random key>", |
− | " | + | "CommandType":"UpdateClient", |
− | " | + | "Clients":{ |
− | + | "ID":"2", | |
+ | "Name":"device1", | ||
+ | "Connection":"wired", | ||
+ | "MAC":"00:17:88:0a:04:41", | ||
+ | "Type":"tv", | ||
+ | "LastKnownIP":"10.2.2.11", | ||
+ | "Active":"false", | ||
+ | "UseAsPresence":"false", | ||
+ | "Wait":"6" | ||
+ | |||
+ | } | ||
} | } | ||
+ | |||
Response<br/> | Response<br/> | ||
− | Success | + | Success |
− | + | ||
{ | { | ||
− | " | + | "CommandType":"UpdateClient", |
+ | "MobileInternalIndex":"324", | ||
+ | "Success":"true", | ||
+ | "ReasonCode":"0" | ||
} | } | ||
− | + | Faliure | |
− | + | ||
{ | { | ||
− | " | + | "CommandType":"UpdateClient", |
+ | "MobileInternalIndex":"324", | ||
+ | "Success":"false", | ||
+ | "ReasonCode":"0" | ||
} | } | ||
− | + | ===Remove client=== | |
− | + | command to remove a client.<br/> | |
− | + | ||
− | + | ||
− | === | + | |
− | + | ||
Request | Request | ||
{ | { | ||
− | " | + | "MobileInternalIndex":"<random key>", |
− | " | + | "CommandType":"RemoveClient", |
− | " | + | "Clients":{ |
− | + | "ID":"1", | |
+ | "MAC":"1c:75:08:32:2a:6d" | ||
+ | } | ||
} | } | ||
Response<br/> | Response<br/> | ||
Success | Success | ||
{ | { | ||
− | " | + | "CommandType":"RemoveClient", |
+ | "MobileInternalIndex":"324", | ||
+ | "Success":"true", | ||
+ | "ReasonCode":"0" | ||
} | } | ||
Failure | Failure | ||
− | + | { | |
− | + | "CommandType":"RemoveClient", | |
+ | "MobileInternalIndex":"324", | ||
+ | "Success":"false", | ||
+ | "ReasonCode":"0" | ||
+ | } | ||
− | === | + | ===Removeallclients=== |
− | Command to | + | Command to remove all clients<br/> |
Request | Request | ||
{ | { | ||
− | " | + | "MobileInternalIndex":"<random key>", |
− | " | + | "CommandType":"RemoveAllClients", |
− | + | ||
− | + | ||
} | } | ||
Response<br/> | Response<br/> | ||
Success | Success | ||
{ | { | ||
− | " | + | "CommandType":"RemoveAllClients", |
+ | "MobileInternalIndex":"324", | ||
+ | "Success":"true", | ||
+ | "ReasonCode":"0" | ||
} | } | ||
Failure | Failure | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{ | { | ||
− | " | + | "CommandType":"RemoveAllClients", |
+ | "MobileInternalIndex":"324", | ||
+ | "Success":"false", | ||
+ | "ReasonCode":"0" | ||
} | } | ||
+ | <br/> | ||
+ | ==ScenesCommands== | ||
+ | Note:mii(MobileInternalIndex) is a random key that is generated by the client and should be used for matching the received response to the corresponding request. Maximum string length of mii is 32 characters. | ||
+ | A unique mii should be used for each request<br/> | ||
− | === | + | ===SceneList=== |
− | Command to | + | Command to retrieve the list of existing Scenes.<br/> |
Request | Request | ||
− | { | + | { |
− | + | "MobileInternalIndex":"<random key>", | |
− | + | "CommandType":"DynamicSceneList" | |
} | } | ||
+ | |||
Response<br/> | Response<br/> | ||
− | + | Note: Active :- Indicates the state of Scene<br/> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
{ | { | ||
− | " | + | "MobileInternalIndex":"<random key>", |
− | " | + | "CommandType":"DynamicSceneList", |
− | " | + | "Scenes":[ |
− | + | { | |
− | + | "ID":"1", | |
− | + | "Name":"Scene1", | |
− | + | "LastActiveEpoch":"1433740885", | |
− | + | "Active":"false", | |
− | + | "SceneEntryList":[ | |
− | + | { | |
− | + | "DeviceID":"2", | |
− | + | "Index":"2", | |
− | + | "Value":"true", | |
+ | "Valid":"false" | ||
+ | }, | ||
+ | { | ||
+ | "DeviceID":"1", | ||
+ | "Index":"2", | ||
+ | "Value":"true", | ||
+ | "Valid":"false" | ||
+ | } | ||
+ | ] | ||
}, | }, | ||
− | + | { | |
− | " | + | "ID":"2", |
− | " | + | "Name":"Scene2", |
− | + | "LastActiveEpoch":"0", | |
− | + | "Active":"false", | |
− | " | + | "SceneEntryList":[ |
− | + | { | |
− | + | "DeviceID":"6", | |
− | + | "Index":"1", | |
− | + | "Value":"true", | |
− | + | "Valid":"false" | |
− | + | }, | |
− | + | { | |
− | + | "DeviceID":"7", | |
− | + | "Index":"1", | |
− | + | "Value":"true", | |
− | + | "Valid":"false" | |
− | + | } | |
− | + | ] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | + | ] | |
− | + | } | |
− | + | ===AddScene=== | |
− | + | Command to add a new Scene.<br/> | |
− | + | Request | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
{ | { | ||
− | " | + | "CommandType":"AddScene", |
− | " | + | "MobileInternalIndex":"324", |
− | " | + | "Scenes":{ |
− | + | "Name":"My_created_scene", | |
− | + | "SceneEntryList":[ | |
− | " | + | { |
− | + | "DeviceID":"1", | |
− | + | "Index":"1", | |
− | + | "Value":"false" | |
− | + | }, | |
− | + | { | |
− | + | "DeviceID":"2", | |
− | + | "Index":"2", | |
− | " | + | "Value":"false" |
− | + | } | |
− | + | ] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
} | } | ||
− | Response | + | Response |
− | {" | + | {"CommandType":"AddScene","MobileInternalIndex":"324","Success":"true","Reason":"0"} |
− | === | + | ===UpdateScene=== |
− | Command to | + | Command to update an existing Scene<br/> |
Request | Request | ||
− | { | + | { |
− | " | + | "CommandType":"UpdateScene", |
− | " | + | "MobileInternalIndex":"324", |
− | " | + | "Scenes":{ |
− | + | "ID":"15", | |
− | + | "Name":"My_created_scene", | |
− | + | "SceneEntryList":[ | |
− | + | { | |
− | + | "DeviceID":"1", | |
− | + | "Index":"1", | |
− | + | "Value":"false" | |
− | + | }, | |
− | + | { | |
− | + | "DeviceID":"2", | |
− | + | "Index":"2", | |
− | + | "Value":"false" | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | + | ] | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | Response<br/> | + | |
− | + | Response | |
− | {" | + | {"CommandType":"UpdateScene","MobileInternalIndex":"324","Success":"true","Reason":"0"} |
− | + | ||
− | {" | + | ===ActivateScene=== |
+ | Command to activate a Scene<br/> | ||
+ | Request | ||
+ | { | ||
+ | "CommandType":"ActivateScene", | ||
+ | "MobileInternalIndex":"324", | ||
+ | "Scenes":{ | ||
+ | "ID":"11" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | Response | ||
+ | {"CommandType":"ActivateScene","MobileInternalIndex":"324","Success":"true","Reason":"0"} | ||
<br/> | <br/> | ||
− | + | ===RemoveScene=== | |
− | + | Command to remove a Scene<br/> | |
− | + | Request | |
− | + | { | |
− | + | "CommandType":"RemoveScene", | |
− | + | "MobileInternalIndex":"324", | |
− | + | "Scenes":{ | |
− | + | "ID":"11" | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | " | + | |
− | " | + | |
− | " | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
} | } | ||
Response | Response | ||
− | {" | + | {"CommandType":"RemoveScene","MobileInternalIndex":"324","Success":"true","Reason":"0"} |
+ | |||
+ | ===RemoveAllScenes=== | ||
+ | Command to remove all Scenes<br/> | ||
+ | Request | ||
+ | { | ||
+ | "CommandType":"RemoveAllScenes", | ||
+ | "MobileInternalIndex":"324" | ||
+ | } | ||
+ | Response | ||
+ | {"CommandType":"RemoveAllScenes","MobileInternalIndex":"324","Success":"true","Reason":"0"} | ||
==Notification and Event Updates== | ==Notification and Event Updates== | ||
+ | ===SensorUpdate=== | ||
+ | When any index value is changed the following update will be received.<br/> | ||
+ | {"commandtype":"SensorUpdate","data":{"<device id>":{"<index id>":{"index":"<index id>","name":"<index name>","value":"<index value>"}}}} | ||
+ | Example | ||
+ | {"commandtype":"SensorUpdate","data":{"25":{"3":{"index":"3","name":"TAMPER","value":"false"}}}} | ||
− | === | + | ===DeviceAdded=== |
− | When a new | + | When a new device is added the following update will be received. |
− | {"commandtype":" | + | {"commandtype":"DeviceAdded","data":{"<device id>":{"devicename":"<device name>","friendlydevicetype":"<friendly device type name >","devicetype":"<device type id >","deviceid":"<device id >","location":" |
+ | <location>","devicevalues":{"1":{"index":"<index num>","name":"<index name >","value":"<index val>"},"2":{"index":"<index num>","name":"<index name>","value":"<index val>"},"3":{"index":"<index num>","name":"<index | ||
+ | name>","value":"<index val>"}}}}} | ||
+ | Example: | ||
+ | {"commandtype":"DeviceAdded","data":{"27":{"devicename":"ContactSwitch #27","friendlydevicetype":"ContactSwitch","devicetype":"12","deviceid":"27","location":"Default","devicevalues":{"1": | ||
+ | {"index":"1","name":"STATE","value":"true"},"2":{"index":"2","name":"LOW BATTERY","value":"0"},"3":{"index":"3","name":"TAMPER","value":"true"}}}}} | ||
+ | |||
+ | ===DeviceRemoved=== | ||
+ | When a device is removed the following update will be received | ||
+ | {"commandtype":"DeviceRemoved","data":{"<device id>":{"devtype":"<device type>"}}} | ||
Example | Example | ||
− | {"commandtype":" | + | {"commandtype":"DeviceRemoved","data":{"25":{"devtype":"12"}}} |
+ | |||
+ | ===DeviceRemoveAll=== | ||
+ | When all the devices are removed the following update will be received. | ||
+ | {"commandtype":"DeviceRemoveAll"} | ||
+ | |||
+ | ===DeviceUpdated=== | ||
+ | If any device type or index are changed the following update will be received. | ||
+ | {"commandtype":"DeviceUpdated","data":{"<device id>":{"devicename":"<device name>","friendlydevicetype":"<friendly device type name >","devicetype":"<device type id >","deviceid":"<device id >","location":" | ||
+ | <location>","devicevalues":{"1":{"index":"<index num>","name":"<index name >","value":"<index val>"},"2":{"index":"<index num>","name":"<index name>","value":"<index val>"},"3":{"index":"<index num>","name":"<index | ||
+ | name>","value":"<index val>"}}}}} | ||
+ | Example | ||
+ | {"commandtype":"DeviceUpdated","data":{"27":{"devicename":"ContactSwitch #27","friendlydevicetype":"ContactSwitch","devicetype":"12","deviceid":"27","location":"Default","devicevalues":{"1": | ||
+ | {"index":"1","name":"STATE","value":"true"},"2":{"index":"2","name":"LOW BATTERY","value":"0"},"3":{"index":"3","name":"TAMPER","value":"true"}}}}} | ||
+ | |||
+ | ===DynamicRuleAdded=== | ||
+ | |||
+ | When a new rule is added the following update is received. | ||
+ | |||
+ | { | ||
+ | "CommandType": "DynamicRuleAdded", | ||
+ | "Rules": { | ||
+ | "ID": "1", | ||
+ | "Name": "NewRule", | ||
+ | "Valid": "1", | ||
+ | "Triggers": [{ | ||
+ | "Type": "EventTrigger", | ||
+ | "EventType": "AlmondModeUpdated", | ||
+ | "ID": "1", | ||
+ | "Grouping": "AND", | ||
+ | "Condition": "eq", | ||
+ | "Validation": "true", | ||
+ | "Value": "home" | ||
+ | }, { | ||
+ | "Type": "DeviceTrigger", | ||
+ | "ID": "2", | ||
+ | "Index": "1", | ||
+ | "Grouping": "AND", | ||
+ | "Validation": "true", | ||
+ | "Condition": "eq", | ||
+ | "Value": "false" | ||
+ | }], | ||
+ | "Results": [{ | ||
+ | "Type": "DeviceResult", | ||
+ | "ID": "2", | ||
+ | "Index": "1", | ||
+ | "PreDelay": "0", | ||
+ | "Validation": "true", | ||
+ | "Value": "false" | ||
+ | }, { | ||
+ | "Type": "EventResult", | ||
+ | "EventType": "AlmondModeUpdated", | ||
+ | "ID": "1", | ||
+ | "PreDelay": "0", | ||
+ | "Validation": "true", | ||
+ | "Value": "away" | ||
+ | }] | ||
+ | } | ||
+ | } | ||
+ | |||
+ | <br/> | ||
+ | |||
+ | ===DynamicRuleUpdated=== | ||
+ | |||
+ | When an existing rule is modified the following update is received. | ||
+ | { | ||
+ | "CommandType": "DynamicRuleUpdated", | ||
+ | "Rules": { | ||
+ | "ID": "1", | ||
+ | "Name": "123", | ||
+ | "Valid": "1", | ||
+ | "Triggers": [{ | ||
+ | "Type": "EventTrigger", | ||
+ | "EventType": "AlmondModeUpdated", | ||
+ | "ID": "1", | ||
+ | "Grouping": "AND", | ||
+ | "Condition": "eq", | ||
+ | "Validation": "true", | ||
+ | "Value": "home" | ||
+ | }, { | ||
+ | "Type": "DeviceTrigger", | ||
+ | "ID": "2", | ||
+ | "Index": "1", | ||
+ | "Grouping": "AND", | ||
+ | "Validation": "true", | ||
+ | "Condition": "eq", | ||
+ | "Value": "false" | ||
+ | }], | ||
+ | "Results": [{ | ||
+ | "Type": "DeviceResult", | ||
+ | "ID": "2", | ||
+ | "Index": "1", | ||
+ | "PreDelay": "0", | ||
+ | "Validation": "true", | ||
+ | "Value": "false" | ||
+ | }, { | ||
+ | "Type": "EventResult", | ||
+ | "EventType": "AlmondModeUpdated", | ||
+ | "ID": "1", | ||
+ | "PreDelay": "0", | ||
+ | "Validation": "true", | ||
+ | "Value": "away" | ||
+ | }] | ||
+ | } | ||
+ | } | ||
+ | |||
+ | <br/> | ||
+ | |||
+ | ===DynamicRuleRemoved=== | ||
− | |||
When a rule is removed the following update is received. | When a rule is removed the following update is received. | ||
− | {" | + | |
− | + | { | |
− | {" | + | "CommandType":"DynamicRuleRemoved","Rules":{"ID":"1"} |
+ | } | ||
+ | <br/> | ||
+ | |||
+ | ===DynamicAllRulesRemoved=== | ||
+ | |||
+ | When all rules are removed the following update is received. | ||
+ | |||
+ | { | ||
+ | "CommandType":"DynamicAllRulesRemoved" | ||
+ | } | ||
− | === | + | <br/> |
− | + | ||
− | {"commandtype":" | + | ===AlmondModeUpdated=== |
+ | {"commandtype":"AlmondModeUpdated","data":{"<almond mode >":{"emailid":"<email id>"}}} | ||
Example | Example | ||
− | {"commandtype":" | + | {"commandtype":"AlmondModeUpdated","data":{"2":{"emailid":"swetha.reddy@securifi.com"}}} |
+ | |||
+ | ===DynamicClientAdded=== | ||
+ | When a new client is added this update is received. | ||
+ | { | ||
+ | "CommandType":"DynamicClientAdded", | ||
+ | "Clients":{ | ||
+ | "ID":"1", | ||
+ | "Name":"my phone", | ||
+ | "Connection":"wired", | ||
+ | "MAC":"c4:43:6d:c9:ef:05", | ||
+ | "Type":"tv", | ||
+ | "LastKnownIP":"10.10.10.55", | ||
+ | "Active":"false", | ||
+ | "UseAsPresence":"true", | ||
+ | "Wait":"6" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | ===DynamicClientJoined=== | ||
+ | When a client joined network this update is received. | ||
+ | { | ||
+ | "CommandType":"DynamicClientJoined", | ||
+ | "Clients":{ | ||
+ | "ID":"1", | ||
+ | "Name":"my phone", | ||
+ | "Connection":"wired", | ||
+ | "MAC":"c4:43:6d:c9:ef:05", | ||
+ | "Type":"tv", | ||
+ | "LastKnownIP":"10.10.10.55", | ||
+ | "Active":"false", | ||
+ | "UseAsPresence":"true", | ||
+ | "Wait":"6" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | ===DynamicClientLeft=== | ||
+ | When a client leaves the network, following update is received. | ||
+ | { | ||
+ | "CommandType":"DynamicClientLeft", | ||
+ | "Clients":{ | ||
+ | "ID":"1", | ||
+ | "Name":"my phone", | ||
+ | "Connection":"wired", | ||
+ | "MAC":"c4:43:6d:c9:ef:05", | ||
+ | "Type":"tv", | ||
+ | "LastKnownIP":"10.10.10.55", | ||
+ | "Active":"false", | ||
+ | "UseAsPresence":"true", | ||
+ | "Wait":"6" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | ===DynamicClientUpdated=== | ||
+ | When a name change or any changes done to a client this update is received. | ||
+ | |||
+ | { | ||
+ | "CommandType":"DynamicClientUpdated", | ||
+ | "Clients":{ | ||
+ | "ID":"1", | ||
+ | "Name":"my phone", | ||
+ | "Connection":"wired", | ||
+ | "MAC":"c4:43:6d:c9:ef:05", | ||
+ | "Type":"tv", | ||
+ | "LastKnownIP":"10.10.10.55", | ||
+ | "Active":"false", | ||
+ | "UseAsPresence":"true", | ||
+ | "Wait":"6" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | ===DynamicClientRemoved=== | ||
+ | When a client is removed this update is received | ||
+ | {"CommandType":"DynamicClientRemoved","ID":"1","MAC":"c4:43:6d:c9:ef:05"} | ||
+ | |||
+ | ===DynamicAllClientsRemoved=== | ||
+ | When all the clients are removed this update is received | ||
+ | {"CommandType":"DynamicAllClientsRemoved"} | ||
+ | |||
+ | ===DynamicSceneAdded=== | ||
+ | when a new scene is added this update is received. | ||
+ | { | ||
+ | "CommandType":"DynamicSceneAdded", | ||
+ | "Scenes":{ | ||
+ | "ID":"1", | ||
+ | "Name":"My_created_scene", | ||
+ | "LastActiveEpoch":"8295685751190847488", | ||
+ | "Active":"false", | ||
+ | "SceneEntryList":[ | ||
+ | {"DeviceID":"1","Index":"1","Value":"false","Valid":"true"}, | ||
+ | {"DeviceID":"1","Index":"2","Value":"false","Valid":"false"} | ||
+ | ] | ||
+ | } | ||
+ | } | ||
+ | |||
+ | ===DynamicSceneUpdated=== | ||
+ | when any changes are made to existing scene this update is received. | ||
+ | { | ||
+ | "CommandType":"DynamicSceneUpdated", | ||
+ | "Scenes":{ | ||
+ | "ID":"1", | ||
+ | "Name":"My_created_scene", | ||
+ | "LastActiveEpoch":"8295685751190847488", | ||
+ | "Active":"false", | ||
+ | "SceneEntryList":[ | ||
+ | {"DeviceID":"2","Index":"1","Value":"false","Valid":"true"}, | ||
+ | {"DeviceID":"4","Index":"1","Value":"78","Valid":"false"} | ||
+ | ] | ||
+ | } | ||
+ | } | ||
+ | |||
+ | ===DynamicSceneActivated=== | ||
+ | when any scene is activated this update is received. | ||
+ | { | ||
+ | "CommandType":"DynamicSceneActivated", | ||
+ | "Scenes":{ | ||
+ | "ID":"1", | ||
+ | "LastActiveEpoch":"8295685751190847488", | ||
+ | "Active":"true", | ||
+ | } } | ||
+ | |||
+ | ===DynamicSceneRemoved=== | ||
+ | when any scene is removed this update is received. | ||
+ | { | ||
+ | "CommandType":"DynamicSceneRemoved", | ||
+ | "Scenes":{ | ||
+ | "ID":"1" | ||
+ | } | ||
+ | } | ||
− | === | + | ===DynamicAllScenesRemoved=== |
− | + | when all scenes are removed this update is received. | |
− | {" | + | {"CommandType":"DynamicAllScenesRemoved"} |
Latest revision as of 12:38, 30 August 2016
Contents
- 1 Authentication
- 2 Device Commands
- 3 Rules Commands
- 4 ClientList
- 5 ScenesCommands
- 6 Notification and Event Updates
- 6.1 SensorUpdate
- 6.2 DeviceAdded
- 6.3 DeviceRemoved
- 6.4 DeviceRemoveAll
- 6.5 DeviceUpdated
- 6.6 DynamicRuleAdded
- 6.7 DynamicRuleUpdated
- 6.8 DynamicRuleRemoved
- 6.9 DynamicAllRulesRemoved
- 6.10 AlmondModeUpdated
- 6.11 DynamicClientAdded
- 6.12 DynamicClientJoined
- 6.13 DynamicClientLeft
- 6.14 DynamicClientUpdated
- 6.15 DynamicClientRemoved
- 6.16 DynamicAllClientsRemoved
- 6.17 DynamicSceneAdded
- 6.18 DynamicSceneUpdated
- 6.19 DynamicSceneActivated
- 6.20 DynamicSceneRemoved
- 6.21 DynamicAllScenesRemoved
Authentication
In order to connect to the webserver - first specify a web-interface url, then the portid - 7681 followed by web-interface login password.
<webinterfaceUrl>:<portid>/<Login>/<password>
Example ws://10.10.10.254:7681/root/frank
Device Commands
Note: mii is a random key that is generated by the client and should be used for matching the received response to the corresponding request.
Maximum string length of mii is 32 characters. A unique mii should be used for each request
Devicelist
Command to get the list of sensors and other smart devices associated with the almond.
Request
{ "mii":"<random key>", "cmd":"devicelist" }
Response
{ "mii":"<random key>","commandtype":"devicelist","data" : {"1":{"devicename":"ContactSwitch #1","friendlydevicetype":"ContactSwitch","devicetype":"12","deviceid":"1","location":"Default","devicevalues": {"1": {"index":"1","name":"STATE","value":"true"},"2":{"index":"2","name":"LOW BATTERY","value":"0"},"3":{"index":"3","name":"TAMPER","value":"true"}}},"2":{"devicename":"BinarySwitch #2","friendlydevicetype":"BinarySwitch","devicetype":"1","deviceid":"2","location":"Default","devicevalues":{"1":{"index":"1","name":"SWITCH BINARY","value":"true"}}}} }
Setdeviceindex
Command to set the device index value without timeout.
Request
{ "mii":"<random key>", "cmd":"setdeviceindex", "devid":"<device id>", "index":"<deviceindex>", "value":"<indexvalue>" }
Response
Success
{ "mii":"<random key>","commandtype":"setdeviceindex","success":"true","data":{"devid":"<deviceid>","index":"<deviceindex>","value":"<indexvalue>"} }
Failure
{ "mii":"<random key>","commandtype":"setdeviceindex",:"success":"false"} }
Example
In the following example, the value of index 1 is set to ‘true’ for device id 2.
{ "mii":"jdnbc", "cmd":"setdeviceindex", "devid":"2", "index":"1", "value":"true", }
Response
{ "mii":"jdnbc","commandtype":"setdeviceindex","success":"true","data":{"devid":"2","index":"1","value":"true"} }
Getdeviceindex
Command to get the value of a device index. Request
{ "mii":"<random key>", "cmd":"getdeviceindex", "devid":"<deviceid>", "index":"<deviceindex>" }
Response
Success
{ "mii":"<random key>","commandtype":"getdeviceindex","success":"true","data":{"devid":"<deviceid>","index":"<deviceindex>","value":"<indexvalue>"} }
Failure
{ "mii":"<random key>","commandtype":"getdeviceindex","success":"false" }
Example In the following example, value of index 1 is retrieved for device id 2.
{ "mii":"jdnbc", "cmd":"getdeviceindex", "devid":"2", "index":"1" }
Response
{ "mii":"jdnbc","commandtype":"getdeviceindex","success":"true","data":{"devid":"2","index":"1","value":"false"} }
Editdevicename
Command to edit name and location of a device.
Request
{ "mii":"<random key>", "cmd":"editdevicename", "devid":"6", "name":"newswitchsss", "location":"default" }
Response
Success
{ "mii":"<random key>","commandtype":"editdevicename","success":"true" }
Failure
{ "mii":"<random key>","commandtype":"editdevicename","success":"false" }
Updatealmondmode
Command to change the almond mode.
Request
{ "mii":"<random key>", "cmd":"updatealmondmode", "mode":"<mode i.e. 2/3>", "emailid":"<email id>" }
Response
Success
{ "mii":"<random key>","commandtype":"updatealmondmode","success":"true","data":{"mode":"2","emailid":"swetha.reddy@securifi.com"} }
Failure
{ "mii":"<random key>","commandtype":"updatealmondmode","success":"false" }
Rules Commands
Note: mii is a random key that is generated by the client and should be used for matching the received response to the corresponding request. Maximum string length of mii is 32 characters. A unique mii should be used for each request.
Ruleslist
Command to get the list of existing rules.
Request:
{“CommandType":"RuleList","MobileInternalIndex":"123"}
Response:
{"CommandType":"RuleList" ,"Rules":[{"ID":"1","Name":"12346","Valid":"1","Triggers":[{"Type":"EventTrigger","EventType":"AlmondModeUpdated","ID":"1","Grouping":"AND","Condition":"eq","Validation":"true","Value":"home"}, { "Type":"DeviceTrigger","ID":"1","Index":"1","Grouping":"AND","Validation":"true","Condition":"eq","Value":"false"}],"Results":[{"Type":"EventResult","EventType":"AlmondModeUpdated","ID":"1","PreDelay":"0", "Validation":"true","Value":"away"},{"Type":"DeviceResult","ID":"2","Index":"1","PreDelay":"0","Validation":"true","Value":"false"}]}]}
Addrule
Command to create a new rule.
Request
{ "MobileInternalIndex": "111", "CommandType": "AddRule", "Name": "MYRULE", "Valid":"true", "Triggers": [ { "Type": "DeviceTrigger", "ID": "1", "Index": "1", "Value": "true", "Grouping": "AND", "Condition": "eq", "Validation": "true" }, { "Type": "EventTrigger", "ID": "1", "EventType": "AlmondModeUpdated", "value": "home", "Grouping": "AND", "Condition": "eq" } ], "Results": [ { "Type": "DeviceResult", "ID": "2", "Index": "1", "Value": "true", "PreDelay": "10" }, { "Type": "EventResult", "ID": "1", "EventType": "AlmondModeUpdated", "Value": "away", "PreDelay": "0" } ] }
Response
{ "CommandType":"AddRule", "Success":"true", "MobileInternalIndex":"111", "ReasonCode":"1" }
Updaterule
Command to update an existing rule.
Request
{ "MobileInternalIndex": "111", "CommandType": "UpdateRule", "Name": "UPATERULE", "Valid":"true", "ID": "1", "Triggers": [ { "Type": "DeviceTrigger", "ID": "1", "Index": "1", "Value": "true", "Grouping": "AND", "Condition": "eq" }, { "Type": "EventTrigger", "ID": "1", "EventType": "AlmondModeUpdated", "Value": "home", "Grouping": "AND", "Condition": "eq" } ], "Results": [ { "Type": "DeviceResult", "ID": "2", "Index": "1", "Value": "true", "PreDelay": "10" }, { "Type": "EventResult", "ID": "1", "EventType": "AlmondModeUpdated", "Value": "away", "PreDelay": "10" } ] }
Response
{ "CommandType":"UpdateRule", "Success":"true", "MobileInternalIndex":"111", "ReasonCode":"1" }
Removerule
Command to remove an existing rule.
Request
{ "CommandType": "RemoveRule", "Rules": { "ID": "1" }, "MobileInternalIndex": "111" }
Response
{ "CommandType":"RemoveRule", "Success":"true", "MobileInternalIndex":"111", "ReasonCode":"0" }
Removeallrules
Command to remove all rules.
Request
{ "CommandType":"RemoveAllRules", "MobileInternalIndex":"111" }
Response
{ "CommandType":"RemoveAllRules", "Success":"true", "MobileInternalIndex":"111", "ReasonCode":"0"
}
Validaterule
Command to validate an existing rule.
Request
{ "CommandType":"ValidateRule", "ID":"1", "Value":"true" "MobileInternalIndex":"111" }
Response
{ "CommandType":"ValidateRule", "MobileInternalIndex":"111", "ReasonCode":"0", "Success":"false", "Data":{ "Value":"true", "ID":"1" } }
ClientList
Command to get clientlist.
Request
{ "MobileInternalIndex":"<random key>", "CommandType":"ClientList" }
Response
{ "MobileInternalIndex":"<random key>", "CommandType":"ClientList", "Success":"true", "Clients":[ { "ID":"1", "Name":"iphone_4s", "Connection":"wireless", "MAC":"other", "Type":"other", "LastKnownIP":"10.2.2.11", "Active":"false", "UseAsPresence":"true", "LastActiveEpoch":"1433920922", "Wait":"6" }, { "ID":"2", "Name":"buildserver.lan", "Connection":"wired", "MAC":"d8:50:e6:54:1b:9c", "Type":"other", "LastKnownIP":"10.10.10.1", "Active":"true", "UseAsPresence":"false", "LastActiveEpoch":"1433920922", "Wait":"6" } ] }
Note - Success Tag in response:
If the Almond is in AP mode or Range Extender mode then Success tag will be set to ‘false’.
UpdateClient
Command to Update the data of a client.
ID - Clientid
Name - name of the client
Connection - wired/wireless
Type - pc laptop tablet smartphone ipod ipad iphone mac printer router_switch hub tv chromecast appleTV android_stick camera nest other
Use As Presence - true/false
Request
{ "MobileInternalIndex":"<random key>", "CommandType":"UpdateClient", "Clients":{ "ID":"2", "Name":"device1", "Connection":"wired", "MAC":"00:17:88:0a:04:41", "Type":"tv", "LastKnownIP":"10.2.2.11", "Active":"false", "UseAsPresence":"false", "Wait":"6"
} }
Response
Success
{ "CommandType":"UpdateClient", "MobileInternalIndex":"324", "Success":"true", "ReasonCode":"0" }
Faliure
{ "CommandType":"UpdateClient", "MobileInternalIndex":"324", "Success":"false", "ReasonCode":"0" }
Remove client
command to remove a client.
Request
{ "MobileInternalIndex":"<random key>", "CommandType":"RemoveClient", "Clients":{ "ID":"1", "MAC":"1c:75:08:32:2a:6d" } }
Response
Success
{ "CommandType":"RemoveClient", "MobileInternalIndex":"324", "Success":"true", "ReasonCode":"0" }
Failure
{ "CommandType":"RemoveClient", "MobileInternalIndex":"324", "Success":"false", "ReasonCode":"0" }
Removeallclients
Command to remove all clients
Request
{ "MobileInternalIndex":"<random key>", "CommandType":"RemoveAllClients", }
Response
Success
{ "CommandType":"RemoveAllClients", "MobileInternalIndex":"324", "Success":"true", "ReasonCode":"0" }
Failure
{ "CommandType":"RemoveAllClients", "MobileInternalIndex":"324", "Success":"false", "ReasonCode":"0" }
ScenesCommands
Note:mii(MobileInternalIndex) is a random key that is generated by the client and should be used for matching the received response to the corresponding request. Maximum string length of mii is 32 characters.
A unique mii should be used for each request
SceneList
Command to retrieve the list of existing Scenes.
Request
{ "MobileInternalIndex":"<random key>", "CommandType":"DynamicSceneList" }
Response
Note: Active :- Indicates the state of Scene
{ "MobileInternalIndex":"<random key>", "CommandType":"DynamicSceneList", "Scenes":[ { "ID":"1", "Name":"Scene1", "LastActiveEpoch":"1433740885", "Active":"false", "SceneEntryList":[ { "DeviceID":"2", "Index":"2", "Value":"true", "Valid":"false" }, { "DeviceID":"1", "Index":"2", "Value":"true", "Valid":"false" } ] }, { "ID":"2", "Name":"Scene2", "LastActiveEpoch":"0", "Active":"false", "SceneEntryList":[ { "DeviceID":"6", "Index":"1", "Value":"true", "Valid":"false" }, { "DeviceID":"7", "Index":"1", "Value":"true", "Valid":"false" } ] } ] }
AddScene
Command to add a new Scene.
Request
{ "CommandType":"AddScene", "MobileInternalIndex":"324", "Scenes":{ "Name":"My_created_scene", "SceneEntryList":[ { "DeviceID":"1", "Index":"1", "Value":"false" }, { "DeviceID":"2", "Index":"2", "Value":"false" } ] } }
Response
{"CommandType":"AddScene","MobileInternalIndex":"324","Success":"true","Reason":"0"}
UpdateScene
Command to update an existing Scene
Request
{ "CommandType":"UpdateScene", "MobileInternalIndex":"324", "Scenes":{ "ID":"15", "Name":"My_created_scene", "SceneEntryList":[ { "DeviceID":"1", "Index":"1", "Value":"false" }, { "DeviceID":"2", "Index":"2", "Value":"false" } ] } }
Response
{"CommandType":"UpdateScene","MobileInternalIndex":"324","Success":"true","Reason":"0"}
ActivateScene
Command to activate a Scene
Request
{ "CommandType":"ActivateScene", "MobileInternalIndex":"324", "Scenes":{ "ID":"11" } }
Response
{"CommandType":"ActivateScene","MobileInternalIndex":"324","Success":"true","Reason":"0"}
RemoveScene
Command to remove a Scene
Request
{ "CommandType":"RemoveScene", "MobileInternalIndex":"324", "Scenes":{ "ID":"11" } }
Response
{"CommandType":"RemoveScene","MobileInternalIndex":"324","Success":"true","Reason":"0"}
RemoveAllScenes
Command to remove all Scenes
Request
{ "CommandType":"RemoveAllScenes", "MobileInternalIndex":"324" }
Response
{"CommandType":"RemoveAllScenes","MobileInternalIndex":"324","Success":"true","Reason":"0"}
Notification and Event Updates
SensorUpdate
When any index value is changed the following update will be received.
{"commandtype":"SensorUpdate","data":{"<device id>":{"<index id>":{"index":"<index id>","name":"<index name>","value":"<index value>"}}}}
Example
{"commandtype":"SensorUpdate","data":{"25":{"3":{"index":"3","name":"TAMPER","value":"false"}}}}
DeviceAdded
When a new device is added the following update will be received.
{"commandtype":"DeviceAdded","data":{"<device id>":{"devicename":"<device name>","friendlydevicetype":"<friendly device type name >","devicetype":"<device type id >","deviceid":"<device id >","location":" <location>","devicevalues":{"1":{"index":"<index num>","name":"<index name >","value":"<index val>"},"2":{"index":"<index num>","name":"<index name>","value":"<index val>"},"3":{"index":"<index num>","name":"<index name>","value":"<index val>"}}}}}
Example:
{"commandtype":"DeviceAdded","data":{"27":{"devicename":"ContactSwitch #27","friendlydevicetype":"ContactSwitch","devicetype":"12","deviceid":"27","location":"Default","devicevalues":{"1": {"index":"1","name":"STATE","value":"true"},"2":{"index":"2","name":"LOW BATTERY","value":"0"},"3":{"index":"3","name":"TAMPER","value":"true"}}}}}
DeviceRemoved
When a device is removed the following update will be received
{"commandtype":"DeviceRemoved","data":{"<device id>":{"devtype":"<device type>"}}}
Example
{"commandtype":"DeviceRemoved","data":{"25":{"devtype":"12"}}}
DeviceRemoveAll
When all the devices are removed the following update will be received.
{"commandtype":"DeviceRemoveAll"}
DeviceUpdated
If any device type or index are changed the following update will be received.
{"commandtype":"DeviceUpdated","data":{"<device id>":{"devicename":"<device name>","friendlydevicetype":"<friendly device type name >","devicetype":"<device type id >","deviceid":"<device id >","location":" <location>","devicevalues":{"1":{"index":"<index num>","name":"<index name >","value":"<index val>"},"2":{"index":"<index num>","name":"<index name>","value":"<index val>"},"3":{"index":"<index num>","name":"<index name>","value":"<index val>"}}}}}
Example
{"commandtype":"DeviceUpdated","data":{"27":{"devicename":"ContactSwitch #27","friendlydevicetype":"ContactSwitch","devicetype":"12","deviceid":"27","location":"Default","devicevalues":{"1": {"index":"1","name":"STATE","value":"true"},"2":{"index":"2","name":"LOW BATTERY","value":"0"},"3":{"index":"3","name":"TAMPER","value":"true"}}}}}
DynamicRuleAdded
When a new rule is added the following update is received.
{ "CommandType": "DynamicRuleAdded", "Rules": { "ID": "1", "Name": "NewRule", "Valid": "1", "Triggers": [{ "Type": "EventTrigger", "EventType": "AlmondModeUpdated", "ID": "1", "Grouping": "AND", "Condition": "eq", "Validation": "true", "Value": "home" }, { "Type": "DeviceTrigger", "ID": "2", "Index": "1", "Grouping": "AND", "Validation": "true", "Condition": "eq", "Value": "false" }], "Results": [{ "Type": "DeviceResult", "ID": "2", "Index": "1", "PreDelay": "0", "Validation": "true", "Value": "false" }, { "Type": "EventResult", "EventType": "AlmondModeUpdated", "ID": "1", "PreDelay": "0", "Validation": "true", "Value": "away" }] } }
DynamicRuleUpdated
When an existing rule is modified the following update is received.
{ "CommandType": "DynamicRuleUpdated", "Rules": { "ID": "1", "Name": "123", "Valid": "1", "Triggers": [{ "Type": "EventTrigger", "EventType": "AlmondModeUpdated", "ID": "1", "Grouping": "AND", "Condition": "eq", "Validation": "true", "Value": "home" }, { "Type": "DeviceTrigger", "ID": "2", "Index": "1", "Grouping": "AND", "Validation": "true", "Condition": "eq", "Value": "false" }], "Results": [{ "Type": "DeviceResult", "ID": "2", "Index": "1", "PreDelay": "0", "Validation": "true", "Value": "false" }, { "Type": "EventResult", "EventType": "AlmondModeUpdated", "ID": "1", "PreDelay": "0", "Validation": "true", "Value": "away" }] } }
DynamicRuleRemoved
When a rule is removed the following update is received.
{ "CommandType":"DynamicRuleRemoved","Rules":{"ID":"1"} }
DynamicAllRulesRemoved
When all rules are removed the following update is received.
{ "CommandType":"DynamicAllRulesRemoved" }
AlmondModeUpdated
{"commandtype":"AlmondModeUpdated","data":{"<almond mode >":{"emailid":"<email id>"}}}
Example
{"commandtype":"AlmondModeUpdated","data":{"2":{"emailid":"swetha.reddy@securifi.com"}}}
DynamicClientAdded
When a new client is added this update is received.
{ "CommandType":"DynamicClientAdded", "Clients":{ "ID":"1", "Name":"my phone", "Connection":"wired", "MAC":"c4:43:6d:c9:ef:05", "Type":"tv", "LastKnownIP":"10.10.10.55", "Active":"false", "UseAsPresence":"true", "Wait":"6" } }
DynamicClientJoined
When a client joined network this update is received.
{ "CommandType":"DynamicClientJoined", "Clients":{ "ID":"1", "Name":"my phone", "Connection":"wired", "MAC":"c4:43:6d:c9:ef:05", "Type":"tv", "LastKnownIP":"10.10.10.55", "Active":"false", "UseAsPresence":"true", "Wait":"6" } }
DynamicClientLeft
When a client leaves the network, following update is received.
{ "CommandType":"DynamicClientLeft", "Clients":{ "ID":"1", "Name":"my phone", "Connection":"wired", "MAC":"c4:43:6d:c9:ef:05", "Type":"tv", "LastKnownIP":"10.10.10.55", "Active":"false", "UseAsPresence":"true", "Wait":"6" } }
DynamicClientUpdated
When a name change or any changes done to a client this update is received.
{ "CommandType":"DynamicClientUpdated", "Clients":{ "ID":"1", "Name":"my phone", "Connection":"wired", "MAC":"c4:43:6d:c9:ef:05", "Type":"tv", "LastKnownIP":"10.10.10.55", "Active":"false", "UseAsPresence":"true", "Wait":"6" } }
DynamicClientRemoved
When a client is removed this update is received
{"CommandType":"DynamicClientRemoved","ID":"1","MAC":"c4:43:6d:c9:ef:05"}
DynamicAllClientsRemoved
When all the clients are removed this update is received
{"CommandType":"DynamicAllClientsRemoved"}
DynamicSceneAdded
when a new scene is added this update is received. { "CommandType":"DynamicSceneAdded", "Scenes":{ "ID":"1", "Name":"My_created_scene", "LastActiveEpoch":"8295685751190847488", "Active":"false", "SceneEntryList":[ {"DeviceID":"1","Index":"1","Value":"false","Valid":"true"}, {"DeviceID":"1","Index":"2","Value":"false","Valid":"false"} ] } }
DynamicSceneUpdated
when any changes are made to existing scene this update is received.
{ "CommandType":"DynamicSceneUpdated", "Scenes":{ "ID":"1", "Name":"My_created_scene", "LastActiveEpoch":"8295685751190847488", "Active":"false", "SceneEntryList":[ {"DeviceID":"2","Index":"1","Value":"false","Valid":"true"}, {"DeviceID":"4","Index":"1","Value":"78","Valid":"false"} ] } }
DynamicSceneActivated
when any scene is activated this update is received.
{ "CommandType":"DynamicSceneActivated", "Scenes":{ "ID":"1", "LastActiveEpoch":"8295685751190847488", "Active":"true", } }
DynamicSceneRemoved
when any scene is removed this update is received.
{ "CommandType":"DynamicSceneRemoved", "Scenes":{ "ID":"1" } }
DynamicAllScenesRemoved
when all scenes are removed this update is received.
{"CommandType":"DynamicAllScenesRemoved"}