{"info":{"_postman_id":"0ca63d64-4c32-4403-b33f-dd16081f0d71","name":"DevicesAPI","description":"<html><head></head><body><p>The device API is built according to the REST scheme, but is significantly simplified.</p>\n<p>GET requests are used to get any information.</p>\n<p>POST requests are used to save or change data. </p>\n<p>POST requests are not available for all data, as some fields are immutable. </p>\n<p>POST requests should be sent as JSON in the body of the message.</p>\n<p>Requests must be interpreted regardless of the closing slash “/”. When interpreted, all request URIs are lowercase.</p>\n<p>When checking the parameter keys to match them, both the internal name and the name passed to the API must be lowercase.</p>\n<p>For example, requests seems like \"/Device/\" or \"/device/\" during parsing will be converted to the following form: \"/device\".</p>\n<p>Request with this form</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /Device» { \"Name\" : «Kitchen light»}\n</code></pre><p>Will be interpret as:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /device» { \"name\" : Kitchen light\" }\n</code></pre><p>All fields of the first-level object, in this case “name”, are additionally transferred to the requests inside the device as parameters, along with the parameters of the GET request, separated by &amp;. This leads to the fact that for the device the list of parameters of the following queries is equivalent:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /device?name=Торшер\nPOST /Device» { «Name» : «Торшер»}\n</code></pre><p>Used query types:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET - get information from endpoint or made simple action  \nPOST - update or set information \nDELETE - remove object or parameter\n</code></pre><p>Answer codes:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>200 - OK  \n400 - Some mistake in query  \n500 - Inner device error\n</code></pre><p><strong>All requests must be sent with Content-Type: Charset = UTF-8!</strong></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"11774062","collectionId":"0ca63d64-4c32-4403-b33f-dd16081f0d71","publishedId":"SzzkddLg","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2020-06-18T12:33:04.000Z"},"item":[{"name":"UDP protocol","item":[{"name":"Alive!","id":"0ed2ca38-ff4d-4ee6-9f87-1816cc8d9e5d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"","description":"<p>This packet is broadcasted every time the device receives power and starts up, or when it goes to the Wi-Fi network. Also, this packet is sent in a situation when the IP address of the device changes.</p>\n<p>The request should be sent after the device is ready to process incoming http (s) requests to it on the IP and port from which the request came.</p>\n<p>Datagram of the message:</p>\n<p><code>LOOKin:Alive! {device id}: {type code}: {power type}: {device IP}: {automation version}: {memory version}</code></p>\n<p>or:</p>\n<p><code>LOOKin:Alive!AA45B78C:03:01:192.154.11.8:0000F234:2000</code></p>\n","urlObject":{"query":[],"variable":[]}},"response":[],"_postman_id":"0ed2ca38-ff4d-4ee6-9f87-1816cc8d9e5d"},{"name":"Discover!","id":"5b925823-5598-4e9e-b6d9-c902f116a223","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>This packet is sent broadcast every time one of the devices needs to get information about the others in the network.</p>\n<p>The device can either initiate this request or receive it.</p>\n<p>If a request is received without a parameter, each device that receives it responds to it.</p>\n<p>If the request is received with a parameter, then the response must be sent only by the device whose ID is specified in the datagram.</p>\n<p>The request should be sent after the device is ready to process incoming http (s) requests to it on the IP and port from which the request came.</p>\n<p>Request datagram:</p>\n<p><code>LOOKin:Discover!</code></p>\n<p>Datagram of the response:<br /><code>LOOKin:Alive!AA45B78C:03:01:192.154.11.8:0000F234:2000</code></p>\n<p>This request can also contain the ID of the searched device in the datagram:</p>\n<p><code>LOOKin:Discover!AA45B78C</code></p>\n<p>Datagram of a response to a request with a parameter:</p>\n<p><code>LOOKin:Alive! {device id}: {type code}: {device IP}</code></p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"5b925823-5598-4e9e-b6d9-c902f116a223"},{"name":"Updated!","id":"eeb9f500-93cd-4f5c-8753-a628063edc10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>This packet is sent broadcast every time when the sensor state of one of the devices changes. This request serves the purpose of updating the state of the sensor for one or more control devices in the network.</p>\n<p>Datagram of the message:</p>\n<p><code>LOOKin:Updated! {device id}: {sensor id}:{event id}:{optional value}</code></p>\n<p>or</p>\n<p><code>LOOK.in:Updated! {device id}: {service name}:{value}:{optional value2}</code></p>\n<p>For example:</p>\n<p><code>LOOKin:Updated!AA45B78C:81:0:1</code></p>\n<p>Please keep in mind that there 2 different Updated! datagram semantics: one for sensors, second one for services.</p>\n<h1 id=\"lookinupdated-for-sensors\">LOOKin:Updated! for sensors</h1>\n<p><code>LOOKin:Updated! {device id}: {sensor id}:{event id}:{value}</code></p>\n<p>Sent while one of device sensors are changed.</p>\n<p>Examples:</p>\n<h4 id=\"if-lookin-remote-catch-ir-signal-will-be-sent-following-udp-packet\">If LOOKin Remote catch IR signal will be sent following UDP packet:</h4>\n<p>If IR signal recognized as NECx (protocol ID = 0x04) protocol with command 00012345</p>\n<p><code>LOOKin:Updated!XXXXXXXX:87:04:00012345</code></p>\n<p>If IR signal didnt recognized</p>\n<p><code>LOOKin:Updated!XXXXXXXX:87:FF</code></p>\n<h4 id=\"if-lookin-remote2-meteo-sensor-changed\">If LOOKin Remote2 meteo sensor changed</h4>\n<p><code>LOOKin:Updated!XXXXXXXX:FF:00:01000154</code></p>\n<p>For a meteorological sensor (ID 0xFE), the value contains the value of temperature and humidity.</p>\n<p>The resulting value 01000154 contains the temperature in hexadecimal * 10, humidity - similarly.</p>\n<p>Temperature: 0x0100 = 256 = 25.6 degrees</p>\n<p>Humidity: 0x0154 = 340 = 34%</p>\n<h1 id=\"lookinupdated-for-services\">LOOKin:Updated! for services</h1>\n<h4 id=\"mqtt-service\">MQTT Service</h4>\n<p>The sensor ID can also be a string, in which case it should be interpreted as the name of the device service.</p>\n<p><code>LOOKin:Updated!AA45B78C:MQTT:2</code></p>\n<p>means that local mqtt client was successeful connected.<br />MQTT statuses:<br />Unactive = 0<br />Connecting = 1<br />Connected = 2<br />Error = 3</p>\n<h4 id=\"data-service\">Data service</h4>\n<p>Data service sended in 2 cases:</p>\n<ol>\n<li>PUT/POST query to /data/ was made</li>\n</ol>\n<p><code>LOOKin:Updated!AA45B78C:Data:</code></p>\n<p>This means that local remote with given UUID was changed. For example changed name of the local remote</p>\n<p>2. PUT/POST query to /data// was made</p>\n<p><code>LOOKin:Updated!AA45B78C:Data::</code></p>\n<p>This means function with given ID was replaced/modified in local remote with given UUID. For example changed/added function with id 01 for local remote with UUID = ABC1</p>\n<p><code>LOOKin:Updated!AA45B78C:Data:ABC1:01</code></p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"eeb9f500-93cd-4f5c-8753-a628063edc10"},{"name":"BLEAction!","id":"b6c36312-425a-4e52-b15d-9a052adf28e2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>This packet is sent broadcast every time a device plans to dispose of a BLE device in order to initiate a scenario on its behalf. This request informs other devices that the script has been accepted for execution and no longer needs to be executed.</p>\n<p>Datagram of the message:<br /><code>LOOKin:Updated! {device id}: {scenario id}</code></p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"b6c36312-425a-4e52-b15d-9a052adf28e2"}],"id":"58804181-a8d1-4753-8480-0cbd6314d165","_postman_id":"58804181-a8d1-4753-8480-0cbd6314d165","description":""},{"name":"HTTP protocol","item":[{"name":"/device","item":[{"name":"Get device information","id":"c2f75b44-56d3-463b-a91a-004427263f22","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"host":true,"user-agent":true,"accept-encoding":true,"accept":true}},"request":{"method":"GET","header":[],"url":"http://00000001.local/device","description":"<p>Every parameter from answer can be get in plain\\text, for example:\n    http://00000001.local/device/name</p>\n","urlObject":{"protocol":"http","path":["device"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"3c31b2c9-2703-4d74-ac0a-64cb3719d24a","name":"/device/id","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/device"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"296"}],"cookie":[],"responseTime":null,"body":"00000001"},{"id":"40aea0b7-1510-407e-8ea3-b1cb560693a9","name":"/device","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/device"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"218"}],"cookie":[],"responseTime":null,"body":"{\n    \"Type\": \"Remote\",\n    \"Status\": \"Running\",\n    \"ID\": \"00000002\",\n    \"Name\": \"\",\n    \"Time\": \"1592501407\",\n    \"Timezone\": \"+5\",\n    \"PowerMode\": \"5v\",\n    \"CurrentVoltage\": \"5889\",\n    \"Firmware\": \"1.37\",\n    \"Temperature\": \"65\",\n    \"BluetoothMode\": \"public\",\n    \"SensorMode\": \"0\"\n}"}],"_postman_id":"c2f75b44-56d3-463b-a91a-004427263f22"},{"name":"Update device information","id":"4cc96afa-1359-4c40-aeed-224ed1de8ce3","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true,"connection":true,"content-length":true,"content-type":true,"host":true,"user-agent":true}},"request":{"method":"POST","header":[{"key":"Content-Type","type":"text","value":"text/plain; charset=utf-8"}],"body":{"mode":"raw","raw":"{\n\t\"name\"\t\t\t: \"Kitchen device\",\n\t\"time\"\t\t\t: \"1592501407\",\n\t\"timezone\"\t\t: \"+5\",\n\t\"sensormode\"\t: \"0\",\n\t\"bluetoothmode\"\t: \"private\"\n\t\"firmware\"\t\t: \"1.37\"\n}"},"url":"http://00000001.local/device/name","description":"<p>All parameters in JSON is optional</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>name - device name to set\ntime - UTC timestamp\ntimezone - current device timezone\nsensormode - set if sensor mode is on or not\nbluetoothmode - set BLE mode, can be private or public\nfirmware - firmware to set, can be version string like \"1.37\" or full http address to firmware\n</code></pre>","urlObject":{"protocol":"http","path":["device","name"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"2ba30eaf-6337-4ecd-978f-d10dfe1d0422","name":"Update firmware from project repository","originalRequest":{"method":"POST","header":[{"key":"Content-Type","type":"text","value":"text/plain; charset=utf-8"}],"body":{"mode":"raw","raw":"{\n\t\"firmware\" : \"1.37\"\n}"},"url":"http://00000001.local/device"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{ \n\t\"success\" : \"true\" , \n\t\"Message\": \"Firmware update will be started if file exists. Web server temporarily stopped.\"\n}\n"},{"id":"6f65aec9-c35a-44a4-a87a-217f405485df","name":"Set device name","originalRequest":{"method":"POST","header":[{"key":"Content-Type","type":"text","value":"text/plain; charset=utf-8"}],"body":{"mode":"raw","raw":"{ \"name\": \"Kitchen device\"}"},"url":"http://00000001.local/device"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{ \"success\" : \"true\" } "},{"id":"c21ca58a-a3fe-452e-ae58-b76fc64f7311","name":"Update firmware by URL","originalRequest":{"method":"POST","header":[{"key":"Content-Type","type":"text","value":"text/plain; charset=utf-8"}],"body":{"mode":"raw","raw":"{\n\t\"firmware\"\t\t: \"http://some.server/firmware.bin\"\n}"},"url":"http://00000001.local/device"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n\t\"success\" : \"true\" , \n\t\"Message\": \"Firmware update will be started if file exists. Web server temporarily stopped.\"\n}\n"}],"_postman_id":"4cc96afa-1359-4c40-aeed-224ed1de8ce3"}],"id":"67f79c13-36e5-4c7f-864c-db661383b719","event":[{"listen":"prerequest","script":{"id":"1f921289-4657-482d-8893-8994814ec151","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"d75b3bbb-15d0-4ed7-982b-b48eb4d7f0e3","type":"text/javascript","exec":[""]}}],"_postman_id":"67f79c13-36e5-4c7f-864c-db661383b719","description":""},{"name":"/network","item":[{"name":"Get network information","id":"a66339a4-c84e-4f2f-a512-21c1b711f950","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/network","description":"<p>Get network information</p>\n<p>Every parameter from answer can be get in plain\\text, for example:\n    http://00000001.local/network/mode</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>mode - wi-fi mode, can \"Client\" or \"AP\"\nIP - current device IP address\nCurrentSSID - current hotspot SSID if connected\nSavedSSID - array of saved hotspot credentials (displayed SSID only)\nMap - LOOK.in devices in this network that founded by this device\nEach map item consist:\n    ID - founded device ID\n    IP - founded device IP\n    IsActive - is this device online or not.\n    Type - string device type, for example \"Remote\" or \"Duo\"\n</code></pre>","urlObject":{"protocol":"http","path":["network"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"066b4c3c-9cc6-4943-8e5b-f1d5d29afb4f","name":"Get network information","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/network"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"406"}],"cookie":[],"responseTime":null,"body":"{\n    \"Mode\": \"Client\",\n    \"IP\": \"192.168.1.33\",\n    \"CurrentSSID\": \"testssid\",\n    \"SavedSSID\": [\n        \"ssid1\",\n        \"ssid2\"        \n    ],\n    \"Map\": [\n        {\n            \"ID\": \"00000002\",\n            \"IP\": \"192.168.1.21\",\n            \"IsActive\": \"0\",\n            \"Type\": \"Remote\"\n        },\n        {\n            \"ID\": \"00000040\",\n            \"IP\": \"192.168.1.36\",\n            \"IsActive\": \"0\",\n            \"Type\": \"Duo\"\n        }\n    ]\n}"}],"_postman_id":"a66339a4-c84e-4f2f-a512-21c1b711f950"},{"name":"Get nearby hotspots list","id":"1f5a019b-edfa-4d6c-b034-3af3bbddd8e7","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true,"connection":true,"content-length":true,"content-type":true,"host":true,"user-agent":true}},"request":{"method":"GET","header":[],"url":"http://00000001.local/network/scannedssidlist","description":"<p>At the time of launch, the device scans and searches for Wi-Fi networks nearby.\nThis request allows you to see founded wi-fi networks</p>\n","urlObject":{"protocol":"http","path":["network","scannedssidlist"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"ecbfa18d-902d-40f1-8eb1-0f9ff7380b55","name":"Get nearby hotspots list","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/network/scannedssidlist"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"280"}],"cookie":[],"responseTime":null,"body":"[\n    \"SomeAP1\",\n    \"SomeAP2\",\n    \"SomeAP3\",\n    \"SomeAP4\",\n    \"SomeAP5\"\n]"}],"_postman_id":"1f5a019b-edfa-4d6c-b034-3af3bbddd8e7"},{"name":"Get all saved hotspots list","id":"4268ecf9-8154-42ec-83dc-09973f462d07","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true,"connection":true,"content-length":true,"content-type":true,"host":true,"user-agent":true}},"request":{"method":"GET","header":[],"url":"http://00000001.local/network/SavedSSID","urlObject":{"protocol":"http","path":["network","SavedSSID"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"dd9bedc7-4734-4572-9341-d46f20c6bae5","name":"Get all saved hotspots list","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"text/plain; charset=utf-8","disabled":true}],"url":"http://00000001.local/network/SavedSSID"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"16"}],"cookie":[],"responseTime":null,"body":"[\n    \"ssid1\",\n    \"ssid2\"\n]"}],"_postman_id":"4268ecf9-8154-42ec-83dc-09973f462d07"},{"name":"Save or update Wi-Fi credentials","id":"01a5565b-1d86-496a-a764-44bb07cfbc73","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-length":true,"host":true,"user-agent":true,"accept":true,"connection":true,"accept-encoding":true,"content-type":true}},"request":{"method":"POST","header":[{"key":"Content-Type","value":"text/plain; charset=utf-8","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"WiFiSSID\":\"ssid\",\n\t\"WiFiPassword\":\"password\"\n}"},"url":"http://00000001.local/network","description":"<p>Add new Wi-Fi hotspot credentials to array of access points to which device can be connected</p>\n","urlObject":{"protocol":"http","path":["network"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"0006e8e3-e906-4cab-8720-e4215187d94f","name":"Save Wi-Fi credentials","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"WiFiSSID\":\"ssid\",\n\t\"WiFiPassword\":\"password\"\n}"},"url":"http://00000001.local/network"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"success\": \"true\"\n}"}],"_postman_id":"01a5565b-1d86-496a-a764-44bb07cfbc73"},{"name":"Delete saved hotspot from saved","id":"d233a62d-d4ef-4eff-acec-4645dee31bc4","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true,"connection":true,"content-length":true,"content-type":true,"host":true,"user-agent":true}},"request":{"method":"DELETE","header":[],"url":"http://00000001.local/network/savedssid/ssid1","urlObject":{"protocol":"http","path":["network","savedssid","ssid1"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"fb7cb010-2b78-4530-b6f5-0f0a4eebe3ed","name":"Delete hotspot with SSID \"ssid1\"","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","type":"text","value":"text/plain; charset=utf-8","disabled":true}],"url":"http://00000001.local/network/savedssid/ssid1"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"21"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": \"true\"\n}"}],"_postman_id":"d233a62d-d4ef-4eff-acec-4645dee31bc4"},{"name":"Connect to Wi-Fi hotspot","id":"005eb719-3714-472f-a5d8-1544f4bdd5ad","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true,"connection":true,"content-length":true,"content-type":true,"host":true,"user-agent":true}},"request":{"method":"GET","header":[],"url":"http://00000001.local/network/connect","description":"<p>The device compares the list of saved data of Wi-Fi access points and scanned access points. If matches are found, the device connects to the access point with the highest signal strength.</p>\n<p>In this request, you can also specify the SSID of the access point to which you want to connect device (see sample request)</p>\n<p>In examples also you can find example how to conenct to hotspot with hidden SSID</p>\n","urlObject":{"protocol":"http","path":["network","connect"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"c107b305-dcd4-48ae-aebc-46eab5c3af40","name":"Connect to hidden SSID","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"text/plain; charset=utf-8","disabled":true}],"url":{"raw":"http://00000001.local/network/connect/<ssid>?hidden","protocol":"http","host":["00000001.local"],"path":["network","connect","<ssid>"],"query":[{"key":"hidden","value":null,"description":"Is SSID hidden or not"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"success\": \"true\"\n}"},{"id":"c5b12c3e-e25d-46c7-9b8a-b1b08aa5ebae","name":"Connect to any found SSID","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"text/plain; charset=utf-8","disabled":true}],"url":"http://00000001.local/network/connect"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"21"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": \"true\"\n}"},{"id":"f77a73ee-cc83-41bb-b5e2-ff7f8cf3877a","name":"Connect to specified SSID","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"text/plain; charset=utf-8","disabled":true}],"url":"http://00000001.local/network/connect/<ssid>"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"success\": \"true\"\n}"}],"_postman_id":"005eb719-3714-472f-a5d8-1544f4bdd5ad"},{"name":"Keep Wi-Fi on","id":"5fa4acd4-b5f2-4939-a8db-162298eb98e6","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true,"connection":true,"content-length":true,"content-type":true,"host":true,"user-agent":true}},"request":{"method":"GET","header":[],"url":"http://00000001.local/network/keepwifi","description":"<p>This function can be used with devices in which sensor mode is on.\nIn that case device periodicaly switch on wifi for a little time (exact time based on different conditions)\nThis enpoint allows to keep wi-fi on during heave operations</p>\n<p>Should be invoked before operations batch.</p>\n","urlObject":{"protocol":"http","path":["network","keepwifi"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"2437b108-0d5f-4987-9c17-532fde4f1ea7","name":"Keep Wi-Fi on","originalRequest":{"method":"GET","header":[{"key":"Content-Type","type":"text","value":"text/plain; charset=utf-8","disabled":true}],"url":"http://00000001.local/network/keepwifi"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"success\": \"true\"\n}"}],"_postman_id":"5fa4acd4-b5f2-4939-a8db-162298eb98e6"},{"name":"\"Remote control\" function management","id":"8dea2ab1-5acf-43ac-ae87-b28f133b6ece","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"accept":true,"accept-encoding":true,"connection":true,"content-length":true,"content-type":true,"host":true,"user-agent":true}},"request":{"method":"GET","header":[],"url":"http://00000001.local/network/remotecontrol/","description":"<p>This endpoint helps to manage RemoteControl state</p>\n<p>There are 2 functions: stop and reconnect</p>\n","urlObject":{"protocol":"http","path":["network","remotecontrol",""],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"788447e5-4f03-4abc-bc11-ab0e4bac728c","name":"Reconnect to remote server","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/network/remotecontrol/reconnect"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"success\": \"true\"\n}"},{"id":"d2aa5d9d-8af5-44bc-b1d5-6de451b0f852","name":"Stop remote control function","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/network/remotecontrol/stop"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"8dea2ab1-5acf-43ac-ae87-b28f133b6ece"}],"id":"1987902e-9ef0-40f9-ad64-1ec873fec288","description":"<p>Network section designed to store, receive and display network information of the device.</p>\n","_postman_id":"1987902e-9ef0-40f9-ad64-1ec873fec288"},{"name":"/automation","item":[],"id":"5bf7c4be-c3ea-498a-af54-31bc21f68273","description":"<p>Documentation not ready yet</p>\n","_postman_id":"5bf7c4be-c3ea-498a-af54-31bc21f68273"},{"name":"/storage","item":[],"id":"595c8e64-286d-46ac-b2ee-4d97567cf81b","description":"<p>Documentation not ready yet</p>\n","_postman_id":"595c8e64-286d-46ac-b2ee-4d97567cf81b"},{"name":"/sensors","item":[{"name":"Get sensors list","id":"a6370ed2-5b97-4777-b59b-28c660522edd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/sensors","urlObject":{"protocol":"http","path":["sensors"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"ab4c2eab-9f27-479c-b795-c64e90de75ae","name":"Sensors list for Remote2 device with connected temp sensor","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/sensors"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"6"}],"cookie":[],"responseTime":null,"body":"[\n    \"IR\",\n    \"Meteo\"\n]"},{"id":"fd73b5cc-7870-49f2-a4b5-f622cc620eae","name":"Sensors list for Remote device","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/sensors"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"6"}],"cookie":[],"responseTime":null,"body":"[\n    \"IR\"\n]"}],"_postman_id":"a6370ed2-5b97-4777-b59b-28c660522edd"},{"name":"Get sensor value","id":"db5d685b-f67e-4386-a737-dca0bb1ff2f8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/sensors/<sensor name>","urlObject":{"protocol":"http","path":["sensors","<sensor name>"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"42c86b7d-7913-46ea-ad0d-296aa39c07dc","name":"Sensor IR received signal value","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/sensors/IR"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"608"}],"cookie":[],"responseTime":null,"body":"{\n    \"Protocol\": \"01\",\n    \"IsRepeated\": \"0\",\n    \"RepeatSignal\": \"\",\n    \"RepeatPause\": \"0\",\n    \"Raw\": \"9060 -4450 600 -530 580 -530 600 -500 610 -530 580 -530 600 -510 610 -530 580 -1640 610 -530 580 -530 610 -500 610 -1640 580 -1650 600 -530 600 -1620 600 -1640 610 -530 580 -1650 610 -1640 600 -1630 600 -1640 610 -530 580 -530 580 -530 610 -1640 610 -500 600 -530 580 -530 600 -500 600 -1650 610 -1640 580 -1640 610 -45000\",\n    \"Signal\": \"00D8801E\",\n    \"Updated\": \"1592606423\"\n}"},{"id":"8997c20e-4a91-469f-b671-6e64eefcf68b","name":"Sensor IR blank value","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/sensors/IR"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"225"}],"cookie":[],"responseTime":null,"body":"{\n    \"Protocol\": \"0\",\n    \"IsRepeated\": \"0\",\n    \"RepeatSignal\": \"\",\n    \"RepeatPause\": \"0\",\n    \"Raw\": \"\",\n    \"Signal\": \"0\",\n    \"Updated\": \"1592606423\"\n}"}],"_postman_id":"db5d685b-f67e-4386-a737-dca0bb1ff2f8"}],"id":"fa983978-5168-4245-a84e-6b85a9596f99","description":"<h3 id=\"about-sensors\">About sensors</h3>\n<p>Sensors provide information on the status of the device.</p>\n<p>Each device may correspond to several sensors or none at all.</p>\n<p>The sensor identifier after the 1st bit matches the identifier of the executing command. This is for easier correspondence between classes. Also, a corresponding sensor must correspond to any class of the command.</p>\n<p>Get information about sensors supported by the device. For example, for Plug:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /sensors  \n\nAnswer:\n[\"Switch\", \"Dimmer\"]\n</code></pre><p>For example, getting information about whether or not Plug is enabled:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /sensors/switch  \n\nAnswer:\n{  \n   \"Value\" : \"1\",  \n   \"Updated\": \"1540987362\",  \n}\n</code></pre><p>A sensor can have both primary and secondary values. Consider the more sophisticated IR sensor:</p>\n<ul>\n<li><p>The main value is the IR protocol code of the signal received by the device. 0x01 - IR protocol NEC1</p>\n</li>\n<li><p>The Signal object contains the signal value in the context of the detected protocol</p>\n</li>\n<li><p>The Frequency object contains information about the frequency of the received signal</p>\n</li>\n<li><p>Raw object contains raw timings of the received signal</p>\n<p>  GET /sensors/IR  </p>\n<p>  Answer:\n  {<br />     \"Value\" : \"1\",<br />     \"Updated\": \"1540987362\",<br />     \"Signal\" : {<br />        \"Value\" : \"00082000\",<br />        \"Updated\": \"1540987362\",<br />     },<br />     \"Frequency\" : {<br />        \"Value\" : \"38200\",<br />        \"Updated\": \"1540987362\",<br />     },<br />     \"Raw\" : {<br />        \"Value\" : \"+9024 -4512 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -1692 +564 -47652 +9024 -2256 +564 -96156\",<br />        \"Updated\": \"1540987362\",<br />     }<br />  }</p>\n</li>\n</ul>\n<p>Each of the values can be obtained in Plain-Text form, for example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /sensors/IR/signal/value  \n\nAnswer:\n00082000\n</code></pre><h3 id=\"sensor-triggering-notifications\">Sensor triggering notifications</h3>\n<p>When integrating devices into an existing system, it may be necessary to receive real-time notification of sensors</p>\n<p>This feature is provided by the fact that when the sensor state changes, the device sends a UDP broadcast packet with information about the change:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>LOOK.in:Updated!C85611AF:87:01;\n</code></pre><p>UDP packet decomposition:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>*   \"LOOK.in:\" - packet prefix\n*   \"Updated!\" - event description\n*   87 - sensor ID, 0x87 means - IR\n*   01 - sensor event - received NEC1 IR signal\n</code></pre><p>Using UDP port is 61201</p>\n<h3 id=\"common-used-sensors\">Common used sensors</h3>\n<h3 id=\"switch-0x81\">Switch (0x81)</h3>\n<table>\n    <tr>\n        <td>Event ID</td>\n        <td>Description</td>\n        <td>Possible operands</td>\n   </tr>\n   <tr>\n        <td>0x00</td>\n        <td>Switch state</td>\n        <td>no operand</td>\n    </tr>\n    <tr>\n        <td>0x01</td>\n        <td>Switch on</td>\n        <td>no operand</td>\n    </tr>\n    <tr>\n        <td>0x02</td>\n        <td>Switch off</td>\n        <td>no operand</td>\n    </tr>\n</table>\n\n<h3 id=\"multiswitch-0x82\">MultiSwitch (0x82)</h3>\n<table>\n    <tr>\n        <td>Event ID</td>\n        <td>Description</td>\n        <td>Possible operands</td>\n   </tr>\n   <tr>\n        <td>0x00</td>\n        <td>MultiSwitch state (0 if all off or 1 if all on)</td>\n        <td>no operand</td>\n    </tr>\n    <tr>\n        <td>0x10</td>\n        <td>Channel 1 off</td>\n        <td>no operand</td>\n    </tr>\n    <tr>\n        <td>0x11</td>\n        <td>Channel 1 on</td>\n        <td>no operand</td>\n    </tr>\n</table>\n\n<p>...</p>\n<table>\n    <tr>\n        <td>0xN0</td>\n        <td>Channel N off</td>\n        <td>no operand</td>\n    </tr>\n    <tr>\n        <td>0xN1</td>\n        <td>Channel N on</td>\n        <td>no operand</td>\n    </tr>\n</table>\n\n<h3 id=\"motion-0xe1\">Motion (0xE1)</h3>\n<table>\n    <tr>\n        <td>Event ID</td>\n        <td>Description</td>\n        <td>Possible operands</td>\n   </tr>\n   <tr>\n        <td>0x00</td>\n        <td>Motion detection state</td>\n        <td>no operand</td>\n    </tr>\n    <tr>\n        <td>0x01</td>\n        <td>Motion detected</td>\n        <td>no operand</td>\n    </tr>\n</table>\n\n<h3 id=\"ir-0x87\">IR (0x87)</h3>\n<table>\n    <tr>\n        <td>Event ID</td>\n        <td>Description</td>\n        <td>Possible operands</td>\n   </tr>\n   <tr>\n        <td>0x00</td>\n        <td>IR state</td>\n        <td>no operand</td>\n    </tr>\n    <tr>\n        <td>0xEE</td>\n        <td>Received command, saved in Storage</td>\n        <td>Command storage ID</td>\n    </tr>\n    <tr>\n        <td>0xFF</td>\n        <td>Received IR command</td>\n        <td>no operand</td>\n    </tr>\n</table>\n\n","event":[{"listen":"prerequest","script":{"id":"f87ea610-e494-4620-a75f-09f95bb84204","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"16577b2e-5359-4c30-9f48-8a10fc97ad74","type":"text/javascript","exec":[""]}}],"_postman_id":"fa983978-5168-4245-a84e-6b85a9596f99"},{"name":"/commands","item":[{"name":"Remote samples","item":[{"name":"Send IR examples","item":[{"name":"Send protocol command","id":"b0dd8e48-163d-4bcc-85b5-7fe014280a7f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/nec1/00820000","description":"<p>Send command of predefined protocol, for example Nec1\nOperand must be 8 HEX symbol length</p>\n","urlObject":{"protocol":"http","path":["commands","ir","nec1","00820000"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"153a5020-b237-4e18-ab62-66b8bb4336db","name":"Send Nec1 IR protocol command with 00820000 operand","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/nec1/00820000"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"success\" : \"true\"\n}"}],"_postman_id":"b0dd8e48-163d-4bcc-85b5-7fe014280a7f"},{"name":"Send raw signal with default frequency","id":"1241f19b-68b2-45ff-b40b-bbc719d8634d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/raw/9024 -4512 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -1692 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -1692 564 -564 564 -1692 564 -564 564 -564 564 -564 564 -1692 564 -1692 564 -564 564 -1692 564 -564 564 -1692 564 -1692 564 -1692 564 -47652 9024 -2256 564 -96156","description":"<p>Example of sending command in raw timings with the default frequency in 38 kHz</p>\n","urlObject":{"protocol":"http","path":["commands","ir","raw","9024 -4512 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -1692 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -1692 564 -564 564 -1692 564 -564 564 -564 564 -564 564 -1692 564 -1692 564 -564 564 -1692 564 -564 564 -1692 564 -1692 564 -1692 564 -47652 9024 -2256 564 -96156"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"0eb8e507-0793-402d-a533-e0d7e93e0afc","name":"Send raw signal with default frequency","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/raw/9024 -4512 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -1692 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -1692 564 -564 564 -1692 564 -564 564 -564 564 -564 564 -1692 564 -1692 564 -564 564 -1692 564 -564 564 -1692 564 -1692 564 -1692 564 -47652 9024 -2256 564 -96156"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"success\" : \"true\"\n}"}],"_postman_id":"1241f19b-68b2-45ff-b40b-bbc719d8634d"},{"name":"Send raw signal with setted frequency","id":"9cd9d09d-112c-49d2-b528-20cd9914f705","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/raw/40000;9024 -4512 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -1692 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -1692 564 -564 564 -1692 564 -564 564 -564 564 -564 564 -1692 564 -1692 564 -564 564 -1692 564 -564 564 -1692 564 -1692 564 -1692 564 -47652 9024 -2256 564 -96156","description":"<p>Example of sending command in raw timings with the 40000 Hz frequency</p>\n","urlObject":{"protocol":"http","path":["commands","ir","raw","40000;9024 -4512 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -1692 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -1692 564 -564 564 -1692 564 -564 564 -564 564 -564 564 -1692 564 -1692 564 -564 564 -1692 564 -564 564 -1692 564 -1692 564 -1692 564 -47652 9024 -2256 564 -96156"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"b0295e77-425c-4a56-be23-b5b2c1ed32cf","name":"Send raw signal with default frequency","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/raw/40000;9024 -4512 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -1692 564 -564 564 -564 564 -564 564 -564 564 -564 564 -564 564 -1692 564 -564 564 -1692 564 -564 564 -564 564 -564 564 -1692 564 -1692 564 -564 564 -1692 564 -564 564 -1692 564 -1692 564 -1692 564 -47652 9024 -2256 564 -96156"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"success\" : \"true\"\n}"}],"_postman_id":"9cd9d09d-112c-49d2-b528-20cd9914f705"},{"name":"Send command in ProntoHEX format","id":"d3f3cb5b-fdd5-4252-b359-5f905a436259","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/prontohex/0000 006C 0022 0002 015B 00AD 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0622 015B 0057 0016 0E6C","description":"<p>Example of sending command in ProntoHEX format\nSpaces might be missed</p>\n","urlObject":{"protocol":"http","path":["commands","ir","prontohex","0000 006C 0022 0002 015B 00AD 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0622 015B 0057 0016 0E6C"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"8a07f75b-d5c7-466a-979e-2ec16f58c510","name":"Send raw signal with default frequency","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/prontohex/0000 006C 0022 0002 015B 00AD 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0622 015B 0057 0016 0E6C"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"success\" : \"true\"\n}"}],"_postman_id":"d3f3cb5b-fdd5-4252-b359-5f905a436259"},{"name":"Send NECx command","id":"df8b73c7-7e76-427b-857e-ee757c2d8870","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/necx/E0E040BF","urlObject":{"protocol":"http","path":["commands","ir","necx","E0E040BF"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[],"_postman_id":"df8b73c7-7e76-427b-857e-ee757c2d8870"},{"name":"Send command from saved IR device","id":"ca472130-23bf-4fbd-b3ae-0d57c2be7182","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/localremote/7D3601FF","description":"<p>Operand is 8-hex digits string\nFirst 4 is local remote UUID\nFollowing 2 hex symbols is function code\nLast 2 hex symbols is function signal ID, generally - FF</p>\n<p>For example, \n7D3601FF</p>\n<p>7D36 - UUID saved remote\n01 - power toggle signal ID\nFF - send best suitable signal</p>\n","urlObject":{"protocol":"http","path":["commands","ir","localremote","7D3601FF"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[],"_postman_id":"ca472130-23bf-4fbd-b3ae-0d57c2be7182"},{"name":"Send command from saved IR signal (Integrations->IR Signal in the App)","id":"f130d2c8-abdd-4fa1-b0b4-52fade69f38e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/saved/10","description":"<p>If you saved IR signal in the App (through Integrations-&gt;IR Signals page) you can simply send it using this query.</p>\n<p><code>GET http://IP/commands/ir/saved/ID</code></p>\n<p>Where ID is uniq IR signal number that you can see in the App signals list.</p>\n","urlObject":{"protocol":"http","path":["commands","ir","saved","10"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[],"_postman_id":"f130d2c8-abdd-4fa1-b0b4-52fade69f38e"},{"name":"Send command to control AC unit","id":"b264ee38-14b9-45f6-a2fe-ca5dd0757c9e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/ac/90142800","description":"<p>To control your AC unit you can use simplified AC API.</p>\n<p>To use this API it is enought to use following enpoint: /commands/ir/ac/<em>operand</em> \nWhere <em>operand</em> consist of 8 HEX digits with this pattern CCCCMTFS</p>\n<p>CCCC - AC unit codeset </p>\n<p>M - AC unit mode:</p>\n<ul>\n<li>0 off</li>\n<li>1 auto</li>\n<li>2 cool</li>\n<li>3 heat</li>\n<li>4 dry</li>\n<li>5 fan_only</li>\n</ul>\n<p>T, Temperature. Required temperature in ℃ - 16℃. If T = 0 this means 16 ℃, if T = A this means 26℃</p>\n<p>F. Fan value</p>\n<ul>\n<li>0 auto</li>\n<li>1 low</li>\n<li>2 mid</li>\n<li>3 high</li>\n</ul>\n<p> S. Swing</p>\n<ul>\n<li>0 stop</li>\n<li>1 move</li>\n</ul>\n<p>For example /commands/ir/ac/90142801\nmeans \"Setup my AC unit with codeset 9014 for cool mode 24℃. Fan auto, Swing move\"</p>\n","urlObject":{"protocol":"http","path":["commands","ir","ac","90142800"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"b58096f8-5b87-42cc-acc0-8bd0a7396dd1","name":"Send command to control AC unit","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/commands/ir/ac/90142800"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"b264ee38-14b9-45f6-a2fe-ca5dd0757c9e"}],"id":"cfc591cd-5cee-470e-a58b-79a9e05845f5","_postman_id":"cfc591cd-5cee-470e-a58b-79a9e05845f5","description":""},{"name":"BLE Commands","item":[{"name":"Send BLE command","id":"8e6199f4-36de-4d43-a142-101b910a3fc7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/commands/ble/kbd_key/<BLE COMMAND>","description":"<p>Allow execute BLE remote command</p>\n<p>BLE Command may take the following values:</p>\n<p>Media commands:</p>\n<ul>\n<li>MEDIA_NEXT_TRACK</li>\n<li>MEDIA_PREV_TRACK</li>\n<li>MEDIA_STOP</li>\n<li>MEDIA_PLAY_PAUSE</li>\n<li>MEDIA_MUTE</li>\n<li>MEDIA_VOLUME_UP</li>\n<li>MEDIA_VOLUME_DOWN</li>\n<li>MEDIA_CHANNEL_UP</li>\n<li>MEDIA_CHANNEL_DOWN</li>\n</ul>\n<p>Consumer control:</p>\n<ul>\n<li>CC_POWER</li>\n<li>CC_SLEEP</li>\n<li>CC_MENU</li>\n<li>CC_MENU_PICK</li>\n<li>CC_BACK</li>\n<li>CC_HOME</li>\n<li>CC_MENU_UP</li>\n<li>CC_MENU_DOWN</li>\n<li>CC_MENU_LEFT</li>\n<li>CC_MENU_RIGHT</li>\n</ul>\n<p>Keyboard:</p>\n<ul>\n<li>KEY_ARROW_UP</li>\n<li>KEY_ARROW_DOWN</li>\n<li>KEY_ARROW_LEFT</li>\n<li>KEY_ARROW_RIGHT</li>\n<li>KEY_BACKSPACE</li>\n<li>KEY_TAB</li>\n<li>KEY_RETURN</li>\n<li>KEY_ESCAPE</li>\n<li>KEY_INSERT</li>\n<li>KEY_DELETE</li>\n<li>KEY_PAGE_UP</li>\n<li>KEY_PAGE_DOWN</li>\n<li>KEY_HOME</li>\n<li>KEY_END</li>\n<li>KEY_CAPS_LOCK</li>\n<li>KEY_ENTER</li>\n</ul>\n<p>Keyboard keys:</p>\n<p>Any ASCII char</p>\n","urlObject":{"protocol":"http","path":["commands","ble","kbd_key","<BLE COMMAND>"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"793b0915-d507-4709-9e71-c69ab9eb4790","name":"Volume UP","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/commands/ble/kbd_key/MEDIA_VOLUME_UP"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null},{"id":"ce714ce3-af98-4314-ba46-8ea8161610eb","name":"Send a symbol","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/commands/ble/kbd_key/a"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"8e6199f4-36de-4d43-a142-101b910a3fc7"}],"id":"013d87a1-de41-4ddd-84cd-e318ff6e2e1f","_postman_id":"013d87a1-de41-4ddd-84cd-e318ff6e2e1f","description":""}],"id":"40842567-3812-405e-b685-79b9b8409d7e","_postman_id":"40842567-3812-405e-b685-79b9b8409d7e","description":""}],"id":"b583e8ee-912c-46db-b294-18578c4333a5","description":"<h3 id=\"about-commands\">About commands</h3>\n<p>Commands perform certain actions related to the device.</p>\n<p>There are several commands can be associated with device.</p>\n<p>Getting information about the classes of commands supported by the device. </p>\n<p>For example, for Plug device:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /commands\nAnswer:\n[\"switch\", \"dimmer\"]\n</code></pre><p>Getting possible events for a command:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /commands/switch  \nAnswer:\n[\"on\", \"off\"]  \n\nGET /commands/dimmer  \nAnswer:\n[\"set\", \"on\", \"off\"]\n</code></pre><h3 id=\"managing-device-status-using-commands\">Managing device status using commands</h3>\n<p>To control the device through commands, you must use the following parameters:</p>\n<ul>\n<li>Command or Command ID</li>\n<li>Event or Event ID</li>\n<li>Command operand (optional parameter)</li>\n</ul>\n<p>Device state management is possible both with POST and GET requests.\nThe following requests are identical and lead to the switching on Plug device. \nThese requests use the \"Switch\" command with the \"On\" action:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /commands/switch/on\nGET /commands?command=switch&amp;action=on  \nGET /commands?command=1&amp;action=1  \nPOST /commands/switch/on\nPOST /commands  \n{  \n   \"command\": \"switch\",  \n   \"action\" : \"on\"  \n}\n</code></pre><p>In addition to the server’s response, a message about the execution or error when executing the command may be in the response to the request in the form of the following JSON on successful execution:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{ \"success\" : \"true\" }\n</code></pre><p>Or in case of fail:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{ \"success\" : \"false\" }\n</code></pre><h3 id=\"common-used-commands\">Common used Commands</h3>\n<h3 id=\"switch-0x01\">Switch (0x01)</h3>\n<table>\n    <tr>\n        <td>Event name</td>\n        <td>Event ID</td>\n        <td>Description</td>\n        <td>Possible operands</td>\n   </tr>\n   <tr>\n        <td>on</td>\n        <td>0x01</td>\n        <td>Switch on</td>\n        <td>no operand</td>\n    </tr>\n   <tr>\n        <td>off</td>\n        <td>0x02</td>\n        <td>Switch off</td>\n        <td>no operand</td>\n    </tr>\n</table>\n\n<h3 id=\"multiswitch-0x02\">MultiSwitch (0x02)</h3>\n<table>\n    <tr>\n        <td>Event name</td>\n        <td>Event ID</td>\n        <td>Description</td>\n        <td>Possible operands</td>\n   </tr>\n   <tr>\n        <td>all</td>\n        <td>0xFF</td>\n        <td>Switch all on</td>\n        <td>state</td>\n    </tr>\n    <tr>\n        <td>channel1</td>\n        <td>0x01</td>\n        <td>Set state for channel 1</td>\n        <td>state</td>\n    </tr>\n    <tr>\n        <td>channel2</td>\n        <td>0x02</td>\n        <td>Set state for channel 2</td>\n        <td>state</td>\n    </tr>\n</table>\n\n<p>...</p>\n<table>\n    <tr>\n        <td>channelN</td>\n        <td>0x0N</td>\n        <td>Set state for channel N</td>\n        <td>state</td>\n    </tr>\n</table>\n\n<h3 id=\"ir-0x07\">IR (0x07)</h3>\n<table>\n    <tr>\n        <td>Event name</td>\n        <td>Event ID</td>\n        <td>Description</td>\n        <td>Possible operands</td>\n   </tr>\n   <tr>\n        <td>nec1</td>\n        <td>0x01</td>\n        <td>Send NEC1 command on 38 kHz</td>\n        <td>command</td>\n    </tr>\n   <tr>\n        <td>sony</td>\n        <td>0x03</td>\n        <td>Send Sony command on 38 kHz</td>\n        <td>command</td>\n    </tr>\n   <tr>\n        <td>necx</td>\n        <td>0x04</td>\n        <td>Send NecX command on 38 kHz</td>\n        <td>command</td>\n    </tr>\n   <tr>\n        <td>panasonic</td>\n        <td>0x05</td>\n        <td>Send panasonic command on 38 kHz</td>\n        <td>command</td>\n    </tr>\n   <tr>\n        <td>samsung36</td>\n        <td>0x06</td>\n        <td>Send Samsung36 command on 38 kHz</td>\n        <td>command</td>\n    </tr>\n    <tr>\n        <td>aiwa</td>\n        <td>0x14</td>\n        <td>Send aiwa command on 38 kHz</td>\n        <td>Aiwa command</td>\n    </tr>\n    <tr>\n        <td>repeat</td>\n        <td>0xED</td>\n        <td>Send repeat command for previos sended signal</td>\n        <td>no operand</td>\n    </tr>\n    <tr>\n        <td>saved</td>\n        <td>0xEE</td>\n        <td>Send command from device memory</td>\n        <td>Storage item ID</td>\n    </tr>\n    <tr>\n        <td>ac</td>\n        <td>0xEF</td>\n        <td>Send command for the AC unit</td>\n        <td>AC Operand in XXXXMTFS, where XXXX - codeset, M - AC Mode, T - temperature offset over 16 degrees, F - fan mode, S - swing mode</td>\n    </tr>\n    <tr>\n        <td>localremote</td>\n        <td>0xFE</td>\n        <td>Send command for saved remote</td>\n        <td>Operand with Remote UUID, function and param</td>\n    </tr>\n</table>\n\n<p>HTTP only commands (ignored by decentralized protocol)</p>\n<table>\n    <tr>\n        <td>Event name</td>\n        <td>Event ID</td>\n        <td>Description</td>\n        <td>Possible operands</td>\n    </tr>\n    <tr>\n        <td>prontohex</td>\n        <td>0xF0</td>\n        <td>Send command in ProntoHEX format</td>\n        <td>Command in ProntoHEX</td>\n    </tr>\n    <tr>\n        <td>raw</td>\n        <td>0xFF</td>\n        <td>Send command in raw timinigs format</td>\n        <td>string with following format: \"XX;[YY]\",\n        Where:  \n            XX Frequency in Hz,  \n            YY raw signal timings\n        </td>\n    </tr>\n</table>","event":[{"listen":"prerequest","script":{"id":"bd435a87-af04-4fbc-a1a9-48d467a70b8f","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"20e9340b-8651-486d-869c-89552446f718","type":"text/javascript","exec":[""]}}],"_postman_id":"b583e8ee-912c-46db-b294-18578c4333a5"},{"name":"/kvs","item":[],"id":"76150ca2-a562-4330-be13-bac24c3970de","description":"<p>Documentation not ready yet</p>\n","_postman_id":"76150ca2-a562-4330-be13-bac24c3970de"},{"name":"/log","item":[],"id":"7c194e4b-9ad1-44df-bd62-cb6a1a4bb30e","description":"<p>Documentation not ready yet</p>\n","_postman_id":"7c194e4b-9ad1-44df-bd62-cb6a1a4bb30e"},{"name":"/data","item":[{"name":"Remote","item":[{"name":"Get saved IR remotes","id":"74cc7dc8-1b80-48c4-99db-c6ea511458dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/data/6F36","description":"<p>Get all IR remotes, saved on device</p>\n<p>Each device presented as object with 3 fields: Type, UUID, Updated</p>\n","urlObject":{"protocol":"http","path":["data","6F36"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"03d8d68f-ffcc-4c6e-b279-0083d4ff2796","name":"Get saved IR remotes","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/data/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"205"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"Type\": \"07\",\n        \"UUID\": \"6D1B\",\n        \"Updated\": \"1596103418\"\n    },\n    {\n        \"Type\": \"01\",\n        \"UUID\": \"685E\",\n        \"Updated\": \"1599130475\"\n    },\n    {\n        \"Type\": \"EF\",\n        \"UUID\": \"6F36\",\n        \"Updated\": \"1599748069\"\n    },\n    {\n        \"Type\": \"05\",\n        \"UUID\": \"85EA\",\n        \"Updated\": \"1597838823\"\n    }\n]"}],"_postman_id":"74cc7dc8-1b80-48c4-99db-c6ea511458dd"},{"name":"Get saved IR device information","id":"1e717aa2-66d9-445b-bc61-51008d3ef367","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/data/6F36","description":"<p>Fields:</p>\n<ul>\n<li>Type of device</li>\n<li>Name of saved device</li>\n<li>Last updated timestamp</li>\n<li>Saved functions list</li>\n<li>Misc data (Codeset for AC)</li>\n</ul>\n","urlObject":{"protocol":"http","path":["data","6F36"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"6720d474-c202-4313-abd3-cdaa5a7529e3","name":"Example receiving saved IR device data","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/data/6D1B"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"113"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"Type\": \"07\",\n    \"Name\": \"Вентилятор\",\n    \"Updated\": \"1596103418\",\n    \"Functions\": [\n        {\n            \"Name\": \"power\",\n            \"Type\": \"single\"\n        }\n    ]\n}"},{"id":"9f9cf495-800a-462d-af1f-c2584dc704e2","name":"Example of AC info saved","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/data/6F36"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"96"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"Type\": \"EF\",\n    \"Name\": \"Test\",\n    \"Updated\": \"1599748069\",\n    \"Extra\": \"9002\",\n    \"Status\": \"2320\",\n    \"Functions\": []\n}"}],"_postman_id":"1e717aa2-66d9-445b-bc61-51008d3ef367"},{"name":"Get saved IR device function details","id":"67a72477-15f8-4f9a-9e66-cb24a8afb6d0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://00000001.local/data/685E/power","urlObject":{"protocol":"http","path":["data","685E","power"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[{"id":"02193d6a-e57c-4c1a-9d31-53c7e5ea52f2","name":"Get information abount channel down function of the remote","originalRequest":{"method":"GET","header":[],"url":"http://00000001.local/data/685E/chdown"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"158"},{"key":"Access-Control-Allow-Origin","value":"*"}],"cookie":[],"responseTime":null,"body":"{\n    \"Type\": \"single\",\n    \"Signals\": [\n        {\n            \"ProntoHEX\": \"00000073000C0000002000200040002000200020002000200020002000200020002000400040002000200020002000200020004000200CA8\"\n        }\n    ]\n}"}],"_postman_id":"67a72477-15f8-4f9a-9e66-cb24a8afb6d0"},{"name":"Create new IR device data","id":"52c1d066-3e7e-424f-bfad-e5573afad544","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"Type\"      : \"EF\",\n\t\"Updated\"   : \"1212112\",\n\t\"Name\"      : \"Test AC\",\n    \"UUID\"      : \"1234\",\n\t\"Extra\"\t\t: \"1123\"\n}","options":{"raw":{"language":"json"}}},"url":"http://00000001.local/data/","urlObject":{"protocol":"http","path":["data",""],"host":["00000001.local"],"query":[],"variable":[]}},"response":[],"_postman_id":"52c1d066-3e7e-424f-bfad-e5573afad544"},{"name":"Update new IR device data","id":"160d97ed-803a-4fd4-a271-ae57acd9716e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n\t\"Type\"      : \"EF\",\n\t\"Updated\"   : \"1212112\",\n\t\"Name\"      : \"Test AC\",\n\t\"Extra\"\t\t: \"1123\"\n}","options":{"raw":{"language":"json"}}},"url":"http://00000001.local/data/AB11","urlObject":{"protocol":"http","path":["data","AB11"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[],"_postman_id":"160d97ed-803a-4fd4-a271-ae57acd9716e"},{"name":"Create new IR device function","id":"ed35c261-689f-4831-8834-368210ab8703","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"type\": \"toggle\",\n\t\"signals\": [\n\t\t{\n\t\t\t\"raw\": {\n\t\t\t\t\"Frequency\": \"38000\",\n\t\t\t\t\"Signal\": \"8000 -4500 9000 -4500 9000 -4500 9000 -4500 9000 -4500 9000 -4500\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"raw\": {\n\t\t\t\t\"Frequency\": \"38000\",\n\t\t\t\t\"Signal\": \"1000 -4500 9000 -4500 9000 -4500 9000 -4500 9000 -4500 9000 -4500\"\n\t\t\t}\n\t\t}\n\t]\n}","options":{"raw":{"language":"json"}}},"url":"192.168.1.9/data/1234","urlObject":{"path":["data","1234"],"host":["192","168","1","9"],"query":[],"variable":[]}},"response":[],"_postman_id":"ed35c261-689f-4831-8834-368210ab8703"},{"name":"Update IR device function","id":"f573e539-ae86-429b-891b-afa180f55e43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n\t\"updated\": \"12345567\",\n\t\"type\": \"toggle\",\n\t\"signals\": [\n\t\t{\n\t\t\t\"raw\": {\n\t\t\t\t\"Frequency\": \"38000\",\n\t\t\t\t\"Signal\": \"8000 -4500 9000 -4500 9000 -4500 9000 -4500 9000 -4500 9000 -4500\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"raw\": {\n\t\t\t\t\"Frequency\": \"38000\",\n\t\t\t\t\"Signal\": \"1000 -4500 9000 -4500 9000 -4500 9000 -4500 9000 -4500 9000 -4500\"\n\t\t\t}\n\t\t}\n\t]\n}","options":{"raw":{"language":"json"}}},"url":"http://00000001.local/data/1234/power","urlObject":{"protocol":"http","path":["data","1234","power"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[],"_postman_id":"f573e539-ae86-429b-891b-afa180f55e43"},{"name":"Erase all saved IR device data","id":"227fe03e-2d08-416f-b2e4-2761a9d1f683","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://00000001.local/data/","urlObject":{"protocol":"http","path":["data",""],"host":["00000001.local"],"query":[],"variable":[]}},"response":[],"_postman_id":"227fe03e-2d08-416f-b2e4-2761a9d1f683"},{"name":"Delete saved IR device","id":"4c8a0b9c-1248-4621-8766-8ec5d27bcb86","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://00000001.local/data/6D1B","urlObject":{"protocol":"http","path":["data","6D1B"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[],"_postman_id":"4c8a0b9c-1248-4621-8766-8ec5d27bcb86"},{"name":"Delete saved IR device function","id":"bba67fa7-393a-4dbd-b2ba-0c87807aa97b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://00000001.local/data/1234/power","urlObject":{"protocol":"http","path":["data","1234","power"],"host":["00000001.local"],"query":[],"variable":[]}},"response":[],"_postman_id":"bba67fa7-393a-4dbd-b2ba-0c87807aa97b"}],"id":"3ba3c070-7e7b-462d-b43f-bc48881cfb32","description":"<p>This endpoint allows you to receive, store and update IR remotes that are stored on each device</p>\n<p>Get all IR remotes, saved on device.</p>\n<p>Remotes divides by remotes types and defined functions for each device type.</p>\n<p>List of used device types:</p>\n<p><strong>TV</strong>\nType: 0x01\nAvaliable Functions:</p>\n<table>\n    <tr>\n        <td>Short name</td>\n        <td>ID</td>\n        <td>Meaning</td>\n    </tr>\n    <tr>\n        <td>power</td>\n        <td>0x01</td>\n        <td>Power toggle</td>\n    </tr>\n    <tr>\n        <td>poweron</td>\n        <td>0x02</td>\n        <td>Power On</td>\n    </tr>\n    <tr>\n        <td>poweroff</td>\n        <td>0x03</td>\n        <td>Power Off</td>\n    </tr>\n    <tr>\n        <td>mode</td>\n        <td>0x04</td>\n        <td>Input mode list</td>\n    </tr>\n    <tr>\n        <td>mute</td>\n        <td>0x05</td>\n        <td>Audio mute toggle</td>\n    </tr>\n    <tr>\n        <td>volup</td>\n        <td>0x06</td>\n        <td>Volume Up</td>\n    </tr>\n    <tr>\n        <td>voldown</td>\n        <td>0x07</td>\n        <td>Volume Down</td>\n    </tr>\n    <tr>\n        <td>chup</td>\n        <td>0x08</td>\n        <td>Channel Up</td>\n    </tr>\n    <tr>\n        <td>chdown</td>\n        <td>0x09</td>\n        <td>Channel Down</td>\n    </tr>\n    <tr>\n        <td>cursor</td>\n        <td>0x0C</td>\n        <td>Cursor control</td>\n    </tr>\n    <tr>\n        <td>menu</td>\n        <td>0x0D</td>\n        <td>Menu button</td>\n    </tr>\n</table>\n\n<p><strong>Media</strong>\nType: 0x02\nAvaliable Functions:</p>\n<table>\n    <tr>\n        <td>Short name</td>\n        <td>ID</td>\n        <td>Meaning</td>\n    </tr>\n    <tr>\n        <td>power</td>\n        <td>0x01</td>\n        <td>Power toggle</td>\n    </tr>\n    <tr>\n        <td>poweron</td>\n        <td>0x02</td>\n        <td>Power On</td>\n    </tr>\n    <tr>\n        <td>poweroff</td>\n        <td>0x03</td>\n        <td>Power Off</td>\n    </tr>\n    <tr>\n        <td>mute</td>\n        <td>0x05</td>\n        <td>Audio mute toggle</td>\n    </tr>\n    <tr>\n        <td>volup</td>\n        <td>0x06</td>\n        <td>Volume Up</td>\n    </tr>\n    <tr>\n        <td>voldown</td>\n        <td>0x07</td>\n        <td>Volume Down</td>\n    </tr>\n</table>\n\n<p><strong>Light</strong>\nType: 0x03\nAvaliable Functions:</p>\n<table>\n    <tr>\n        <td>Short name</td>\n        <td>ID</td>\n        <td>Meaning</td>\n    </tr>\n    <tr>\n        <td>power</td>\n        <td>0x01</td>\n        <td>Power toggle</td>\n    </tr>\n    <tr>\n        <td>poweron</td>\n        <td>0x02</td>\n        <td>Power On</td>\n    </tr>\n    <tr>\n        <td>poweroff</td>\n        <td>0x03</td>\n        <td>Power Off</td>\n    </tr>\n</table>\n\n<p><strong>Humifier / Dehumidifier</strong>\nType: 0x04\nAvaliable Functions:</p>\n<table>\n    <tr>\n        <td>Short name</td>\n        <td>ID</td>\n        <td>Meaning</td>\n    </tr>\n    <tr>\n        <td>power</td>\n        <td>0x01</td>\n        <td>Power toggle</td>\n    </tr>\n    <tr>\n        <td>poweron</td>\n        <td>0x02</td>\n        <td>Power On</td>\n    </tr>\n    <tr>\n        <td>poweroff</td>\n        <td>0x03</td>\n        <td>Power Off</td>\n    </tr>\n    <tr>\n        <td>mode</td>\n        <td>0x04</td>\n        <td>Mode select</td>\n    </tr>\n</table>\n\n<p><strong>Air Purifier</strong>\nType: 0x05\nAvaliable Functions:</p>\n<table>\n    <tr>\n        <td>Short name</td>\n        <td>ID</td>\n        <td>Meaning</td>\n    </tr>\n    <tr>\n        <td>power</td>\n        <td>0x01</td>\n        <td>Power toggle</td>\n    </tr>\n    <tr>\n        <td>poweron</td>\n        <td>0x02</td>\n        <td>Power On</td>\n    </tr>\n    <tr>\n        <td>poweroff</td>\n        <td>0x03</td>\n        <td>Power Off</td>\n    </tr>\n    <tr>\n        <td>mode</td>\n        <td>0x04</td>\n        <td>Mode select</td>\n    </tr>\n    <tr>\n        <td>speed</td>\n        <td>0x0B</td>\n        <td>Speed mode</td>\n    </tr>\n</table>\n\n<p><strong>Robo vacuum cleaner</strong>\nType: 0x06\nAvaliable Functions:</p>\n<table>\n    <tr>\n        <td>Short name</td>\n        <td>ID</td>\n        <td>Meaning</td>\n    </tr>\n    <tr>\n        <td>power</td>\n        <td>0x01</td>\n        <td>Power toggle</td>\n    </tr>\n    <tr>\n        <td>poweron</td>\n        <td>0x02</td>\n        <td>Power On</td>\n    </tr>\n    <tr>\n        <td>poweroff</td>\n        <td>0x03</td>\n        <td>Power Off</td>\n    </tr>\n</table>\n\n<p><strong>Data Device Fan</strong>\nType: 0x07\nAvaliable Functions:</p>\n<table>\n    <tr>\n        <td>Short name</td>\n        <td>ID</td>\n        <td>Meaning</td>\n    </tr>\n    <tr>\n        <td>power</td>\n        <td>0x01</td>\n        <td>Power toggle</td>\n    </tr>\n    <tr>\n        <td>poweron</td>\n        <td>0x02</td>\n        <td>Power On</td>\n    </tr>\n    <tr>\n        <td>poweroff</td>\n        <td>0x03</td>\n        <td>Power Off</td>\n    </tr>\n    <tr>\n        <td>swing</td>\n        <td>0x0A</td>\n        <td>Swing mode</td>\n    </tr>\n    <tr>\n        <td>speed</td>\n        <td>0x0B</td>\n        <td>Fan speed mode</td>\n    </tr>\n</table>","event":[{"listen":"prerequest","script":{"id":"2fb24627-b02d-4e0f-a965-564287233257","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"7a03d905-0a75-49fd-9d9e-927ca94a21cc","type":"text/javascript","exec":[""]}}],"_postman_id":"3ba3c070-7e7b-462d-b43f-bc48881cfb32"}],"id":"edaace0b-e871-4520-8d4c-e19dc7f1bff6","description":"<p>This endpoints allows to manage information stored on the device. \nWorking with these endpoints differs from device to device and depends on its type</p>\n","event":[{"listen":"prerequest","script":{"id":"11199368-f16c-46bf-b171-66f1068a6516","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"edd11513-c86e-431b-bb95-e69d31cbe14b","type":"text/javascript","exec":[""]}}],"_postman_id":"edaace0b-e871-4520-8d4c-e19dc7f1bff6"}],"id":"95a93fea-dcda-4863-b1fa-bb9fb825b5d0","_postman_id":"95a93fea-dcda-4863-b1fa-bb9fb825b5d0","description":""}],"event":[{"listen":"prerequest","script":{"id":"9b7312e8-8287-4dc6-86a6-7969e96ba7a2","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"82ac5eb1-a2e2-435e-b3a6-79f0cc5d50e7","type":"text/javascript","exec":[""]}}],"variable":[{"key":"IP","value":"00000001.local"}]}