{"info":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","description":"<html><head></head><body><h2 id=\"rest-apis-and-connectivity\">REST APIs and connectivity</h2>\n<p>This open application program interface (API) allows you to manage your Doppler using various REST APIs. The Doppler has two types of connections:</p>\n<p>* <strong>Cloud:</strong> Connecting to our Doppler cloud control server (<a href=\"https://control.sandmandoppler.com\">https://control.sandmandoppler.com</a>) lets you manage and get information from anywhere, even when not on the same WiFi network. We will monitor and limit the amount of calls using this method.</p>\n<p>* <strong>Local:</strong> Alternatively, you can locally control your Doppler on the same WiFi network without ever accessing the cloud after properly authenticated. <strong>This is the preferred connection type and what this collection will assume you're using.</strong></p>\n<h2 id=\"running-the-postman-app\">Running the Postman app</h2>\n<p>Download and run the <a href=\"https://www.postman.com/downloads/\">Postman desktop app</a> (Windows, macOS, or Linux) or use Postman in your browser with the <a href=\"https://www.postman.com/downloads/postman-agent/\">Postman desktop agent</a>. We have prepared a short video, <a href=\"https://youtu.be/H_p7khLADFA\">https://youtu.be/H_p7khLADFA</a>, that walks you through setting up Postman for Doppler collection:</p>\n<ol>\n<li>Import the Doppler Local REST API collection.</li>\n<li>Enter your credentials as variables in the collection to access and manage your Doppler.</li>\n<li>Use Postman’s <strong>code</strong> feature to get the actual code needed to interact with your Doppler.</li>\n</ol>\n<blockquote>\n<p><strong>Note:</strong> This API is currently a work-in-progress as we improve Doppler capabilities by adding and adjusting features. PAI welcomes feedback on the Doppler API. Join us on our discord server (<a href=\"https://discord.gg/vRHBkeZnCZ\">https://discord.gg/vRHBkeZnCZ</a>) or email us at <a href=\"mailto:support@sandmanclocks.com\">support@sandmanclocks.com</a>.</p>\n</blockquote>\n<h2 id=\"this-api-is-useless-without-a-doppler\">This API is useless without a Doppler</h2>\n<p>If you don't already have a Sandman Doppler, please purchase one at <a href=\"sandmandoppler.com\">sandmanclocks.com</a>; we really appreciate it! :)</p>\n<p>While this API allows you to control your Doppler, you must successfully complete onboarding using our Sandman mobile app before you'll be able to control your Doppler via this REST API.</p>\n<h2 id=\"thank-you\">Thank you!</h2>\n<p>Thanks again for your support and enthusiasm about Sandman Doppler.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"14527424","collectionId":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","publishedId":"VVQiv24k","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"6c757d","highlight":"00bab3"},"publishDate":"2022-09-10T01:03:03.000Z"},"item":[{"name":"Auth requests/setup","item":[{"name":"Get new token","event":[{"listen":"test","script":{"id":"c5a8732d-6d78-47a1-9423-3b5c0a2f94d0","exec":["var jsonData = JSON.parse(responseBody);\r","pm.collectionVariables.set(\"copilotbearer\", jsonData.accessToken);\r",""],"type":"text/javascript"}}],"id":"6c141bb0-afdc-4555-a180-ebbcca663c91","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"authenticationDetails\": {\r\n        \"applicationId\": \"SANDMANDOPPLER\",\r\n        \"email\": \"testing@paloaltoinnovation.com\",\r\n        \"password\": \"SecurePassword!\"\r\n    },\r\n    \"deviceDetails\": {\r\n        \"applicationVersion\": \"154\",\r\n        \"deviceId\": \"12345678\",\r\n        \"deviceModel\": \"PIXEL\",\r\n        \"deviceType\": \"PHONE\",\r\n        \"osType\": \"ANDROID\",\r\n        \"osVersion\": \"9\",\r\n        \"timezone\": {\r\n            \"currentTimeInClientInMilliseconds\": 0,\r\n            \"offsetFromUTCInMilliseconds\": 0,\r\n            \"timeZoneId\": \"UTC\"\r\n        }\r\n    }\r\n}'","options":{"raw":{"language":"json"}}},"url":"https://api.sandmandoppler.bycopilot.com/v4/auth/login","description":"<p>The <em>Get new token</em> POST REST call retrieves a Bearer token from the Copilot server using your Copilot credentials. These credentials are the same as those used during onboarding of your Doppler using the mobile app.</p>\n<p>Your Copilot credentials can be entered in the collection <strong>Variables</strong> section in Postman to allow for easy API testing. The contents of \"deviceDetails\" in the JSON Request body should match precisely to avoid an error from the Copilot API:</p>\n<blockquote>\n<p><strong>Note:</strong> We know you aren’t using a Pixel or an Android 9 device, but trust us!</p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"authenticationDetails\": {\n        \"applicationId\": \"SANDMANDOPPLER\",\n        \"email\": \"testing@paloaltoinnovation.com\",\n        \"password\": \"SecurePassword!\"\n    },\n    \"deviceDetails\": {\n        \"applicationVersion\": \"154\",\n        \"deviceId\": \"01234567\",\n        \"deviceModel\": \"PIXEL\",\n        \"deviceType\": \"PHONE\",\n        \"osType\": \"ANDROID\",\n        \"osVersion\": \"9\",\n        \"timezone\": {\n            \"currentTimeInClientInMilliseconds\": 0,\n            \"offsetFromUTCInMilliseconds\": 0,\n            \"timeZoneId\": \"UTC\"\n        }\n    }\n}\n\n</code></pre>\n<p>Your response will vary but here is an example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"accessToken\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwd2RfZXhwaXJlZCI6ZmFsc2UsInVzZXJfcm9sZSI6IkFQUFVTRVIiLCJkZXZpY2VfaWQiOiIxMjM0NTY3OCIsInVzZXJfaWQiOiI2MTBiZjk4M2ZjZDI3ZjAwMDYwNTMzYWQiLCJleHBpcmF0aW9uX3RpbWUiOjE2NjAwODM2MjU2NzcsImlzX2V4dGVybmFsIjpmYWxzZSwiand0VmVyc2lvbiI6Imp3dDEifQ.VhbMxsNCHt4WBuFY55csOqc8HVHGWVndw00ggESPvDQ\",\n    \"refreshToken\": \"2a4a23c1-9f68-4978-bcc0-7a115186f190\",\n    \"expiresIn\": 3000,\n    \"tokenType\": \"Bearer\"\n}\n\n</code></pre>\n<p>JSON Request body for for the \"authenticationDetails\" consisting of three key/value pairs:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"applicationId\"</td>\n<td>Text string should be \"SANDMANDOPPLER\".</td>\n</tr>\n<tr>\n<td>\"email\"</td>\n<td>Text string of your Sandman Doppler email account.</td>\n</tr>\n<tr>\n<td>\"password\"</td>\n<td>Text string of your Sandman Doppler password.</td>\n</tr>\n</tbody>\n</table>\n</div><p>JSON Request body for for the \"deviceDetails\" key consisting of seven key/value pairs:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"applicationVersion\"</td>\n<td>Reserved</td>\n</tr>\n<tr>\n<td>\"deviceId\"</td>\n<td>Reserved</td>\n</tr>\n<tr>\n<td>\"deviceModel\"</td>\n<td>A text string describing the smart device running the app (ex: \"PIXEL\").</td>\n</tr>\n<tr>\n<td>\"deviceType\"</td>\n<td>Text string identifying the type of device (ex: \"PHONE\").</td>\n</tr>\n<tr>\n<td>\"osType\"</td>\n<td>Text string identifying the operating system (ex: \"ANDROID\").</td>\n</tr>\n<tr>\n<td>\"osVersion\"</td>\n<td>Text string with the operating system version number (ex: \"9\").</td>\n</tr>\n<tr>\n<td>\"timezone\"</td>\n<td>Three text strings describing timezone information: \"currentTimeInClientInMilliseconds\", \"offsetFromUTCInMilliseconds\", and \"timeZoneId\" (defaults to \"UTC\").</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"accessToken\"</td>\n<td>Access tokens are used to allow an application to access an API.</td>\n</tr>\n<tr>\n<td>\"refreshToken\"</td>\n<td>A Refresh token is a string that is used to get a new access token without a user’s interaction.</td>\n</tr>\n<tr>\n<td>\"expiresIn\"</td>\n<td>The amount of time (in minutes) that the token is valid.</td>\n</tr>\n<tr>\n<td>\"tokenType\"</td>\n<td>The token type is \"Bearer\", the predominant type of access token used in authenticated sessions.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["v4","auth","login"],"host":["api","sandmandoppler","bycopilot","com"],"query":[],"variable":[]}},"response":[{"id":"bebdd49c-d852-4e06-8c04-1dfd1e112007","name":"Get new token","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"authenticationDetails\": {\r\n        \"applicationId\": \"SANDMANDOPPLER\",\r\n        \"email\": \"testing@paloaltoinnovation.com\",\r\n        \"password\": \"SecurePassword!\"\r\n    },\r\n    \"deviceDetails\": {\r\n        \"applicationVersion\": \"154\",\r\n        \"deviceId\": \"12345678\",\r\n        \"deviceModel\": \"PIXEL\",\r\n        \"deviceType\": \"PHONE\",\r\n        \"osType\": \"ANDROID\",\r\n        \"osVersion\": \"9\",\r\n        \"timezone\": {\r\n            \"currentTimeInClientInMilliseconds\": 0,\r\n            \"offsetFromUTCInMilliseconds\": 0,\r\n            \"timeZoneId\": \"UTC\"\r\n        }\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.sandmandoppler.bycopilot.com/v4/auth/login"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 09 Aug 2022 21:30:25 GMT"},{"key":"X-Application-Context","value":"application:noswagger:8082"},{"key":"Content-Type","value":"application/json;charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[],"responseTime":null,"body":"{\n    \"accessToken\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwd2RfZXhwaXJlZCI6ZmFsc2UsInVzZXJfcm9sZSI6IkFQUFVTRVIiLCJkZXZpY2VfaWQiOiIxMjM0NTY3OCIsInVzZXJfaWQiOiI2MTBiZjk4M2ZjZDI3ZjAwMDYwNTMzYWQiLCJleHBpcmF0aW9uX3RpbWUiOjE2NjAwODM2MjU2NzcsImlzX2V4dGVybmFsIjpmYWxzZSwiand0VmVyc2lvbiI6Imp3dDEifQ.VhbMxsNCHt4WBuFY55csOqc8HVHGWVndw00ggESPvDQ\",\n    \"refreshToken\": \"2a4a23c1-9f68-4978-bcc0-7a115186f190\",\n    \"expiresIn\": 3000,\n    \"tokenType\": \"Bearer\"\n}"}],"_postman_id":"6c141bb0-afdc-4555-a180-ebbcca663c91"},{"name":"Get Dopplers on account","event":[{"listen":"test","script":{"id":"5d49dcee-d6d0-4eba-8873-a5625a2b7fd1","exec":[""],"type":"text/javascript"}}],"id":"979a9f15-cab9-4e3a-b8d0-83795ff227b2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://api.sandmandoppler.bycopilot.com/v4/things","description":"<p>The <em>Get Dopplers on account</em> REST call retrieves all Dopplers registered to this Copilot account and returns the following for each Doppler in an array: name, current firmware, serial number, model, thing ID, and status.</p>\n<p>An example response looks like this:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"things\": [\n        {\n            \"id\": \"61130263df49b40006ea37dd\",\n            \"info\": {\n                \"name\": \"John’s Doppler\",\n                \"firmware\": \"Pendulum\",\n                \"physicalId\": \"Doppler-123445678\",\n                \"model\": \"SandmanDopplerProduction\"\n            },\n            \"status\": {\n                \"lastSeen\": 1659992006756,\n                \"statuses\": []\n            },\n            \"customSettings\": null\n        }\n    ]\n}\n\n</code></pre>\n<p>If the Doppler you wish to manage is not listed using this command, do the following:</p>\n<ol>\n<li>Factory reset your Doppler.</li>\n<li>In the app, log out and log back into the proper Sandman account.</li>\n<li>Once the Doppler has entered setup mode, set up the Doppler again.</li>\n</ol>\n<p>Once Doppler setup has been completed, reissue the <em>Get Dopplers on account</em> command. The Doppler should now appear in the response list.</p>\n<p>Responses are:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"id\"</td>\n<td>An internal string used to define your Doppler (Ignore it).</td>\n</tr>\n<tr>\n<td>\"name\"</td>\n<td>The name given to your Doppler in the app.</td>\n</tr>\n<tr>\n<td>\"firmware\"</td>\n<td>The current name of the overall firmware build of the Doppler. (The names are types of timekeeping devices throughout history.)</td>\n</tr>\n<tr>\n<td>\"physicalId\"</td>\n<td>The unique ID (or serial number) is an 8-digit alphanumeric value given to the Doppler. This identifier is used in all Doppler commands and is also called a DSN (or Doppler Serial Number).</td>\n</tr>\n<tr>\n<td>\"model\"</td>\n<td>The internal model name of your Doppler unit.</td>\n</tr>\n<tr>\n<td>\"lastSeen\"</td>\n<td>The last days your Doppler has been in contact with the app (in Epoch time).</td>\n</tr>\n<tr>\n<td>\"statuses\"</td>\n<td>Reserved</td>\n</tr>\n<tr>\n<td>\"customSettings\"</td>\n<td>Reserved</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["v4","things"],"host":["api","sandmandoppler","bycopilot","com"],"query":[],"variable":[]}},"response":[{"id":"2f03a505-c38d-4be9-b8fa-abec1ccd4b97","name":"Getting all Dopplers on your account","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://api.sandmandoppler.bycopilot.com/v4/things"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 07 Jan 2022 19:39:14 GMT"},{"key":"X-Application-Context","value":"application:noswagger:8082"},{"key":"Content-Type","value":"application/json;charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"clear"}],"cookie":[],"responseTime":null,"body":"{\n    \"things\": [\n        {\n            \"id\": \"5fbaa618df49xxxxx6ea30fc\",\n            \"info\": {\n                \"name\": \"Bedside\",\n                \"firmware\": \"Escapement\",\n                \"physicalId\": \"Doppler-012345678\",\n                \"model\": \"Enter Sandman\"\n            },\n            \"status\": {\n                \"lastSeen\": 1641264820266,\n                \"statuses\": []\n            },\n            \"customSettings\": null\n        }\n    ]\n}"}],"_postman_id":"979a9f15-cab9-4e3a-b8d0-83795ff227b2"},{"name":"Get Local key from cloud","event":[{"listen":"test","script":{"id":"5d49dcee-d6d0-4eba-8873-a5625a2b7fd1","exec":["var jsonData = JSON.parse(responseBody);\r","pm.collectionVariables.set(\"localkey\", jsonData.localkey);\r","\r","var jsonData = JSON.parse(responseBody);\r","pm.collectionVariables.set(\"ipAddie\", jsonData.ipAddie);\r",""],"type":"text/javascript"}}],"id":"c376a2f0-567f-405f-93c2-e1ef54795cdc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://control.sandmandoppler.com/Doppler-01234567/localkey","description":"<p>The <em>Get Local key from cloud</em> REST call retrieves a Local key from the Doppler via PAI’s cloud server using your Copilot authentication. Once the key is received, a connection to the cloud is no longer required. The Local key will only change when the Doppler has been factory reset.</p>\n<blockquote>\n<p><em><strong>Regarding the key, do not ...</strong></em>\n-Store the key in an insecure location<br />- Store the key in a shared location<br />- Transfer the key to any other device or computer\n- Share the key with anyone</p>\n</blockquote>\n<p>If the Local key has been possibly compromised, factory reset your Doppler and replace the key. If the key is lost, reauthenticate with Copilot and get the key again.</p>\n<p>In addition to \"ipAddie\" (String of the Doppler's IPv4 address on the local network) and \"port\" (Integer of the port used to connect locally, usually 5443) values, the Local key (\"localKey\") in the response will be a JSON UTF-8 string. An example is:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"localKey\": \"123ALocalKey567\",\n    \"ipAddie\": \"10.0.0.234\",\n    \"port\": 5443\n}\n\n</code></pre>\n<p>The Bearer token used for authorization will be the token retrieved in the previous step. We call it \"copilotbearer\" in our collection.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"localkey\"</td>\n<td>The Local key text string is used as long as the current connection has been established.</td>\n</tr>\n<tr>\n<td>\"ipAddie\"</td>\n<td>IP address of your Doppler that can be used as the base URL.</td>\n</tr>\n<tr>\n<td>\"port\"</td>\n<td>A number represents communication endpoints that specify a process or service.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","localkey"],"host":["https://control.sandmandoppler.com"],"query":[],"variable":[]}},"response":[{"id":"18bcd359-96b4-4700-b767-6bd48543454b","name":"Get local key","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://control.sandmandoppler.com/Doppler-01234567/localkey"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.3.0"},{"key":"Content-Length","value":"108"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"localkey\": \"Wbe1pTYzkOHPsRdYGWtiJAd1FzgShOmBoRgzcbioOZs0Ynuc7i0WtS40BD9rVhSEMJY\",\n    \"ipAddie\": \"192.168.0.248\"\n}"}],"_postman_id":"c376a2f0-567f-405f-93c2-e1ef54795cdc"},{"name":"Get Nonce and create Local token","event":[{"listen":"test","script":{"id":"5d49dcee-d6d0-4eba-8873-a5625a2b7fd1","exec":["var jsonData = JSON.parse(responseBody);\r","pm.collectionVariables.set(\"nonce\", jsonData.nonce);\r","\r","var nonce = pm.collectionVariables.get(\"nonce\");\r","var localKey = pm.collectionVariables.get(\"localkey\");\r","\r","var SHA = nonce + localKey\r","\r","var sha256Hash =  CryptoJS.SHA256(SHA);\r","\r","var base64 = CryptoJS.enc.Base64.stringify(sha256Hash);\r","\r","var LocalToken = nonce + \"|\" + base64;\r","\r","pm.collectionVariables.set(\"bearer\", LocalToken);"],"type":"text/javascript"}}],"id":"130ca891-f5dc-4220-a52a-275c5f39762a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://:5443/Doppler-01234567/nonce","description":"<p>After the Local key is retrieved from the cloud server, Use the <em>Get Nonce and create Local token</em> REST call to get a Nonce from your Doppler. The Local key is used to create a Login token, which will be your Bearer authorization for all subsequent commands.</p>\n<p>Connect to the Doppler using its IP address or the Doppler’s DSN (via DNS) with <em>no</em> authentication requirements and on the specified port in the previous <em>Get Local key</em> call.</p>\n<p>The URL to get the Nonce follows this format:</p>\n<p><code>https://{dsn}:5443/{dsn}/nonce</code></p>\n<blockquote>\n<p><strong>Note:</strong> The DSN is listed twice; yes, it looks a little weird.</p>\n</blockquote>\n<p>The response should be an <em>HTTP 200</em> success response code with a JSON return value containing the Nonce that looks something like this:</p>\n<p><code>{\"nonce\":\"123nonce456\"}</code></p>\n<p>The Nonce will be reset every time the <em>Get Nonce and create Local token</em> GET command is called and will be retained for 48 hours. If the Nonce expires, an error response (<em>code 410</em>) is returned from issuing other Doppler REST calls:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>code=410\ndescription=Gone\nmessage={\"error\":\"GONE\",\"message\":\" Nonce no longer valid\"}\n\n</code></pre><p>We recommend calling <em>Get Nonce and create Local token</em> every 24 hours. Replace the Nonce once a day by keeping track of the date the Nonce was last created. Once that date changes, issue the <em>Get Nonce and create Local token</em> call again.</p>\n<p>Once the Nonce has been retrieved, pass the Nonce value and the Local key through a SHA256, in that order. (The Nonce and the Local key should have no other values between them.)</p>\n<p>Here are some programming code snippets demonstrating how to use the <em>Get Nonce and create Local token</em> REST call:</p>\n<h2 id=\"programming-in-c\">Programming in C</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-c\">hash[SHA256_DIGEST_LENGTH];\nSHA256_CTX sha256;\nSHA256_Init(&amp;sha256);\nSHA256_Update(&amp;sha256, nonce.c_str(), nonce.size());\nSHA256_Update(&amp;sha256, key.c_str(), key.size());\nSHA256_Final(hash, &amp;sha256);\n\n</code></pre>\n<h2 id=\"programming-in-swift\">Programming in Swift</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-swift\">let nonceData: [UInt8] = Array(nonce.utf8)\nlet localKeyData: [UInt8] = Array(localKey.utf8) var hash = SHA256()\nhash.update(data: nonceData)\nhash.update(data: localKeyData) let vector = hash.finalize()\nlet data = Data(vector) // Gets the finalized hash and converts it to data\n\n</code></pre>\n<h2 id=\"programming-in-java\">Programming in Java</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-java\">val stringToHash = \"$nonce$localKey\"\n    val bytes = stringToHash.toByteArray()\n    val md = MessageDigest.getInstance(\"SHA-256\")\n    val digest = md.digest(bytes)\n\n</code></pre>\n<h2 id=\"making-it-all-work\">Making it all work</h2>\n<p>Once the SHA256 is created, do the following:</p>\n<ol>\n<li>Encode the calculated value into Base64.</li>\n<li>Concatenate your Nonce with the Base64 encoded value along with a vertical line (\"|\") character separating them:</li>\n</ol>\n<p><code>\"nonce\" \"|\" \"Base64 encoded SHA256 of nonce and SHA256\"</code></p>\n<p>The following table summarizes the steps:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Command sequence</strong></th>\n<th><strong>Example</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Step 1.</strong> Get the Local key from the cloud server.</td>\n<td>\"NPdeoPIQqPYFlAG+tLxEePpJaeYj0BraaWp+TH5RJbNIhFM6lPsxmZAyV0Tum7zp5SU=\"</td>\n</tr>\n<tr>\n<td><strong>Step 2.</strong> Get Nonce from Doppler with no authorization.</td>\n<td>\"j0BraaWp+TH5RJbNIhFM6lPsxmQ=\"</td>\n</tr>\n<tr>\n<td><strong>Step 3.</strong> Put Nonce and Local key through SHA256 and encode the results in base64.</td>\n<td>\"Gu7s2LFXh/XoVyUCHN4iqM0ova6HPwOJ6nN6Png/P5A=\"</td>\n</tr>\n<tr>\n<td><strong>Step 4.</strong> Place a vertical line character in between the Nonce (from Step 2) and the base64 encoded value (from Step 3) as your bearer authorization for each local call.</td>\n<td>\"j0BraaWp+TH5RJbNIhFM6lPsxmQ=</td>\n</tr>\n</tbody>\n</table>\n</div><p>This results in your Local token:</p>\n<p><code>\"j0BraaWp+TH5RJbNIhFM6lPsxmQ=|Gu7s2LFXh/XoVyUCHN4iqM0ova6HPwOJ6nN6Png/P5A=\"</code></p>\n<p><strong>This local token will be used as the Bearer token for all subsequent API calls</strong>. This is automatically done using the Postman collection.</p>\n<p>The following represents commons errors to watch for:</p>\n<p>* <strong>HTTP 400 error code:</strong> Invalid token/dsn indicates a parse error. Be sure the token contains a \"|\" beginning with the Nonce.<br />* <strong>HTTP 401 error code:</strong> The final key (post-base64 encoding) does not match.<br />* <strong>HTTP 410 error code:</strong> The Nonce is no longer valid. This may be due to 48 hours have elapsed, or another call to {dsn}/nonce has invalidated the Nonce that was sent.</p>\n<blockquote>\n<p><strong>Note:</strong> We recommend verifying all commands with Postman to see what works.</p>\n</blockquote>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"nonce\"</td>\n<td>The text string describing the Nonce from the Doppler is used with the Local key to create a login token.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","nonce"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"0ac5f794-5fac-4610-a095-8ea81fe17c0b","name":"Get nonce and local token","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://:5443/Doppler-01234567/nonce"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"40"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"nonce\": \"p+Y96sFbMCUZ4f1ek99ZVzC0xn0=\"\n}"}],"_postman_id":"130ca891-f5dc-4220-a52a-275c5f39762a"}],"id":"cf43ea42-934b-4ca3-bae9-5d2cdff70b25","description":"<p>A Bearer token from the Copilot login server (the server you log into with the Sandman phone app) is required to communicate with your Doppler. Enter your credentials in the collection <strong>Variables</strong> section to retrieve the token. This token will be automatically stored in the Postman collection once received.</p>\n<p>A new token is required to authenticate and manage a Doppler <em>every 50 minutes</em> when using cloud control. This is only required <em>once</em> when using local control.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"fdabdfc7-f58c-4e32-891a-a0bbb77d0505","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"1310a93a-c9a9-4fca-a9cc-b2d427f1a56e","type":"text/javascript","exec":[""]}}],"_postman_id":"cf43ea42-934b-4ca3-bae9-5d2cdff70b25"},{"name":"Doppler commands","item":[{"name":"Basic","item":[{"name":"Basic device information","event":[{"listen":"test","script":{"id":"61d370b2-7546-4596-8377-8e6d9f32122c","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"48ff0469-acf0-43b6-85c3-40b4ffde9380","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/device","description":"<p>The <em>Basic device information</em> REST call returns device information about your Doppler. A example response looks like this:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"mfgrName\": \"Palo Alto Innovation\",\n    \"modelNum\": \"SandmanDopplerProduction\",\n    \"serialNum\": \"Doppler-12345678\",\n    \"firmware\": \"Pendulum\",\n    \"hardware\": \"Enter Sandman\",\n    \"software\": \"0.1544 Bucky\"\n}\n\n</code></pre>\n<blockquote>\n<p>Your values in the response will most likely be different.</p>\n</blockquote>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"mfgrName\"</td>\n<td>The manufacturer name of the company that manufactured your Doppler product. (This returned text string should always be \"Palo Alto Innovation\".)</td>\n</tr>\n<tr>\n<td>\"modelNum\"</td>\n<td>The model number is the specific internal model name of your Doppler represented as a text string.</td>\n</tr>\n<tr>\n<td>\"serialNum\"</td>\n<td>The serial number text string is the 8-digit alphanumeric value unique to your Doppler. This is also called a Doppler Serial Number (DSN) and has the following format: \"Doppler-123456768\".</td>\n</tr>\n<tr>\n<td>\"firmware\"</td>\n<td>The current name of the firmware build currently installed on your Doppler. (These names are types of timekeeping devices used throughout history like \"Pendulum\".)</td>\n</tr>\n<tr>\n<td>\"hardware\"</td>\n<td>The specific version of hardware used to build your Doppler represented as a text string. (These names are based on a popular metal bands songs like \"Enter Sandman\".)</td>\n</tr>\n<tr>\n<td>\"software\"</td>\n<td>The software version text string identification running on your Doppler. The build number is the numerical digits and the name listed is the overall build based on superhero names (in alphabetical order). An example is \"0.1529 Bucky\".  <br /></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","device"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"85dd36ce-7d2a-41a7-8d33-dd6e1234fe89","name":"Getting the basic device information from the Doppler","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/device"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"181"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"mfgrName\": \"Palo Alto Innovation\",\n    \"modelNum\": \"SandmanDopplerProduction\",\n    \"serialNum\": \"Doppler-01234567\",\n    \"firmware\": \"Escapement\",\n    \"hardware\": \"Enter Sandman\",\n    \"software\": \"0.1218 Bucky\"\n}"}],"_postman_id":"48ff0469-acf0-43b6-85c3-40b4ffde9380"},{"name":"Get the status of the active wifi connection","event":[{"listen":"test","script":{"id":"dab348e9-7788-47af-b01f-27333cddaaa7","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"bc6baea1-8073-48d6-854b-7c65bf8d6d74","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/wifi-status","description":"<p>The <em>Get the status of the active wifi connection</em> REST call returns WiFi connection status with your Doppler: uptime, strength, and Service Set IDentifier (SSID).</p>\n<p>An example response looks something like this:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"uptime\": 13502475,\n    \"ssid\": \"PAI-Test\",\n    \"str\": 85\n}\n\n</code></pre><p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"uptime\"</td>\n<td>The number of milliseconds since your Doppler has been powered on.</td>\n</tr>\n<tr>\n<td>\"ssid\"</td>\n<td>A text string with your WiFi network name.</td>\n</tr>\n<tr>\n<td>\"str\"</td>\n<td>A text string with your WiFi network’s signal strength (up to 100).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","hardware","wifi-status"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"ce12087f-0043-42b6-8872-09eb2d16ff1b","name":"Get the status of the active wifi connection","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/wifi-status"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"41"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"uptime\": 13430808,\n    \"ssid\": \"LSM\",\n    \"str\": 85\n}"}],"_postman_id":"bc6baea1-8073-48d6-854b-7c65bf8d6d74"}],"id":"437a52aa-a5e1-4f59-b475-095355a6d18f","description":"<p>The basic group uses GET REST calls to request general device and connectivity status for your Doppler.</p>\n","_postman_id":"437a52aa-a5e1-4f59-b475-095355a6d18f","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Time","item":[{"name":"Gets the current UTC time Doppler is set to","event":[{"listen":"test","script":{"id":"a5398e43-973b-4484-bca1-2c97a7cef6ac","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"b0a789cb-498d-45cc-9ba2-7e279f0b4291","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/doptime/utc-time","description":"<p>The <em>Gets the current UTC time Doppler is set to</em> REST call retrieves the current time of day on your Doppler. Both returned values are numbers. Coordinated Universal Time (or UTC) is the time standard that regulates clocks and time for the world.</p>\n<p>An example response is for <em>07:07 AM</em> Pacific Standard Time (PST):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"hour\": 14,\n    \"min\": 7\n}\n\n</code></pre>\n<p>In the app’s <strong>TIME</strong> screen, you can view the relationship between a timezone and UTC. For example, the Pacific timezone is identified as UTC-08:00 hours.</p>\n<blockquote>\n<p><strong>Note:</strong> UTC is unaffected by daylight savings time recognized in some countries (like the United States).</p>\n</blockquote>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"hour\"</td>\n<td>The numeric UTC time for the current hour (0-23).</td>\n</tr>\n<tr>\n<td>\"min\"</td>\n<td>Numeric value representing UTC time for the current minute (0-59).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","doptime","utc-time"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"6cfad8c8-d140-437c-9c6f-434da737b86d","name":"Gets the current UTC time Doppler is set to","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/doptime/utc-time"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"19"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"hour\": 14,\n    \"min\": 7\n}"}],"_postman_id":"b0a789cb-498d-45cc-9ba2-7e279f0b4291"},{"name":"Get the 12/24hr setting","event":[{"listen":"test","script":{"id":"23202999-38d3-48a7-9f72-d17367b13b03","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"149db3bc-7eb5-4bc7-a582-0c187e563f1d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/time-mode","description":"<p>The <em>Get the 12/24hr setting</em> REST call retrieves the current 12/24 hour setting on your Doppler. The returned number is either a <em>12</em> or <em>24</em> numeric value. An example response indicates that the Doppler is set to a 24-hour clock:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"timeMode\": 24\n}\n\n</code></pre>\n<p>To view the 12/24 hour time mode in the app, navigate to the <strong>TIME</strong> screen. The <strong>Use 24-hour format</strong> switch indicates 12-hour (disabled) or 24-hour (enabled) time mode.</p>\n<p>To change the time mode, use the <em>Set the 12/24hr setting</em> REST call. In the app, tap the <strong>Use 24-hour format</strong> switch.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"timeMode\"</td>\n<td>A numeric value: either <em>12</em> or <em>24</em>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","software","time-mode"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"e5d0eb0b-f29e-4804-9538-99b4d3559aee","name":"Get the 12/24hr setting","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/time-mode"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"15"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"timeMode\": 24\n}"}],"_postman_id":"149db3bc-7eb5-4bc7-a582-0c187e563f1d"},{"name":"Set the 12/24hr setting","event":[{"listen":"test","script":{"id":"9c57b64f-c7b4-4431-be86-4323b33348e4","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"050bfb41-6dbb-488b-bcc0-cdcff392da1a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"timeMode\": 12\n}"},"url":"https://:5443/Doppler-01234567/software/time-mode","description":"<p>The <em>Set the 12/24hr setting</em> REST call sets the current time mode on your Doppler.</p>\n<p>The JSON Request body uses a number of 12 or 24 to select the time mode. An example sets the time mode to <em>12</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"timeMode\": 12\n}\n\n</code></pre>\n<p>The response verifies the time mode setting:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"timeMode\": 12\n}\n\n</code></pre>\n<p>To set the 12/24 hour time mode in the app, navigate to the <strong>TIME</strong> screen. Tap the <strong>Use 24-hour format</strong> switch to either a 12-hour (disabled) or 24-hour (enabled) time mode.</p>\n<p>To view the time mode, use the <em>Get the 12/24hr setting</em> REST call. In the app, the <strong>Use 24-hour format</strong> switch indicates the current time mode setting.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"timeMode\"</td>\n<td>A numeric value: either <em>12</em> or <em>24</em>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","software","time-mode"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"77a68c73-3852-439a-a230-f990dd126096","name":"Set the 12/24hr setting","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"timeMode\": 12\n}"},"url":"https://:5443/Doppler-01234567/software/time-mode"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"15"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"timeMode\": 12\n}"}],"_postman_id":"050bfb41-6dbb-488b-bcc0-cdcff392da1a"},{"name":"Gets the current timezone being used","event":[{"listen":"test","script":{"id":"3578f3c8-4347-4dc1-9e50-89eed2bb0978","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"96565212-acad-494b-aa86-f0cd3d9c7c16","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/doptime/timezone","description":"<p>The <em>Gets the current timezone being used</em> REST call retrieves the name of the timezone currently selected on your Doppler.</p>\n<p>The Doppler accepts lots of different timezones pulled from the IANA 2020A release. The full list can be found here: <a href=\"https://data.iana.org/time-zones/releases/tzdata2020a.tar.gz\">https://data.iana.org/time-zones/releases/tzdata2020a.tar.gz</a></p>\n<p>For example, the response shows the text string for the Pacific timezone in the United States:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"timezone\": \"US/Pacific\"\n}\n\n</code></pre>\n<p>To view the current timezone in the app, navigate to the <strong>TIME</strong> screen and scroll through the options.</p>\n<p>There are two ways to change the current timezone:</p>\n<ul>\n<li>Use the <em>Sets the current timezone being used</em> REST call.  </li>\n<li>In the app, scroll through and tap to select a timezone in the list on the <strong>TIME</strong> screen.</li>\n</ul>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"timezone\"</td>\n<td>The text string used to identify the current timezone (ex: \"Europe/London\").</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","doptime","timezone"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"e9d81d0b-1b08-4aec-889a-f2ab2d894995","name":"Gets the current timezone being used","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/doptime/timezone"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"27"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"timezone\": \"US/Mountain\"\n}"}],"_postman_id":"96565212-acad-494b-aa86-f0cd3d9c7c16"},{"name":"Sets the current timezone being used","event":[{"listen":"test","script":{"id":"4c7bbe29-28b7-4917-9c53-3d33736c7f70","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"48ac282c-fadb-47b8-8eb4-c56f158c3d18","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"timezone\": \"America/Los_Angeles\"\n}"},"url":"https://:5443/Doppler-01234567/doptime/timezone","description":"<p>The <em>Sets the current timezone being used</em> REST call retrieves the name of the timezone being used on your Doppler.</p>\n<p>The Doppler accepts lots of different timezones pulled from the IANA 2020A release. The full list can be found here: <a href=\"https://data.iana.org/time-zones/releases/tzdata2020a.tar.gz\">https://data.iana.org/time-zones/releases/tzdata2020a.tar.gz</a></p>\n<p>The JSON Request body specifies a text string for the timezone. In this example, the Doppler is set to the Pacific timezone:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"timezone\": \"US/Pacific\"\n}\n\n</code></pre>\n<p>The response verifies that the timezone was set:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"timezone\": \"US/Pacific\"\n}\n\n</code></pre>\n<p>To set the current timezone in the app, navigate to the <strong>TIME</strong> screen, scroll through the options, and tap on the desired timezone.</p>\n<p>There are two ways to view the current timezone:</p>\n<ul>\n<li>Use the <em>Gets the current timezone being used</em> REST call.  </li>\n<li>In the app, scroll through the list to find the selected timezone on the <strong>TIME</strong> screen.</li>\n</ul>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"timezone\"</td>\n<td>The text string used to identify the current timezone (ex: \"Europe/London\").</td>\n</tr>\n</tbody>\n</table>\n</div><p><del>NCC-1701 might work as well.</del></p>\n","urlObject":{"path":["Doppler-01234567","doptime","timezone"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"7ec44066-cd22-4fc0-b746-c9e5ac60fe10","name":"Sets the current timezone being used","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"timezone\": \"America/Los_Angeles\"\n}"},"url":"https://:5443/Doppler-01234567/doptime/timezone"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"35"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"timezone\": \"America/Los_Angeles\"\n}"}],"_postman_id":"48ac282c-fadb-47b8-8eb4-c56f158c3d18"},{"name":"Gets the current offset in minutes from real time","event":[{"listen":"test","script":{"id":"5b3e14e3-d9a7-495c-a970-1dbc0534bcbf","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"dc2de77b-3d31-4e3c-a0e3-99ad7bfbfcca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/doptime/offset","description":"<p>The <em>Gets the current offset in minutes from real time</em> REST call retrieves the number of minutes to deviate from the actual time displayed on your Doppler.</p>\n<p>The numeric value can be positive or negative:</p>\n<p>*   If negative, the time displayed on your Doppler is earlier than the actual time.\n*   If positive, the time displayed on your Doppler is later than the actual time.</p>\n<p>For example, it is 1:05 PM (13:05), and your Doppler displays the time as 1:00 PM. The response from this call returns a time offset of <em>-5</em> minutes:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"offset\": -5\n}\n\n</code></pre>\n<p>A returned offset value of <em>0</em> (the default) indicates that there is no difference between the actual time and the time displayed on your Doppler:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"offset\": 0\n}\n\n</code></pre>\n<p>Finally, it is 1:52 PM (13:52), but your Doppler displays the time as 2:02 PM (14:02). The response in this example returns an offset of <em>10</em> minutes:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"offset\": 10\n}\n\n</code></pre>\n<p>To view the time offset in the app, navigate to the <strong>ADVANCED TIME SETTINGS</strong> screen, and the current time offset will be displayed in the options list.</p>\n<p>There are two ways to set the time offset:</p>\n<p>*   Use the <em>Sets the current offset in minutes from real time</em> REST call to set a time offset.\n*   In the app, spin through the options and select a time offset on the <strong>ADVANCED TIME SETTINGS</strong> screen.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"offset\"</td>\n<td>A number indicating the number of minutes offset to the time displayed on your Doppler. If negative, the displayed time is early (ex: -<em>5</em>), and if positive, the displayed time is later (ex: <em>5</em>).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Why would anyone want a time offset? There may be times when viewing your Doppler earlier (or later) than the time displayed is beneficial. Alarms and the <em>Gets the current UTC time Doppler is set to</em> REST call rely on the actual time and doesn’t take time offset into consideration.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","doptime","offset"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"749ddf39-a888-4a86-a1f1-95bbac1be441","name":"Gets the current offset in minutes from real time","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/doptime/offset"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"13"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"offset\": 10\n}"}],"_postman_id":"dc2de77b-3d31-4e3c-a0e3-99ad7bfbfcca"},{"name":"Sets the current offset in minutes from real time","event":[{"listen":"test","script":{"id":"c9498bbe-7a38-45a5-808c-cb1654fb7f92","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"add44d43-a0a6-41fe-a456-4844bcd3e745","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"offset\": 0\n}"},"url":"https://:5443/Doppler-01234567/doptime/offset","description":"<p>The <em>Sets the current offset in minutes from real time</em> REST call sets the number of minutes to deviate from the actual time displayed on your Doppler. The numeric value can be positive or negative (limited to between -128 and 127):</p>\n<ul>\n<li>If negative, the time displayed on your Doppler is earlier than the actual time.</li>\n<li>If positive, the time displayed on your Doppler is later the actual time.</li>\n</ul>\n<p>For example, it is 1:05 PM (13:05), set \"offset\" to <em>-5</em> minutes so that your Doppler needs to display the time five minutes earlier (1:00 PM):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"offset\": -5\n}\n\n</code></pre>\n<p>The response verifies the time offset:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"offset\": -5\n}\n\n</code></pre>\n<p>Resetting the time offset to <em>0</em> (default) effectively removes any time difference between the actual time and the time displayed on your Doppler:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"offset\": 0\n}\n\n</code></pre>\n<p>The response verifies an offset of <em>0</em>:</p>\n<p><code>{ \"offset\": 0 }</code></p>\n<p>To offset your Doppler so that the displayed time is later by ten minutes, set a time offset of <em>10</em> minutes:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"offset\": 10\n}\n\n</code></pre>\n<p>If the current actual time is 1:52 PM (13:52), your Doppler displays the time as 2:02 PM (14:02). The response verifies an offset of <em>10</em>:</p>\n<p><code>{ \"offset\": 10 }</code></p>\n<p>To view the time offset in the app, navigate to the <strong>ADVANCED TIME SETTINGS</strong> screen, and the current time offset will be displayed in the options list.</p>\n<p>There are two ways to set the time offset:</p>\n<ul>\n<li>Use the <em>Sets the current offset in minutes from real time</em> REST call to set the time offset.</li>\n<li>In the app, spin through the options to select a time offset on the <strong>ADVANCED TIME SETTINGS</strong> screen. The app limits offsets between -59 and 59 minutes.</li>\n</ul>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"offset\"</td>\n<td>A number indicating the number of minutes offset to the time displayed on your Doppler. If negative, the displayed time is ahead (ex: -<em>5</em>), and if positive, the displayed time is behind (ex: <em>5</em>).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Why would anyone want a time offset? There may be times when viewing your Doppler earlier (or later) than the time displayed is beneficial. Alarms and the <em>Gets the current UTC time Doppler is set to</em> REST call rely on the actual time and do not take a time offset into consideration.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","doptime","offset"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"3c999f50-cf79-41af-8942-16d3d72de431","name":"Sets the current offset in minutes from real time","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"offset\": 10\n}"},"url":"https://:5443/Doppler-01234567/doptime/offset"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"13"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"offset\": 10\n}"}],"_postman_id":"add44d43-a0a6-41fe-a456-4844bcd3e745"},{"name":"Use Colon","event":[{"listen":"test","script":{"id":"a6e47e38-df84-4c2a-9fee-86b7caedb120","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"032b96d3-42e3-40ca-b64f-ca23ed00fc98","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/use-colon","description":"<p>The <em>Use Colon</em> REST turns the colon on or off on your Doppler. The colon is displayed between the hours and minutes on the Doppler.</p>\n<p>An example JSON Request body disables the colon on your Doppler with the Boolean <em>false</em> value:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>The response verifies this change:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>To turn the colon on or off in the app, navigate to the TIME screen in the left settings menu and tap <strong>Show Advanced Settings</strong>. Under <strong>Clock display settings</strong>, toggle the <strong>Use colon</strong> switch.</p>\n<p>There are two ways to view the colon status on your Doppler:</p>\n<p>* Use the <em>Use Colon</em> (GET) REST call.<br />* The Use colon switch on the <strong>ADVANCED TIME SETTINGS</strong> screen of the app indicates the current setting.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"on\"</td>\n<td>Returns a Boolean <em>true</em> if the colon is enabled; <em>false</em> if the colon is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","software","use-colon"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"54865f04-0877-4eb7-9ced-f57be585fe6c","name":"Use Colon","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/use-colon"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"11"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"on\": true\n}"}],"_postman_id":"032b96d3-42e3-40ca-b64f-ca23ed00fc98"},{"name":"Use Colon","event":[{"listen":"test","script":{"id":"a6e47e38-df84-4c2a-9fee-86b7caedb120","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"2a4b39bc-6eeb-4aec-95bb-d0115d20df98","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"on\" : true\r\n}"},"url":"https://:5443/Doppler-01234567/software/use-colon","description":"<p>The <em>Use Colon</em> REST turns the colon on or off on your Doppler. The colon is displayed between the hours and minutes on the Doppler.</p>\n<p>An example JSON Request body disables the colon on your Doppler with the Boolean <em>false</em> value:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>The response verifies this change:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>To turn the colon on or off in the app, navigate to the TIME screen in the left settings menu and tap <strong>Show Advanced Settings</strong>. Under <strong>Clock display settings</strong>, toggle the <strong>Use colon</strong> switch.</p>\n<p>There are two ways to view the colon status on your Doppler:</p>\n<p>* Use the <em>Use Colon</em> (GET) REST call.<br />* The Use colon switch on the <strong>ADVANCED TIME SETTINGS</strong> screen of the app indicates the current setting.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"on\"</td>\n<td>Returns a Boolean <em>true</em> if the colon is enabled; <em>false</em> if the colon is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","software","use-colon"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"eb51e935-61fe-4b7a-b68a-799ad7625a75","name":"Use Colon","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/use-colon"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"11"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"on\": true\n}"}],"_postman_id":"2a4b39bc-6eeb-4aec-95bb-d0115d20df98"},{"name":"Colon blink","event":[{"listen":"test","script":{"id":"a5398e43-973b-4484-bca1-2c97a7cef6ac","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"3963db91-9166-450d-b7d9-b7fa265d0b3c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/colon-blink","description":"<p>The <em>Colon blink</em> REST call retrieves the colon blink setting on your Doppler. The colon is displayed between the hours and minutes on the Doppler. If the colon is not blinking (the default), the response would look like:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"blink\": false\n}\n\n</code></pre>\n<p>To view the current colon blink status in the app, navigate to the <strong>TIME</strong> screen and tap <strong>Show Advanced Settings</strong>. The <strong>Enable colon blinking (once per second)</strong> switch on the <strong>ADVANCED TIME SETTINGS</strong> screen indicates the current status.</p>\n<p>There are two ways to set colon blink on your Doppler:</p>\n<p>* Use the <em>Colon blink</em> (PUT) REST call.<br />* In the <strong>ADVANCED TIME SETTINGS</strong> screen of the app, tap the <strong>Enable colon blinking (once per second)</strong> switch.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"blink\"</td>\n<td>Returns a Boolean <em>true</em> if colon blink is enabled; <em>false</em> if colon blink is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","software","colon-blink"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"68e3e563-5ee5-411d-b7c5-96d09f3ec5c4","name":"Colon blink","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/colon-blink"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"14"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"blink\": true\n}"}],"_postman_id":"3963db91-9166-450d-b7d9-b7fa265d0b3c"},{"name":"Colon blink","event":[{"listen":"test","script":{"id":"a5398e43-973b-4484-bca1-2c97a7cef6ac","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"0870d138-990e-4d2f-96cb-d3704b23b5f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"blink\" : false\r\n}"},"url":"https://:5443/Doppler-01234567/software/colon-blink","description":"<p>The <em>Colon blink</em> REST call changes the colon blink setting on your Doppler. The colon is displayed between the hours and minutes on the Doppler.</p>\n<p>An example JSON Request body disables colon blink on your Doppler with the Boolean <em>false</em> value:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"blink\" : false\n}\n\n</code></pre>\n<p>The response verifies this change:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"blink\": false\n}\n\n</code></pre>\n<p>To set the current colon blink display in the app, navigate to the <strong>TIME</strong> screen and tap <strong>Show Advanced Settings</strong>. Under <strong>Clock display settings</strong>, slide the <strong>Enable colon blinking (once per second)</strong> switch to the right.</p>\n<p>There are two ways to view colon blink display status on your Doppler:</p>\n<p>* Use the <em>Colon blink</em> (GET) REST call.<br />* The <strong>Enable colon blinking (once per second)</strong> switch on the <strong>ADVANCED TIME SETTINGS</strong> screen of the app indicates the current setting.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"blink\"</td>\n<td>Returns a Boolean <em>true</em> if colon blink is enabled; <em>false</em> if colon blink is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","software","colon-blink"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"ca3cbc1b-7258-4bf3-9cc3-a05ca1d8899d","name":"Colon blink","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"blink\" : false\r\n}"},"url":"https://:5443/Doppler-01234567/software/colon-blink"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"15"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"blink\": false\n}"}],"_postman_id":"0870d138-990e-4d2f-96cb-d3704b23b5f2"},{"name":"Use Leading Zero","event":[{"listen":"test","script":{"id":"a6e47e38-df84-4c2a-9fee-86b7caedb120","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"ea1b217d-344b-4327-8dfb-afe66f4bf5a3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/use-leading-zero","description":"<p>The <em>Use Leading Zero</em> REST turns the leading zero on or off in 24-hour time mode on your Doppler. The leading zero is the initial 0 during the morning hours, so when the day initially starts it will display 0:01 rather than 00:01. At 9 in the morning it will display 9:00 instead of 09:00. This setting has no effect during the afternoon hours or if you have 12-hour time mode (AM/PM) enabled.</p>\n<p>An example JSON Request body disables the leading zero on your Doppler with the Boolean <em>false</em> value:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>The response verifies this change:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>To turn the leading zero on or off in the app, navigate to the TIME screen in the left settings menu and tap <strong>Show Advanced Settings</strong>. Under <strong>Clock display settings</strong>, toggle the <strong>Show leading zero in 24-hour mode</strong> switch.</p>\n<p>There are two ways to view the colon status on your Doppler:</p>\n<p>* Use the <strong>Use Leading Zero</strong> (GET) REST call.<br />* The <strong>Show leading zero in 24-hour mode</strong> switch on the <strong>ADVANCED TIME SETTINGS</strong> screen of the app indicates the current setting.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"on\"</td>\n<td>Returns a Boolean <em>true</em> if the leading zero is enabled; <em>false</em> if the Leading zero is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","software","use-leading-zero"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"e008d688-4fe5-4949-bef5-bf9f3e4495e2","name":"Use Leading zero","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/use-colon"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"11"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"on\": true\n}"}],"_postman_id":"ea1b217d-344b-4327-8dfb-afe66f4bf5a3"},{"name":"Use Leading Zero","event":[{"listen":"test","script":{"id":"a6e47e38-df84-4c2a-9fee-86b7caedb120","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"32ba9351-71a9-4eac-b3c7-db4cb7e06474","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"on\" : true\r\n}"},"url":"https://:5443/Doppler-01234567/software/use-leading-zero","description":"<p>The <em>Use Leading Zero</em> REST turns the leading zero on or off in 24-hour time mode on your Doppler. The leading zero is the initial 0 during the morning hours, so when the day initially starts it will display 0:01 rather than 00:01. At 9 in the morning it will display 9:00 instead of 09:00. This setting has no effect during the afternoon hours or if you have 12-hour time mode (AM/PM) enabled.</p>\n<p>An example JSON Request body disables the leading zero on your Doppler with the Boolean <em>false</em> value:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>The response verifies this change:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>To turn the leading zero on or off in the app, navigate to the TIME screen in the left settings menu and tap <strong>Show Advanced Settings</strong>. Under <strong>Clock display settings</strong>, toggle the <strong>Show leading zero in 24-hour mode</strong> switch.</p>\n<p>There are two ways to view the colon status on your Doppler:</p>\n<p>* Use the <strong>Use Leading Zero</strong> (GET) REST call.<br />* The <strong>Show leading zero in 24-hour mode</strong> switch on the <strong>ADVANCED TIME SETTINGS</strong> screen of the app indicates the current setting.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"on\"</td>\n<td>Returns a Boolean <em>true</em> if the leading zero is enabled; <em>false</em> if the Leading zero is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","software","use-leading-zero"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"b09f71b4-f063-460d-a2b9-7881a080f676","name":"Use Leading Zero","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/use-colon"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"11"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"on\": true\n}"}],"_postman_id":"32ba9351-71a9-4eac-b3c7-db4cb7e06474"},{"name":"Fade-time","event":[{"listen":"test","script":{"id":"5b3e14e3-d9a7-495c-a970-1dbc0534bcbf","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"8cb9f2f9-57a2-46b9-b88c-48f7df2230be","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/use-fade-time","description":"<p>The <em>Fade-time</em> REST turns on or off the Fade-time mode on your Doppler. This mode fades the time changes to have a smooth transition between each minute change rather than just changing instantly. This fade is subtle and lasts only a couple of seconds every minute.</p>\n<p>An example JSON Request body turning off Fade-time mode on your Doppler with the Boolean <em>false</em> value:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>The response verifies this change:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>To turn the Fade-time mode on or off in the app, navigate to the TIME screen in the left settings menu and tap <strong>Show Advanced Settings</strong>. Under <strong>Clock display settings</strong>, toggle the <strong>Enable the smooth time transitions</strong> switch.</p>\n<p>There are two ways to view the colon status on your Doppler:</p>\n<p>* Use the <strong>Fade-Time</strong> (GET) REST call.<br />* The <strong>Enable the smooth time transitions</strong> switch on the <strong>ADVANCED TIME SETTINGS</strong> screen of the app indicates the current setting.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"on\"</td>\n<td>Returns a Boolean <em>true</em> if the Fade-time mode is enabled; <em>false</em> if the Fade-time mode is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","software","use-fade-time"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"6c3cf9e1-7097-47e6-9322-19971ae299a5","name":"Fade-time","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/use-colon"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"11"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"on\": true\n}"}],"_postman_id":"8cb9f2f9-57a2-46b9-b88c-48f7df2230be"},{"name":"Fade-time","event":[{"listen":"test","script":{"id":"c9498bbe-7a38-45a5-808c-cb1654fb7f92","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"6d5e2cca-1255-4a05-a0fa-074b27b8ff73","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"on\": true\n}"},"url":"https://:5443/Doppler-01234567/software/use-fade-time","description":"<p>The <em>Fade-time</em> REST turns on or off the Fade-time mode on your Doppler. This mode fades the time changes to have a smooth transition between each minute change rather than just changing instantly. This fade is subtle and lasts only a couple of seconds every minute.</p>\n<p>An example JSON Request body turning off Fade-time mode on your Doppler with the Boolean <em>false</em> value:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>The response verifies this change:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>To turn the Fade-time mode on or off in the app, navigate to the TIME screen in the left settings menu and tap <strong>Show Advanced Settings</strong>. Under <strong>Clock display settings</strong>, toggle the <strong>Enable the smooth time transitions</strong> switch.</p>\n<p>There are two ways to view the colon status on your Doppler:</p>\n<p>* Use the <strong>Fade-Time</strong> (GET) REST call.<br />* The <strong>Enable the smooth time transitions</strong> switch on the <strong>ADVANCED TIME SETTINGS</strong> screen of the app indicates the current setting.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"on\"</td>\n<td>Returns a Boolean <em>true</em> if the Fade-time mode is enabled; <em>false</em> if the Fade-time mode is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","software","use-fade-time"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"bd4fda76-ed22-4489-90dd-c62ebae6c01c","name":"Fade-time","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/use-colon"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"11"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"on\": true\n}"}],"_postman_id":"6d5e2cca-1255-4a05-a0fa-074b27b8ff73"},{"name":"Display Seconds","event":[{"listen":"test","script":{"id":"a6e47e38-df84-4c2a-9fee-86b7caedb120","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"54de97a0-7fa4-412c-868c-d4a3d0530e28","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"{\r\n    \"on\" : false\r\n}"},"url":"https://:5443/Doppler-01234567/software/display-seconds","description":"<p>The <em>Display-Seconds</em> REST turns on or off the Display-seconds mode on your Doppler. This displays on the mini display (bottom right of the Doppler) the current time down to the second. If you have weather enabled this setting will overwrite it and display the seconds. This will always display in the same color as the main display.</p>\n<p>An example JSON Request body turning off Display seconds mode on your Doppler with the Boolean <em>false</em> value:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>The response verifies this change:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>To turn the Display seconds mode on or off in the app, navigate to the TIME screen in the left settings menu and tap <strong>Show Advanced Settings</strong>. Under <strong>Clock display settings</strong>, toggle the <strong>Show the seconds on the mini display</strong> switch.</p>\n<p>There are two ways to view the colon status on your Doppler:</p>\n<p>* Use the <strong>Display Seconds</strong> (GET) REST call.<br />* The <strong>Show the seconds on the mini display</strong> switch on the <strong>ADVANCED TIME SETTINGS</strong> screen of the app indicates the current setting.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"on\"</td>\n<td>Returns a Boolean <em>true</em> if the Display Seconds mode is enabled; <em>false</em> if the Display Seconds mode is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","software","display-seconds"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"9ac9b696-2575-4006-b94e-9a9d12f64157","name":"Display Seconds","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/use-colon"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"11"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"on\": true\n}"}],"_postman_id":"54de97a0-7fa4-412c-868c-d4a3d0530e28"},{"name":"Display Seconds","event":[{"listen":"test","script":{"id":"a6e47e38-df84-4c2a-9fee-86b7caedb120","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"d4cebd2c-290b-491d-a32e-c2a7c355a2c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"on\" : false\r\n}"},"url":"https://:5443/Doppler-01234567/software/display-seconds","description":"<p>The <em>Display-Seconds</em> REST turns on or off the Display-seconds mode on your Doppler. This displays on the mini display (bottom right of the Doppler) the current time down to the second. If you have weather enabled this setting will overwrite it and display the seconds. This will always display in the same color as the main display.</p>\n<p>An example JSON Request body turning off Display seconds mode on your Doppler with the Boolean <em>false</em> value:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>The response verifies this change:</p>\n<p>JSON</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"on\": false\n}\n\n</code></pre><p>To turn the Display seconds mode on or off in the app, navigate to the TIME screen in the left settings menu and tap <strong>Show Advanced Settings</strong>. Under <strong>Clock display settings</strong>, toggle the <strong>Show the seconds on the mini display</strong> switch.</p>\n<p>There are two ways to view the colon status on your Doppler:</p>\n<p>* Use the <strong>Display Seconds</strong> (GET) REST call.<br />* The <strong>Show the seconds on the mini display</strong> switch on the <strong>ADVANCED TIME SETTINGS</strong> screen of the app indicates the current setting.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"on\"</td>\n<td>Returns a Boolean <em>true</em> if the Display Seconds mode is enabled; <em>false</em> if the Display Seconds mode is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","software","display-seconds"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"4af35e43-a04f-4f52-8740-d1dfdacffc77","name":"Display Seconds","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/use-colon"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"11"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"on\": true\n}"}],"_postman_id":"d4cebd2c-290b-491d-a32e-c2a7c355a2c9"}],"id":"dc565dc8-99d4-4f1e-84df-55391ba95a2e","description":"<p>Your Doppler is a clock, right? These are REST calls to keep time on your Doppler.</p>\n","_postman_id":"dc565dc8-99d4-4f1e-84df-55391ba95a2e","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Audio","item":[{"name":"Get the system volume","event":[{"listen":"test","script":{"id":"33bc9ea6-2b7e-454c-adf6-b64ebc316f41","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"13b24f43-2b5d-43ea-88ec-f50046afe587","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/volume","description":"<p>The <em>Get the system volume</em> REST call retrieves the current system volume as a percentage (between 0 and 100).</p>\n<p>An example response showing the current volume at <em>19</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"volume\": 19\n}\n\n</code></pre><p>To view the system volume on the app, view the <strong>Volume</strong> slider in the <strong>HOME</strong> and <strong>AUDIO SETTINGS</strong> screen.</p>\n<p>To change system volume, do one of the following:</p>\n<ul>\n<li>Use the <em>Set the system volume</em> REST call.</li>\n<li>Press the <strong>+</strong> or the <strong>-</strong> buttons on your Doppler.</li>\n<li>Adjust the <strong>Volume</strong> slider in the app on the main screen or the <strong>AUDIO SETTINGS</strong> screen.</li>\n</ul>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"volume\"</td>\n<td>The system volume is a number representing a percentage between 0 and 100.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> The Doppler’s system volume setting is distinct from its alarm volume.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","volume"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"a03085d1-8799-4ee3-916d-3ce4404c49fe","name":"Getting the System Volume","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/volume"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"13"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"volume\": 50\n}"}],"_postman_id":"13b24f43-2b5d-43ea-88ec-f50046afe587"},{"name":"Set the system volume","event":[{"listen":"test","script":{"id":"bf42a654-a978-4dce-a810-35e921e0123f","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"e7a96c94-7c0d-46d7-ac93-d946cf06d37c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"volume\": 75\n}"},"url":"https://:5443/Doppler-01234567/hardware/volume","description":"<p>The <em>Set the system volume</em> REST call sets the current system volume as a percentage. The <em>Get the system volume</em> REST call can be used to verify.</p>\n<p>An example JSON Request body sets the system volume to a value of <em>75</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"volume\": 75\n}\n\n</code></pre>\n<p>The response verifies the latest system volume setting:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"volume\": 75\n}\n\n</code></pre>\n<p>There are two other ways to change the system volume:</p>\n<ul>\n<li>Press the <strong>+</strong> or the <strong>-</strong> buttons on your Doppler.</li>\n<li>Adjust the <strong>Volume</strong> slider on the app’s main or <strong>AUDIO SETTINGS</strong> screen.</li>\n</ul>\n<p>To verify the system volume, use the <em>Get the system volume</em> REST call.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"volume\"</td>\n<td>The system volume as a percentage number between 0 and 100.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Setting the system volume has no effect on its alarm volume.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","volume"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"fa30c1c9-ced7-4d20-a185-7fe90df4817f","name":"Setting the System Volume to 50%","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"volume\": 50\n}"},"url":"https://:5443/Doppler-01234567/hardware/volume"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"13"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"volume\": 50\n}"}],"_postman_id":"e7a96c94-7c0d-46d7-ac93-d946cf06d37c"},{"name":"Get sound preset","id":"85812bfc-1ae4-45c6-afdb-bded30a32380","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/sound-preset","description":"<p>The <em>Get sound preset</em> REST call will retrieve the currently selected audio preset on your Doppler. There are five Doppler presets available currently:</p>\n<ul>\n<li>PRESET1: Balanced</li>\n<li>PRESET2: Bass boost</li>\n<li>PRESET3: High boost</li>\n<li>PRESET4: Mid boost</li>\n<li>PRESET5: Untuned</li>\n</ul>\n<p>An example response that shows the current sound preset to be \"PRESET1\":</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"preset\": \"PRESET1\"\n}\n\n</code></pre>\n<p>The currently selected sound preset can be viewed on the <strong>AUDIO SETTINGS</strong> screen in the app.</p>\n<p>There are two ways to change a sound preset:</p>\n<ul>\n<li>Use the <em>Set sound preset</em> REST call.</li>\n<li>In the app’s <strong>AUDIO SETTINGS</strong> screen, tap one of the presets under <strong>Select preset</strong>.</li>\n</ul>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"preset\"</td>\n<td>One of the following text string values is returned: \"PRESET1\", \"PRESET2\", \"PRESET3\", \"PRESET4\", or \"PRESET5\".</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","hardware","sound-preset"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"bcd4cc21-4a4c-45cc-945d-34c66eeed426","name":"Getting the sound preset","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/sound-preset"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"20"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"preset\": \"PRESET1\"\n}"}],"_postman_id":"85812bfc-1ae4-45c6-afdb-bded30a32380"},{"name":"Set sound preset","id":"2efe23f3-b2e9-4be9-88ca-616f63a1bc1f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"preset\": \"PRESET1\"}"},"url":"https://:5443/Doppler-01234567/hardware/sound-preset","description":"<p>The <em>Set sound preset</em> REST call selects an audio preset on your Doppler. The available preset options are currently:</p>\n<ul>\n<li>PRESET1: Balanced</li>\n<li>PRESET2: Bass boost</li>\n<li>PRESET3: High boost</li>\n<li>PRESET4: Mid boost</li>\n<li>PRESET5: Untuned</li>\n</ul>\n<p>An example JSON Request body sets the sound preset to \"PRESET4\":</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"preset\": \"PRESET4\"\n}\n\n</code></pre>\n<p>A response verifies the sound preset changed:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"preset\": \"PRESET4\"\n}\n\n</code></pre>\n<p>The current sound preset can be changed on the <strong>AUDIO SETTINGS</strong> screen in the app. To retrieve the current preset, call the <em>Get sound preset</em> command.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"preset\"</td>\n<td>One of the following text string values is returned: \"PRESET1\", \"PRESET2\", \"PRESET3\", \"PRESET4\", or \"PRESET5\".</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Using any other value will have no effect on your Doppler and will “silently fail.” If the speaker is playing music (or other audio) when this command is made, expect some temporary minor distortion.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","sound-preset"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"ecab783d-ccae-4ea1-9e83-7cc5259fc156","name":"Setting the sound preset to Balanced","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"preset\": \"PRESET1\"}"},"url":"https://:5443/Doppler-01234567/hardware/sound-preset"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"20"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"preset\": \"PRESET1\"\n}"}],"_postman_id":"2efe23f3-b2e9-4be9-88ca-616f63a1bc1f"},{"name":"Get sound preset mode","id":"4d330560-c67d-4334-a993-fd9e137a7141","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/sound-preset-mode","description":"<p>The <em>Get sound preset mode</em> REST call retrieves the value of the current auto-optimized tuning mode on your Doppler. Auto-optimized tuning (sound present mode) can be either on or off:</p>\n<ul>\n<li>Set to <em>0</em> if auto-optimized tuning is disabled</li>\n<li>Set to <em>1</em> if auto-optimized tuning is enabled</li>\n</ul>\n<p>An example response that shows auto-optimizing tuning is disabled (<em>off</em>):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"presetmode\": 0\n}\n\n</code></pre>\n<p>Auto-optimized tuning adjusts the tuning of your Doppler based on the current volume to maximize the fidelity of the speakers and avoid clipping (distortion).</p>\n<p>To show the current sound preset mode in the app, select <strong>AUDIO SETTINGS</strong> screen and tap <strong>Show Advanced Settings</strong>.</p>\n<p>Use the <em>Set sound preset</em> mode REST call to change the value for auto-optimized tuning.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"presetmode\"</td>\n<td>The Doppler’s preset mode is a number. If returns 0, auto-optimized tuning is disabled. If returns 1, auto-optimized tuning is enabled.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Minor distortion may occur when changing volume at higher volumes as the Doppler adjusts the tuning. When this feature is disabled, the Doppler will use high-volume tuning for all volume levels.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","sound-preset-mode"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"3f870d22-3e93-44bc-bb3a-e25577114d39","name":"Getting the sound preset mode","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/sound-preset-mode"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"16"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"presetmode\": 1\n}"}],"_postman_id":"4d330560-c67d-4334-a993-fd9e137a7141"},{"name":"Set sound preset mode","id":"af2aa094-327a-4b90-9c0e-d3d813600c31","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"presetmode\": 1}"},"url":"https://:5443/Doppler-01234567/hardware/sound-preset-mode","description":"<p>The <em>Set sound preset mode</em> REST call changes the value of the current auto-optimized tuning mode on your Doppler. Auto-optimized tuning (sound present mode) can be either enabled (on) or disabled (off):</p>\n<ul>\n<li>Set to <em>0</em> if auto-optimized tuning is disabled</li>\n<li>Set to <em>1</em> if auto-optimized tuning is enabled</li>\n</ul>\n<p>An example JSON Request body enables the sound preset mode for auto-optimized tuning:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"presetmode\": 1\n}\n\n</code></pre>\n<p>A response verifies the sound preset mode setting:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"presetmode\": 1\n}\n\n</code></pre>\n<p>Auto-optimized tuning will adjust the tuning of your Doppler based on its current volume setting. The goal is to maximize the fidelity of the speakers and avoid clipping. As the Doppler adjusts tuning, minor distortion may occur when changing volume at higher volumes. When this feature is disabled, the Doppler will use the high-volume tuning for all volume levels.</p>\n<p>To select the sound preset mode in the app, select <strong>AUDIO SETTINGS</strong> screen and tap <strong>Show Advanced Settings</strong>.</p>\n<p>To retrieve the current auto-optimizing tuning, call the <em>Get sound preset</em> mode command.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"presetmode\"</td>\n<td>The Doppler’s preset mode is a number. If returns 0, auto-optimized tuning is disabled. If returns 1, auto-optimized tuning is enabled.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Any other value will have <em>no</em> effect on the Doppler and silently fail.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","sound-preset-mode"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"82e83fba-c25a-4224-93da-bfd23cff66d0","name":"Setting the sound preset mode to tun on auto optimized tuning","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"presetmode\": 1}"},"url":"https://:5443/Doppler-01234567/hardware/sound-preset-mode"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"16"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"presetmode\": 1\n}"}],"_postman_id":"af2aa094-327a-4b90-9c0e-d3d813600c31"}],"id":"81f36642-4219-4470-8587-7c8dec6d989d","description":"<p>The audio commands include GET/PUT pairs of REST calls for your Doppler that adjust the audio system of the Doppler.</p>\n","_postman_id":"81f36642-4219-4470-8587-7c8dec6d989d","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Alarms","item":[{"name":"Get alarm list","event":[{"listen":"test","script":{"id":"9f85119c-39c5-4d9c-b42a-bafe7c2ca03e","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"d2c16ae4-651c-4a14-b104-f40bed81210d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/alarms","description":"<p>The <em>Get alarm list</em> REST call retrieves a list of all alarms on your Doppler. Here is an example response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"alarms\": [\n        {\n            \"id\": 0,\n            \"name\": \"Doppler System Alarm\",\n            \"time_hr\": 10,\n            \"time_min\": 0,\n            \"repeat\": \"\",\n            \"color\": {\n                \"red\": 255,\n                \"green\": 0,\n                \"blue\": 0\n            },\n            \"volume\": 100,\n            \"status\": 10,\n            \"src\": 0,\n            \"sound\": \"Harp.mp3\",\n            \"next_trigger\": 1337\n        }\n    ]\n}\n\n</code></pre>\n<p>Alarms set from the following sources are stored on your Doppler (and are not stored in your app or the cloud server):</p>\n<ul>\n<li>Alarms set by the app</li>\n<li>Alarms received from Alexa Voice Service (AVS)</li>\n<li>Alarms set using buttons on the Doppler</li>\n</ul>\n<p>The response is an array of the following key/value pairs for each alarm:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"id\"</td>\n<td>A number value that identifies the current alarm. (A value of <em>0</em> represents the Doppler system alarm.)</td>\n</tr>\n<tr>\n<td>\"name\"</td>\n<td>The text string used to identify and name the alarm.</td>\n</tr>\n<tr>\n<td>\"time_hr\"</td>\n<td>A number value representing the alarm hour (24-hour value from 0-23).</td>\n</tr>\n<tr>\n<td>\"time_min\"</td>\n<td>A number value representing an alarm’s minutes (0-59).</td>\n</tr>\n<tr>\n<td>\"repeat\"</td>\n<td>Text string indicating the days of the week for repeating an alarm (ex: \"Mo\" for Mondays). For multiple days append days of the week without a space or any other characters (ex: \"MoTu\" for Mondays and Tuesdays, \"MoTuWeThFr\" for every workday of the week). A null text string indicates a one-time alarm (\"\").</td>\n</tr>\n<tr>\n<td>\"color\"</td>\n<td>A group of three numeric values representing the RGB color for the alarm on your Doppler (for \"red\", \"green\", and \"blue\" values, each number is between 0 to 255). Note that the actual displayed color is attenuated by the current brightness setting. This color will be used for the alarm bell color displayed on your Doppler. It is also used for the alarm bell icon in the app.</td>\n</tr>\n<tr>\n<td>\"volume\"</td>\n<td>A numeric value representing the maximum volume for the alarm (ranging between 0 and 100). The volume setting has no dependency to the behavior of ascending alarms.</td>\n</tr>\n<tr>\n<td>\"status\"</td>\n<td>A numeric value that indicates if the alarm is armed (0 is disabled or 1 is enabled).</td>\n</tr>\n<tr>\n<td>\"src\"</td>\n<td>A numeric value indicating the source of the alarm (0 is the default system alarm or set from your Doppler, 1 is from the app, and 2 is from Alexa).</td>\n</tr>\n<tr>\n<td>\"sound\"</td>\n<td>A text string indicating the audio sound file used when the alarm goes off on your Doppler (ex: \"Harp.mp3\").</td>\n</tr>\n<tr>\n<td>\"next_trigger\"</td>\n<td>A numeric value that is the approximate seconds to the next time this alarm would trigger (if armed). Currently ringing alarms will have a negative value.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Alarm ID 0 is reserved for the \"Doppler System Alarm\".</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","alarms"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"fc2ff4d8-6cd7-4997-872c-8afb740332c4","name":"Alarm list","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/alarms"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"ETag","value":"1554821041"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"341"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"alarms\": [\n        {\n            \"id\": 1,\n            \"name\": \"Get up\",\n            \"time_hr\": 7,\n            \"time_min\": 15,\n            \"repeat\": \"MoTuWe\",\n            \"color\": {\n                \"red\": 0,\n                \"green\": 255,\n                \"blue\": 50\n            },\n            \"volume\": 100,\n            \"status\": 1,\n            \"src\": 1,\n            \"sound\": \"Harp.mp3\"\n        },\n        {\n            \"id\": 0,\n            \"name\": \"Doppler System Alarm\",\n            \"time_hr\": 10,\n            \"time_min\": 0,\n            \"repeat\": \"0\",\n            \"color\": {\n                \"red\": 255,\n                \"green\": 0,\n                \"blue\": 0\n            },\n            \"volume\": 100,\n            \"status\": 10,\n            \"src\": 0,\n            \"sound\": \"Harp.mp3\"\n        }\n    ]\n}"}],"_postman_id":"d2c16ae4-651c-4a14-b104-f40bed81210d"},{"name":"Create a new alarm","id":"b89c6a53-adca-47fc-89f6-5b9bbb6c352f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"id\": 1,\r\n  \"name\": \"Get up\",\r\n  \"time_hr\": 7,\r\n  \"time_min\": 15,\r\n  \"repeat\": \"MoTuWe\",\r\n  \"color\": {\r\n    \"red\": 0,\r\n    \"green\": 255,\r\n    \"blue\": 50\r\n  },\r\n  \"volume\": 100,\r\n  \"status\": 1,\r\n  \"src\": 1,\r\n  \"sound\": \"Harp.mp3\"\r\n  }"},"url":"https://:5443/Doppler-01234567/alarms","description":"<p>The <em>Create a new alarm</em> REST call performs two functions:</p>\n<ul>\n<li>Create a new alarm by passing a new alarm description with a currently unused \"id\"</li>\n<li>Edit a number of alarms by passing an updated alarm list</li>\n</ul>\n<p>An example shows creating a new alarm named \"Get up\":</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 1,\n  \"name\": \"Get up\",\n  \"time_hr\": 7,\n  \"time_min\": 15,\n  \"repeat\": \"MoTuWe\",\n  \"color\": {\n    \"red\": 0,\n    \"green\": 255,\n    \"blue\": 50\n  },\n  \"volume\": 100,\n  \"status\": 1,\n  \"src\": 1,\n  \"sound\": \"Harp.mp3\"\n  }\n\n</code></pre>\n<p>There are a couple of things to note in the example above:</p>\n<ul>\n<li>The \"id\" value of <em>1</em> does not matter. This new alarm will be assigned the next available ID by the system when it is saved.</li>\n<li>The alarm is set to <em>7:15 AM</em> to be repeated on Mondays (<em>Mo</em>), Tuesdays (<em>Tu</em>), and Wednesdays (<em>We</em>).</li>\n</ul>\n<p>Once the alarm is set, an alarm bell icon will be displayed on your Doppler and a new alarm will appear on the main screen of your app. Both use the \"color\" value passed in the command. If one or more alarms are edited, they will be updated in the app.</p>\n<p>Your Doppler will respond with an updated alarm list. Using the example above, a response would look like the following:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-css\">{\n    \"alarms\": [\n        {\n            \"id\": 1,\n            \"name\": \"Get up\",\n            \"time_hr\": 7,\n            \"time_min\": 15,\n            \"repeat\": \"MoTuWe\",\n            \"color\": {\n                \"red\": 0,\n                \"green\": 255,\n                \"blue\": 50\n            },\n            \"volume\": 100,\n            \"status\": 1,\n            \"src\": 1,\n            \"sound\": \"Harp.mp3\",\n            \"next_trigger\": 720\n        },\n        {\n            \"id\": 0,\n            \"name\": \"Doppler System Alarm\",\n            \"time_hr\": 10,\n            \"time_min\": 2,\n            \"repeat\": \"\",\n            \"color\": {\n                \"red\": 255,\n                \"green\": 0,\n                \"blue\": 0\n            },\n            \"volume\": 100,\n            \"status\": 10,\n            \"src\": 0,\n            \"sound\": \"Harp.mp3\",\n            \"next_trigger\": 10800\n        }\n    ]\n}\n\n</code></pre>\n<p>Description of the JSON Request body and its response is an array of the following key/value pairs for each alarm:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"id\"</td>\n<td>A number value (the value of 0 is reserved for the \"Doppler System Alarm\").</td>\n</tr>\n<tr>\n<td>\"name\"</td>\n<td>The text string used to identify and name the alarm.</td>\n</tr>\n<tr>\n<td>\"time_hr\"</td>\n<td>A number value representing the alarm hour (24-hour value from 0-23).</td>\n</tr>\n<tr>\n<td>\"time_min\"</td>\n<td>A number value representing an alarm’s minutes (0-59).</td>\n</tr>\n<tr>\n<td>\"repeat\"</td>\n<td>Text string indicating the days of the week for repeating an alarm (ex: \"Mo\" for Mondays). For multiple days append days of the week without a space or any other characters (ex: \"MoTu\" for Mondays and Tuesdays, \"MoTuWeThFr\" for every workday of the week). A null text string indicates a one-time alarm (\"\").</td>\n</tr>\n<tr>\n<td>\"color\"</td>\n<td>A group of three numeric values representing the RGB color for the alarm on your Doppler (each number is between 0 to 255). Note that the actual displayed color is attenuated by the current brightness setting. This color will be used as the alarm bell color displayed on your Doppler. It is also used for the alarm bell icon in the app.</td>\n</tr>\n<tr>\n<td>\"volume\"</td>\n<td>A numeric value representing the maximum volume for the alarm (ranging between 0 and 100). The volume setting has no dependency to the behavior of ascending alarms.</td>\n</tr>\n<tr>\n<td>\"status\"</td>\n<td>A numeric value that indicates if the alarm is armed (0 is disabled or 1 is enabled).</td>\n</tr>\n<tr>\n<td>\"src\"</td>\n<td>A numeric value indicating the source of the alarm (0 is the default system alarm or set from your Doppler, 1 is from the app, and 2 is from Alexa).</td>\n</tr>\n<tr>\n<td>\"sound\"</td>\n<td>A text string indicating the audio sound file used when the alarm goes off on your Doppler (ex: \"Harp.mp3\").</td>\n</tr>\n<tr>\n<td>\"next_trigger\"</td>\n<td>A numeric value that indicates the number of seconds until this alarm will go off (if it was armed). A currently ringing alarm will have a negative value.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Alarm ID 0 is reserved for the \"Doppler System Alarm\".</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","alarms"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"d2046202-5caf-4f2a-b74e-3efb38863824","name":"Create a new alarm","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"id\": 1,\r\n  \"name\": \"Get up\",\r\n  \"time_hr\": 7,\r\n  \"time_min\": 15,\r\n  \"repeat\": \"MoTuWe\",\r\n  \"color\": {\r\n    \"red\": 0,\r\n    \"green\": 255,\r\n    \"blue\": 50\r\n  },\r\n  \"volume\": 100,\r\n  \"status\": 1,\r\n  \"src\": 1,\r\n  \"sound\": \"Harp.mp3\"\r\n  }"},"url":"https://:5443/Doppler-01234567/alarms"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"ETag","value":"1554821041"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"341"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"alarms\": [\n        {\n            \"id\": 1,\n            \"name\": \"Get up\",\n            \"time_hr\": 7,\n            \"time_min\": 15,\n            \"repeat\": \"MoTuWe\",\n            \"color\": {\n                \"red\": 0,\n                \"green\": 255,\n                \"blue\": 50\n            },\n            \"volume\": 100,\n            \"status\": 1,\n            \"src\": 1,\n            \"sound\": \"Harp.mp3\"\n        },\n        {\n            \"id\": 0,\n            \"name\": \"Doppler System Alarm\",\n            \"time_hr\": 10,\n            \"time_min\": 0,\n            \"repeat\": \"0\",\n            \"color\": {\n                \"red\": 255,\n                \"green\": 0,\n                \"blue\": 0\n            },\n            \"volume\": 100,\n            \"status\": 10,\n            \"src\": 0,\n            \"sound\": \"Harp.mp3\"\n        }\n    ]\n}"}],"_postman_id":"b89c6a53-adca-47fc-89f6-5b9bbb6c352f"},{"name":"Delete alarm","id":"b64b3d98-a706-4d08-a00b-722cc55d7063","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://:5443/Doppler-01234567/alarms/1","description":"<p>The <em>Delete alarm</em> REST call deletes a specific alarm on your Doppler using an alarm ID. Append an alarm ID (<em>#</em>) to the URL using this format:</p>\n<p><code>https://:5443/Doppler-01234567/alarms/#</code></p>\n<p>To identify an alarm ID, perform a <em>Get alarm list</em> REST call to retrieve a list of current IDs. This example response shows two current alarms (IDs of <em>0</em> and <em>1</em>):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    ...\n    \"id\": 0,\n        \"name\": \"Doppler System Alarm\",\n    ...\n    \"id\": 1,\n        \"name\": \"Early Wakeup\",\n    ...\n}\n\n</code></pre>\n<p>To delete the \"Early Wakeup\" alarm (ID of <em>1</em>), use this template with the alarm \"id\" number appended to the URL:</p>\n<p><code>https://:5443/Doppler-01234567/alarms/1</code></p>\n<p>If the alarm exists, it will be removed from your Doppler and on your app. An example response returns the remaining alarms:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"alarms\": [\n        {\n            \"id\": 0,\n            \"name\": \"Doppler System Alarm\",\n            \"time_hr\": 10,\n            \"time_min\": 2,\n            \"repeat\": \"\",\n            \"color\": {\n                \"red\": 255,\n                \"green\": 0,\n                \"blue\": 0\n            },\n            \"volume\": 100,\n            \"status\": 10,\n            \"src\": 0,\n            \"sound\": \"Harp.mp3\",\n            \"next_trigger\": 1337\n        }\n    ]\n}\n\n</code></pre>\n<p>This leaves only the Doppler System Alarm (ID of 0) remaining that is currently disarmed with the time set for 10:02 AM.</p>\n<p>The response is an array of the following key/value pairs for each remaining alarm on your Doppler:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"id\"</td>\n<td>A number value that identifies the current alarm. (A value of <em>0</em> represents the Doppler system alarm.)</td>\n</tr>\n<tr>\n<td>\"name\"</td>\n<td>The text string used to identify and name the alarm.</td>\n</tr>\n<tr>\n<td>\"time_hr\"</td>\n<td>A number value representing the alarm hour (24-hour value from 0-23).</td>\n</tr>\n<tr>\n<td>\"time_min\"</td>\n<td>A number value representing an alarm’s minutes (0-59).</td>\n</tr>\n<tr>\n<td>\"repeat\"</td>\n<td>Text string indicating the days of the week for repeating an alarm (ex: \"Mo\" for Mondays). For multiple days append days of the week without a space or any other characters (ex: \"MoTu\" for Mondays and Tuesdays, \"MoTuWeThFr\" for every workday of the week). A null text string indicates a one-time alarm (\"\").</td>\n</tr>\n<tr>\n<td>\"color\"</td>\n<td>A group of three numeric values representing the RGB color for the alarm on your Doppler (each number is between 0 to 255). Note that the actual displayed color is attenuated by the current brightness setting. This color will be used as the alarm bell color displayed on your Doppler. It is also used for the alarm bell icon in the app.</td>\n</tr>\n<tr>\n<td>\"volume\"</td>\n<td>A numeric value representing the maximum volume for the alarm (ranging between 0 and 100). The volume setting has no dependency to the behavior of ascending alarms.</td>\n</tr>\n<tr>\n<td>\"status\"</td>\n<td>A numeric value that indicates if the alarm is armed (0 is disabled or 1 is enabled).</td>\n</tr>\n<tr>\n<td>\"src\"</td>\n<td>A numeric value indicating the source of the alarm (0 is the default system alarm or set from your Doppler, 1 is from the app, and 2 is from Alexa).</td>\n</tr>\n<tr>\n<td>\"sound\"</td>\n<td>A text string indicating the audio sound file used when the alarm goes off on your Doppler (ex: \"Harp.mp3\").</td>\n</tr>\n<tr>\n<td>\"next_trigger\"</td>\n<td>A numeric value that indicates the number of seconds until this alarm will go off (if it was armed). A currently ringing alarm will have a negative value.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Alarm ID 0 is reserved for the \"Doppler System Alarm\", and cannot be deleted (only disabled). Alexa alarms cannot be deleted with the <em>Delete alarm</em> REST API.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","alarms","1"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"5c504ee2-f15f-434e-a248-550f12fb0308","name":"Delete alarm","originalRequest":{"method":"DELETE","header":[],"url":"https://:5443/Doppler-01234567/alarms/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"180"},{"key":"ETag","value":"2352248068"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"alarms\": [\n        {\n            \"id\": 0,\n            \"name\": \"Doppler System Alarm\",\n            \"time_hr\": 10,\n            \"time_min\": 2,\n            \"repeat\": \"\",\n            \"color\": {\n                \"red\": 255,\n                \"green\": 0,\n                \"blue\": 0\n            },\n            \"volume\": 100,\n            \"status\": 10,\n            \"src\": 0,\n            \"sound\": \"Harp.mp3\"\n        }\n    ]\n}"}],"_postman_id":"b64b3d98-a706-4d08-a00b-722cc55d7063"},{"name":"Get all usable alarm sound names","event":[{"listen":"test","script":{"id":"3a6fd4e9-a6db-4531-b8e7-7e7395bf0b2f","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"44ff3dde-3479-417f-abc6-6aa43332413a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/alarms/sounds","description":"<p>The <em>Get all usable alarm sound names</em> REST call retrieves a list of all alarm sound filenames on your Doppler. An example alarm sound list is shown below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"sounds\": [\n        \"Harp.mp3\",\n        \"Alarming.mp3\",\n        \"Dialup.mp3\",\n        \"Waves.mp3\",\n        \"Classic.mp3\",\n        \"Playful.mp3\",\n        \"Ripples.mp3\",\n        \"1980.mp3\",\n        \"Stream.mp3\",\n        \"Jungle.mp3\",\n        \"Rooster.mp3\",\n        \"Rainforest.mp3\",\n        \"Trek.mp3\",\n        \"Sub.mp3\",\n        \"Violin.mp3\",\n        \"Jazz.mp3\",\n        \"Gentle.mp3\",\n        \"Sandman.mp3\",\n        \"Purite.mp3\",\n        \"Dance.mp3\"\n    ]\n}\n\n</code></pre>\n<p>The response is an array of the following key/value pairs for each alarm:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"sounds\"</td>\n<td>A series of text strings in an array representing available sound filenames (ex: \"Harp.mp3\").</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","alarms","sounds"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"f9bce523-d5c8-4696-94a5-cafcf3d1cd8e","name":"Get all usable alarm sound names","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/alarms/sounds"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"270"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"sounds\": [\n        \"Harp.mp3\",\n        \"Alarming.mp3\",\n        \"Dialup.mp3\",\n        \"Waves.mp3\",\n        \"Classic.mp3\",\n        \"Playful.mp3\",\n        \"Ripples.mp3\",\n        \"1980.mp3\",\n        \"Stream.mp3\",\n        \"Jungle.mp3\",\n        \"Rooster.mp3\",\n        \"Rainforest.mp3\",\n        \"Trek.mp3\",\n        \"Sub.mp3\",\n        \"Violin.mp3\",\n        \"Jazz.mp3\",\n        \"Gentle.mp3\",\n        \"Sandman.mp3\",\n        \"Purite.mp3\",\n        \"Dance.mp3\"\n    ]\n}"}],"_postman_id":"44ff3dde-3479-417f-abc6-6aa43332413a"},{"name":"Have Doppler play an alarm sound","event":[{"listen":"test","script":{"id":"674dc631-71a1-4d53-becc-2fecdd9251b4","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"164ad99a-cb0f-4425-810b-632a0ab0c5ba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"vol\": 20,\n    \"sound\": \"Harp.mp3\"\n}"},"url":"https://:5443/Doppler-01234567/alarms/sounds/play","description":"<p>Use the <em>Have Doppler play an alarm sound</em> REST call to play a specific alarm sound on your Doppler. To play a sound file (\"Harp.mp3\") at a specific audio volume (<em>20</em> percent and ignoring any ascending alarm settings), pass the following command information:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"vol\": 20,\n    \"sound\": \"Harp.mp3\"\n}\n\n</code></pre>\n<p>Using this REST call is a great way to test out the alarm sounds. Given the example, a response returns a text response of:</p>\n<p><code>OK</code></p>\n<p>The sound will play on your Doppler for the full duration of the sound file (just like it would when an alarm goes off). To stop the audio playback, send the <em>Have Doppler play an alarm sound</em> REST call with the following JSON Request body:</p>\n<p><code>{\"sound\": \"stop\"}</code></p>\n<p>A text response of <code>OK</code> will be returned.</p>\n<p>Request body:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"vol\"</td>\n<td>A number representing the audio volume for the alarm (from 0 to 100).</td>\n</tr>\n<tr>\n<td>\"sound\"</td>\n<td>The sound file represented as a text string (includes the filename extension MP3).</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Value</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>OK</td>\n<td>A two-character text response indicating that the call has been processed (even if the sound file doesn’t currently exist).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> If a sound file doesn’t exist, a special tone sequence is played.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","alarms","sounds","play"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"94f66741-cd37-4a6f-b354-55da840af2d2","name":"Have Doppler play an alarm sound","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"vol\": 20,\n    \"sound\": \"Harp.mp3\"\n}"},"url":"https://:5443/Doppler-01234567/alarms/sounds/play"},"status":"OK","code":200,"_postman_previewlanguage":"plain","header":[{"key":"Content-Length","value":"2"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"},{"key":"Content-Type","value":"text/plain"}],"cookie":[],"responseTime":null,"body":"OK"}],"_postman_id":"164ad99a-cb0f-4425-810b-632a0ab0c5ba"},{"name":"Gets if Doppler is using ascending volume for alarms","event":[{"listen":"test","script":{"id":"422222f2-e4ca-479d-b437-41c9e59e4599","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"f1f5e6d9-1b61-4cf9-b780-22bc8af159e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/alexa/ascending","description":"<p>Use the <em>Gets if Doppler is using ascending volume for alarms</em> REST call to retrieve the current ascending alarm volume setting. If, for example, the ascending alarm setting is disabled, the response would be:</p>\n<p><code>{\"ascending\": false}</code></p>\n<p>On the <strong>ALARM SETTINGS</strong> screen in the app, the current value can be viewed with the <strong>Enable ascending alarms</strong> switch. To change the ascending alarms setting with the <em>Sets ascending volume for alarms</em> REST call.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"ascending\"</td>\n<td>Return Boolean value of <em>true</em> if ascending alarm setting is enabled; otherwise, return <em>false</em> if ascending alarm setting is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","alexa","ascending"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"6c9eae4b-bae7-4541-83bd-df953d53fe09","name":"Gets if Doppler is using ascending volume for alarms","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/alexa/ascending"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"18"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"ascending\": true\n}"}],"_postman_id":"f1f5e6d9-1b61-4cf9-b780-22bc8af159e4"},{"name":"Sets ascending volume for alarms","event":[{"listen":"test","script":{"id":"bef53620-6142-4ecf-939e-37345b2fe9e8","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"df3ff9dd-e4ed-4422-a252-3b44759f1d87","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ascending\": true\n}"},"url":"https://:5443/Doppler-01234567/alexa/ascending","description":"<p>Use the <em>Sets ascending volume for alarms</em> REST call to change the current ascending alarm volume setting. If the ascending alarm setting is disabled, use the following JSON body to enable it:</p>\n<p><code>{\"ascending\": true}</code></p>\n<p>To retrieve the ascending alarms setting at a later time, use the <em>Gets if Doppler is using ascending volume for alarms</em> REST call. On the <strong>ALARM SETTINGS</strong> screen in the app, the current value can be set with the <strong>Enable ascending alarms</strong> switch.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"ascending\"</td>\n<td>A Boolean <em>true</em> if ascending alarm setting is enabled; otherwise, return <em>false</em> if ascending alarm setting is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","alexa","ascending"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"acf003bf-a19e-4adb-9bdb-1b7e7ae3ca88","name":"Sets ascending volume for alarms","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ascending\": true\n}"},"url":"https://:5443/Doppler-01234567/alexa/ascending"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"18"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"ascending\": true\n}"}],"_postman_id":"df3ff9dd-e4ed-4422-a252-3b44759f1d87"}],"id":"44a8eaae-f5c3-4590-b144-8e3c21a7f1c3","description":"<p>Your Doppler is an alarm clock, right? Here are the REST calls to manage alarms on your Doppler.</p>\n","_postman_id":"44a8eaae-f5c3-4590-b144-8e3c21a7f1c3","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Brightness","item":[{"name":"Light sensor and auto-dimming","item":[{"name":"Light sensor value","event":[{"listen":"test","script":{"id":"c96c8fde-358d-47e8-917b-6018018aaef6","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"8b362ade-03a6-4b69-bb90-92879e03485d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/light-sensor","description":"<p>The <em>Light sensor value</em> REST call retrieves the current value of your Doppler’s light sensor.</p>\n<p>The returned value can frequently change due to the amount of light detected. Light sensors don’t work the same way our eyes react to light. The lower the value, the more significant the change.</p>\n<p>The following response was detected in a well-lit office during the day:</p>\n<p><code>{\"sensor\": 8283}</code></p>\n<p>Just about twenty minutes later, the response changed slightly to:</p>\n<p><code>{\"sensor\": 7873}</code></p>\n<p>Shine a flashlight onto your Doppler’s sensor, the returned sensor value can dramatically change:</p>\n<p><code>{\"sensor\": 65355}</code></p>\n<p>A decently dark bedroom should be under 300:</p>\n<p><code>{\"sensor\": 300}</code></p>\n<p>The Doppler’s light sensor value can be viewed in the app. On the <strong>BRIGHTNESS</strong> screen, tap <strong>Show Advanced Settings</strong> to view the current <strong>Current light sensor value</strong>.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"sensor\"</td>\n<td>A 16-bit integer number between 0 and 65,535.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Neither the app or REST calls can change your Doppler’s sensor values.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","light-sensor"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"b03167de-e9d9-4bac-9c46-c413e44962d4","name":"Light sensor value","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/light-sensor"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"16"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"sensor\": 19542\n}"}],"_postman_id":"8b362ade-03a6-4b69-bb90-92879e03485d"},{"name":"Day/night mode status","event":[{"listen":"test","script":{"id":"201028b7-d31a-40b6-9cf0-cc25309e829b","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"03ba101e-0e0e-4f8f-8be6-b352841dd8f0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/day-mode","description":"<p>The <em>Day/night mode status</em> REST call retrieves your Doppler's current day or night mode status. A response of <em>true</em> indicates day mode, while a response of <em>false</em> indicates night mode.</p>\n<p>This example response indicates your Doppler is currently in day mode:</p>\n<p><code>{\"isDayMode\": true}</code></p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"isDayMode\"</td>\n<td>Returns Boolean <em>true</em> if day mode; returns <em>false</em> if night mode.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> There is no ability to set day or night mode via the app or REST calls. It is only set via the light sensor.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","day-mode"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"3f07e15c-cd0c-4d74-9057-494e3369d9fe","name":"Day/night mode status","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/day-mode"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"18"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"isDayMode\": true\n}"}],"_postman_id":"03ba101e-0e0e-4f8f-8be6-b352841dd8f0"},{"name":"Day to night transition value","event":[{"listen":"test","script":{"id":"20266a7a-7500-41a6-a815-763ac6999b77","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"7098eed7-aec5-4261-85f3-e41d3fd65f81","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/high-to-low-transition","description":"<p>The <em>Day to night transition value</em> REST call retrieves your Doppler’s current light sensor value. The light sensor is used to transition from day to night mode. The value will be between 0 and 65,535 with a default value of 235.</p>\n<p>An example response for a day to night transition value of <em>148</em> is:</p>\n<p><code>{\"transition\": 148}</code></p>\n<p>A high value (brighter) corresponds to the day transition point, and a low value (dimmer) corresponds to the night transition point.</p>\n<p>Alternatively, the app can manage the transition value. Navigate to the <strong>BRIGHTNESS</strong> screen and tap <strong>Show Advanced Settings</strong> to view the current <strong>Day to night threshold</strong> setting.</p>\n<p>There are two ways to change the day to night threshold:</p>\n<ul>\n<li>Use <em>Day to night transition value</em> (PUT) REST call to change the setting.</li>\n<li>On the <strong>BRIGHTNESS</strong> screen of the app, tap <strong>Show Advanced Settings</strong> to change the current <strong>Day to night threshold</strong> slider setting.</li>\n</ul>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"transition\"</td>\n<td>A 16-bit integer number between 0 and 65,535 (default of 235).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","hardware","high-to-low-transition"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"31cd9352-59f5-46d6-81b5-546ec815e34a","name":"Day to night transition value","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/high-to-low-transition"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"18"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"transition\": 235\n}"}],"_postman_id":"7098eed7-aec5-4261-85f3-e41d3fd65f81"},{"name":"Day to night transition value","event":[{"listen":"test","script":{"id":"7a865ef4-96ea-4b5e-bc0f-720a10b8e378","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"4c723552-7e93-400b-aaeb-f85e7f650377","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"transition\": 235\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/high-to-low-transition","description":"<p>The <em>Day to Night transition value</em> REST call changes your Doppler’s light sensor value used to transition from day to night mode. The value will be between 0 and 65,535. Your Doppler’s default setting is 235.</p>\n<p>An example JSON Request body changes the light sensor’s day to night transition to a value of <em>200</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"transition\": 200\n}\n\n</code></pre>\n<p>The response verifies this change:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"transition\": 200\n}\n\n</code></pre>\n<p>Alternatively in the app, navigate to the <strong>BRIGHTNESS</strong> screen and tap <strong>Show Advanced Settings</strong> to change the current <strong>Day to night threshold</strong> slider setting.</p>\n<p>To view the current setting at any time, use the <em>Day to night transition value</em> (GET) REST call.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"transition\"</td>\n<td>A 16-bit integer number between 0 and 65,535 (default of 235).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","hardware","high-to-low-transition"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"392bc16a-9e5e-4817-b4e8-becefa15c0b7","name":"Day to night transition value","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"transition\": 235\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/high-to-low-transition"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"18"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"transition\": 235\n}"}],"_postman_id":"4c723552-7e93-400b-aaeb-f85e7f650377"},{"name":"Night to day transition value","event":[{"listen":"test","script":{"id":"8e95e4f4-54e0-4123-84a0-7dbdc729b0c4","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"c45a08e9-2c1f-456c-a1ff-eea3c2f71887","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/low-to-high-transition","description":"<p>The <em>Night to day transition value</em> REST call retrieves the current light sensor value used to transition from night to day mode. The value will be between 0 and 65,535, with a default value of 275.</p>\n<p>An example response for a night to day transition value of <em>178</em> is:</p>\n<p><code>{\"transition\": 178}</code></p>\n<p>On the <strong>BRIGHTNESS</strong> screen of the app, tap <strong>Show Advanced Settings</strong> to view the current <strong>Night to day threshold</strong> setting.</p>\n<p>There are two ways to change the night to day threshold:</p>\n<ul>\n<li>Use <em>Night to day transition value</em> (PUT) REST call to change the setting.</li>\n<li>On the <strong>BRIGHTNESS</strong> screen of the app, tap <strong>Show Advanced Settings</strong> to change the current <strong>Night to day threshold</strong> slider setting.</li>\n</ul>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"transition\"</td>\n<td>A 16-bit integer number between 0 and 65,535 (default of 275).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","hardware","low-to-high-transition"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"69aa0071-5218-4426-8fdd-4e49c4dfe7f4","name":"Night to day transition value Copy","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/low-to-high-transition"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"18"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"transition\": 275\n}"}],"_postman_id":"c45a08e9-2c1f-456c-a1ff-eea3c2f71887"},{"name":"Night to day transition value","event":[{"listen":"test","script":{"id":"375df144-b29d-4c17-9758-d4b36dde9ff6","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"0cc3cfd0-2bb9-4a23-a235-392b8c7da763","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"transition\": 275\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/low-to-high-transition","description":"<p>The <em>Night to day transition value</em> REST call changes your Doppler’s light sensor value used to transition from night to day mode. The value will be between 0 and 65,535. Your Doppler’s default setting is 275.</p>\n<p>An example JSON Request body changes the light sensor’s night to day transition to a value of <em>210</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transition\": 210\n}\n\n</code></pre>\n<p>The response verifies this change:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transition\": 210\n}\n\n</code></pre>\n<p>Alternatively in the app, navigate to the <strong>BRIGHTNESS</strong> screen and tap <strong>Show Advanced Settings</strong> to change the current <strong>Night to day threshold</strong> slider setting.</p>\n<p>To view the current setting, use the <em>Night to day transition value</em> (GET) REST call.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"transition\"</td>\n<td>A 16-bit integer number between 0 and 65,535 (default of 275).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","hardware","low-to-high-transition"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"72e1fb4e-957c-44dd-a175-5999c87c11c9","name":"Night to day transition value","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/low-to-high-transition"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"18"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"transition\": 275\n}"}],"_postman_id":"0cc3cfd0-2bb9-4a23-a235-392b8c7da763"}],"id":"0bcff4a0-252f-4f34-9985-cea7dc02c7a1","description":"<p>These are REST calls for managing advanced light sensor and auto-dimming settings on your Doppler.</p>\n","_postman_id":"0bcff4a0-252f-4f34-9985-cea7dc02c7a1","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Day mode","item":[{"name":"Day mode display brightness","event":[{"listen":"test","script":{"id":"676a85d4-edb3-4b21-9e1a-0bde8c481801","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"9767b523-bc4c-4232-a29e-4e3f1f966afd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/high-display-brightness","description":"<p>The <em>Day mode display brightness</em> REST call retrieves your Doppler’s current display brightness level for day mode from your Doppler. The returned brightness level is a number from 0 to 100 (representing a percentage of brightness). This example response shows the current daytime brightness level of set to <em>49</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"brightness\": 49\n}\n\n</code></pre>\n<p>The <strong>Display During Day</strong> value on the <strong>BRIGHTNESS</strong> screen of the app also shows the current day mode display brightness.</p>\n<p>Use the <em>Day mode display brightness</em> (PUT) REST call to change the display brightness level for day mode.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"brightness\"</td>\n<td>The numeric level of brightness in day mode (from 0 to 100).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> This call doesn’t return information about night mode brightness, nor does it depend on the current mode your Doppler is in.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","high-display-brightness"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"e2daa619-75b3-40e9-87f2-f60ccf91546a","name":"Day mode display brightness","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/high-display-brightness"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"17"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"brightness\": 80\n}"}],"_postman_id":"9767b523-bc4c-4232-a29e-4e3f1f966afd"},{"name":"Day mode display brightness","event":[{"listen":"test","script":{"id":"7f64837b-6c54-43f4-ac20-27beffaa137a","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"45c4c8d2-b4c9-4630-901e-42835e58f3f1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"brightness\": 80\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/high-display-brightness","description":"<p>The <em>Day mode display brightness</em> REST call sets your Doppler’s display brightness level for day mode. The brightness level is a number from 0 to 100 (representing a percentage of brightness).</p>\n<p>An example JSON Request body sets the day mode display brightness to <em>49</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"brightness\": 49\n}\n\n</code></pre>\n<p>The response shows the current daytime brightness level of set to <em>49</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"brightness\": 49\n}\n\n</code></pre>\n<p>The <strong>Display During Day</strong> slider on the <strong>BRIGHTNESS</strong> screen of the app can set the display brightness in day mode.</p>\n<p>Use the <em>Day mode display brightness</em> (GET) REST call to retrieve the current data mode display brightness level.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"brightness\"</td>\n<td>The level of brightness in day mode (a number from 0 to 100).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> This call doesn’t change information about brightness in night mode, nor does it depend on the current mode your Doppler is in.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","high-display-brightness"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"817f93df-733e-4c28-af6e-947519b682cf","name":"Day mode display brightness","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"brightness\": 80\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/high-display-brightness"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"17"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"brightness\": 80\n}"}],"_postman_id":"45c4c8d2-b4c9-4630-901e-42835e58f3f1"},{"name":"Day mode button brightness","event":[{"listen":"test","script":{"id":"3fb83dfd-e884-4fc2-a61a-241023be8a54","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"a2404ea8-78df-479e-91c6-a6cfc26338b1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/high-button-brightness","description":"<p>The <em>Day mode button brightness</em> REST call retrieves your Doppler’s current button brightness level for day mode from your Doppler. The returned brightness level is a number from 0 to 100 (representing a percentage of brightness).</p>\n<p>The following example shows a daytime brightness level of <em>31</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"brightness\": 31\n}\n\n</code></pre>\n<p>The response would verify the brightness setting:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"brightness\": 31\n}\n\n</code></pre>\n<p>The <strong>Buttons During Day</strong> value on the <strong>BRIGHTNESS</strong> screen of the app also shows the current day mode button brightness.</p>\n<p>Use the <em>Day mode button brightness</em> (PUT) REST call to change the button brightness level for day mode.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"brightness\"</td>\n<td>The level of brightness in day mode (numeric value from 0 to 100).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> This call doesn’t return information about button brightness in night mode, nor does it depend on the current mode your Doppler is in.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","high-button-brightness"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"9659f916-ab80-4c7b-986f-4655efb245a8","name":"Day mode button brightness","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/high-button-brightness"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"18"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"brightness\": 100\n}"}],"_postman_id":"a2404ea8-78df-479e-91c6-a6cfc26338b1"},{"name":"Day mode button brightness","event":[{"listen":"test","script":{"id":"51cdc9aa-9c1c-4c40-8b04-ec8ee48cc3ea","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"f075667a-6a35-429d-889a-f6a545727194","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"brightness\": 100\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/high-button-brightness","description":"<p>The <em>Day mode button brightness</em> REST call sets your Doppler’s button brightness level for day mode. The brightness level is a number from 0 to 100 (representing a percentage of brightness).</p>\n<p>An example sets the day mode button brightness to <em>100</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"brightness\": 100\n}\n\n</code></pre>\n<p>The response would verify the setting:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"brightness\": 100\n}\n\n</code></pre>\n<p>The <strong>Buttons During Day</strong> slider on the <strong>BRIGHTNESS</strong> screen of the app can set the button brightness in day mode.</p>\n<p>Use the <em>Day mode button brightness</em> (GET) REST call to retrieve the current button brightness level for day mode.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"brightness\"</td>\n<td>The level of brightness in day mode (number from 0 to 100).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> This call doesn’t change information about brightness in night mode, nor does it depend on the current mode your Doppler is in.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","high-button-brightness"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"3367f064-cc47-49d2-8db6-a06b86e0b9fb","name":"Day mode button brightness","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"brightness\": 100\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/high-button-brightness"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"18"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"brightness\": 100\n}"}],"_postman_id":"f075667a-6a35-429d-889a-f6a545727194"}],"id":"744e7cc5-3e42-48c2-a734-dfa3e5acf76d","description":"<p>These are REST calls for managing day mode brightness settings for display and buttons on your Doppler.</p>\n","_postman_id":"744e7cc5-3e42-48c2-a734-dfa3e5acf76d","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Night mode","item":[{"name":"Night mode display brightness","event":[{"listen":"test","script":{"id":"8c44177c-ab7c-41c3-90c5-4aeb53baa41f","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"30d0535e-2143-43f4-84f9-d2aef8b5e84e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/low-display-brightness","description":"<p>The <em>Night mode display brightness</em> REST call retrieves your Doppler’s display brightness level for night mode. The brightness level is a number from 0 to 100 (representing a percentage of brightness).</p>\n<p>The <strong>Display During Night</strong> slider on the <strong>BRIGHTNESS</strong> screen of the app can set the display brightness in night mode.</p>\n<p>Use the <em>Night mode display brightness</em> (PUT) REST call to set the current display brightness level for night mode.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"brightness\"</td>\n<td>The level of brightness in night mode (number from 0 to 100).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> This call doesn’t return information about brightness in day mode, nor does it depend on the current mode your Doppler is in.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","low-display-brightness"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"1fd57398-698c-4a6b-b138-4f2beec54ac0","name":"Night mode display brightness","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/low-display-brightness"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"17"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"brightness\": 10\n}"}],"_postman_id":"30d0535e-2143-43f4-84f9-d2aef8b5e84e"},{"name":"Night mode display brightness","event":[{"listen":"test","script":{"id":"38fba61f-03e1-4f1f-aab6-8d6d2d23501d","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"a318f32e-5ea0-47ce-8b83-3719cfc7aa75","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"brightness\": 10\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/low-display-brightness","description":"<p>The <em>Night mode display brightness</em> REST call sets your Doppler’s display brightness level for night mode. The brightness level is a number from 0 to 100 (representing a percentage of brightness).</p>\n<p>An example JSON Request body sets the night mode display brightness to <em>10</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"brightness\": 10\n}\n\n</code></pre>\n<p>The response shows the current nighttime brightness level of set to <em>10</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"brightness\": 10\n}\n\n</code></pre>\n<p>The <strong>Display During Night</strong> slider on the <strong>BRIGHTNESS</strong> screen of the app can set the display brightness in night mode.</p>\n<p>Use the <em>Night mode display brightness</em> (GET) REST call to retrieve the current display brightness level for night mode.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"brightness\"</td>\n<td>The level of brightness in night mode (number from 0 to 100).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> This call doesn’t change information about brightness in day mode, nor does it depend on the current mode your Doppler is in.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","low-display-brightness"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"870feb42-32e1-45f3-8e83-6190c5811db2","name":"Night mode display brightness","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"brightness\": 10\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/low-display-brightness"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"17"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"brightness\": 10\n}"}],"_postman_id":"a318f32e-5ea0-47ce-8b83-3719cfc7aa75"},{"name":"Night mode button brightness","event":[{"listen":"test","script":{"id":"83ef72b0-67c7-4c6e-a304-6ec2a8445df2","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"06dbd090-94eb-48d1-b823-cc9735b405ba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/low-button-brightness","description":"<p>The <em>Night mode button brightness</em> REST call retrieves the current button brightness level for night mode. The brightness level is a number from 0 to 100 (representing a percentage of brightness).</p>\n<p>The response shows the current nighttime brightness level of set to <em>20</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"brightness\": 20\n}\n\n</code></pre>\n<p>The <strong>Buttons During Night</strong> slider on the <strong>BRIGHTNESS</strong> screen of the app can set the button brightness in night mode.</p>\n<p>Use the <em>Night mode button brightness</em> (PUT) REST call to set the button brightness level for night mode.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"brightness\"</td>\n<td>The level of brightness in night mode (number from 0 to 100).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> This call doesn’t return information about brightness in day mode, nor does it depend on the current mode your Doppler is in.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","low-button-brightness"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"980dc339-e1a1-463e-a636-9358b642eb53","name":"Night mode button brightness","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/low-button-brightness"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"17"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"brightness\": 10\n}"}],"_postman_id":"06dbd090-94eb-48d1-b823-cc9735b405ba"},{"name":"Night mode button brightness","event":[{"listen":"test","script":{"id":"58e7eacc-3109-454b-b837-bd649d96eb53","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"8ea22c17-e3b8-48df-91b0-68b0ff200644","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"brightness\": 10\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/low-button-brightness","description":"<p>The <em>Night mode button brightness</em> REST call sets your Doppler’s button brightness level for night mode. The brightness level is a number from 0 to 100 (representing a percentage of brightness).</p>\n<p>An example JSON Request body sets the night mode button brightness to <em>20</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"brightness\": 20\n}\n\n</code></pre>\n<p>The response shows the current nighttime brightness level of set to <em>20</em>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"brightness\": 20\n}\n\n</code></pre>\n<p>The <strong>Buttons During Night</strong> slider on the <strong>BRIGHTNESS</strong> screen of the app can set the button brightness in night mode.</p>\n<p>Use the <em>Night mode button brightness</em> (GET) REST call to retrieve the current button brightness level for night mode.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"brightness\"</td>\n<td>The level of brightness in night mode (number from 0 to 100).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> This call doesn’t change information about brightness in day mode, nor does it depend on the current mode your Doppler is in.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","low-button-brightness"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"bf65447e-3829-4145-a6cb-102b0f763856","name":"Night mode button brightness","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"brightness\": 10\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/low-button-brightness"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"17"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"brightness\": 10\n}"}],"_postman_id":"8ea22c17-e3b8-48df-91b0-68b0ff200644"}],"id":"79b59b19-4bcf-411f-84f2-d35d4ccc63be","description":"<p>There are four REST calls for managing night mode brightness settings for display and buttons on your Doppler. It may be a good idea to set night brightness levels to be less than day brightness levels.</p>\n","_postman_id":"79b59b19-4bcf-411f-84f2-d35d4ccc63be","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}}],"id":"f21c946b-bc83-49a4-86cb-f88b2245eaa3","description":"<p>A comprehensive set of REST calls are available to manage the brightness based on the following categories:</p>\n<ul>\n<li>During the day</li>\n<li>During the night</li>\n<li>Light sensor and auto-dimming advanced features</li>\n</ul>\n","_postman_id":"f21c946b-bc83-49a4-86cb-f88b2245eaa3","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Syncs","item":[{"name":"Button display brightness sync","event":[{"listen":"test","script":{"id":"97103d36-5361-46b5-8283-4c97e51ef8f1","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"9ad516f6-a501-4415-b5cb-11c6aa54ffd1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/sync-button-display-brightness","description":"<p>The <em>Button display brightness sync</em> REST call returns your Doppler’s current sync status for setting the button brightness with display brightness. If enabled (the default), changing one value will change the other. If disabled, changing the button brightness value won’t affect display brightness (and vice versa).</p>\n<p>The following Boolean response indicates that button and display brightness settings are currently enabled to sync:</p>\n<p><code>{\"sync\": true}</code></p>\n<p>To change your Doppler’s brightness synchronization setting, use the <em>Button display brightness sync</em> (PUT) REST call.</p>\n<p>In the app, the <strong>BRIGHTNESS</strong> screen provides the ability to set display brightness independently from button brightness. In that case, the <strong>Match display and buttons</strong> switch is disabled (<em>off</em> position). Otherwise, the <strong>Match display and buttons</strong> switch should be enabled (<em>on</em> position) to change display and button brightness values together.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"sync\"</td>\n<td>If the Boolean value is <em>true</em>, sync is enabled (default). If <em>false</em>, sync is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","hardware","sync-button-display-brightness"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"9ec7a1de-4798-4ec5-acb0-98f79fce4fc6","name":"Button Display brightness Sync","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/sync-button-display-brightness"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"14"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"sync\": false\n}"}],"_postman_id":"9ad516f6-a501-4415-b5cb-11c6aa54ffd1"},{"name":"Button display brightness sync","event":[{"listen":"test","script":{"id":"823f50ca-f567-4952-9835-6f192ba80b44","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"6b33ae2f-5de8-45f7-8e2d-5afc5c4ccf93","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"sync\":false\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/sync-button-display-brightness","description":"<p>The <em>Button display brightness sync</em> REST call changes the current sync status for setting your Doppler’s button and display brightness. If enabled (Boolean <em>true</em>), setting the button or display brightness value will change the other. If disabled (<em>false</em>), changing the button brightness won’t affect the display brightness (and vice versa).</p>\n<p>An example JSON Request body disables the button display sync:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"sync\":false\n}\n\n</code></pre>\n<p>The response verifies that change:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"sync\":false\n}\n\n</code></pre>\n<p>In the app, the <strong>BRIGHTNESS</strong> screen allows the ability to independently set button and display brightness. In that case, the <strong>Match display and buttons</strong> switch is disabled (<em>off</em> position). Otherwise, the <strong>Match display and buttons</strong> switch should be enabled (<em>on</em> position) to change the button and display brightness values together.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"sync\"</td>\n<td>If a Boolean value of <em>true</em>, sync is enabled (default); if <em>false</em>, sync is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> To view your Doppler’s button and display brightness synchronization setting at a later time, use the <em>Button display brightness sync</em> (GET) REST call.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","sync-button-display-brightness"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"d0fedac4-4656-4a07-9f98-53bb37bdfc59","name":"Button Display brightness Sync","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"sync\":false\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/sync-button-display-brightness"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"14"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"sync\": false\n}"}],"_postman_id":"6b33ae2f-5de8-45f7-8e2d-5afc5c4ccf93"},{"name":"Day/night mode color sync","event":[{"listen":"test","script":{"id":"d7635d72-3f69-4aca-88f8-12506f540bb8","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"061b24b8-f706-4cb3-bf06-4cef1d661d31","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/sync-high-low-color","description":"<p>The <em>Day/night mode color sync</em> REST call returns your Doppler’s current sync status for setting the color for both day and night mode. If enabled (the default), changing the day or night color value will change the other. If disabled, changing the day color value won’t affect the night color value (and vice versa).</p>\n<p>The following response indicates that the day/night mode color settings are currently enabled to sync:</p>\n<p><code>{\"sync\": true}</code></p>\n<p>To change your Doppler’s day/night mode color synchronization setting, use the <em>Day/night mode color sync</em> (PUT) REST call.</p>\n<p>In the app, the <strong>DOPPLER COLORS</strong> screen allows the ability to independently set day and night colors. In that case, the <strong>Match day and night color</strong> switch is disabled (<em>off</em> position). Otherwise, the <strong>Match day and night color</strong> switch should be enabled (<em>on</em> position) to change the day and night color values together.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"sync\"</td>\n<td>If the Boolean value is <em>true</em>, sync is enabled (default); if <em>false</em>, sync is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","hardware","sync-high-low-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"8015b063-44f9-4c15-8d18-9b2a1e184fe1","name":"Day/Night mode color sync","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/sync-high-low-color"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"14"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"sync\": false\n}"}],"_postman_id":"061b24b8-f706-4cb3-bf06-4cef1d661d31"},{"name":"Day/night mode color sync","event":[{"listen":"test","script":{"id":"08d19066-b233-4533-9775-f1c1b3e3cc4b","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"b9cd06e2-fbad-4d90-b0e1-883446e9c144","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"sync\":false\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/sync-high-low-color","description":"<p>The <em>Day/night mode color sync</em> REST call changes the current sync status for setting your Doppler’s color for day and night modes. If enabled (Boolean <em>true</em>), setting the day or night color value will change the other. If disabled (<em>false</em>), changing the day color won’t affect the night color (and vice versa).</p>\n<p>As an example, use this JSON Request body to disable day/night mode sync:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"sync\": false\n}\n\n</code></pre>\n<p>The response verifies this change:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"sync\": false\n}\n\n</code></pre>\n<p>In the app, the <strong>DOPPLER COLORS</strong> screen allows the ability to independently set day and night colors. In that case, the <strong>Match day and night color</strong> switch is disabled (<em>off</em> position). Otherwise, the <strong>Match day and night color</strong> switch should be enabled (<em>on</em> position) to change the day and night color values together.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"sync\"</td>\n<td>If Boolean value is <em>true</em>, sync is enabled (default); if <em>false</em>, sync is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> To view your Doppler’s day and night mode color synchronization setting at a later time, use the <em>Day/night mode color sync</em> (GET) REST call.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","sync-high-low-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"28e77035-8b61-4a55-a346-fcbbc48bfe6d","name":"Day/Night mode color sync","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"sync\":false\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/sync-high-low-color"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"14"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"sync\": false\n}"}],"_postman_id":"b9cd06e2-fbad-4d90-b0e1-883446e9c144"},{"name":"Button display color sync","event":[{"listen":"test","script":{"id":"eb40769b-396d-42a1-99fd-c048ace93722","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"0f7ddb11-7502-4a5b-a5de-b86775412313","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/sync-button-display-color","description":"<p>The <em>Button display color sync</em> REST call returns the current sync status for setting your Doppler’s color for buttons and display. If enabled (the default), changing the button or display color value will change the other. If disabled, changing the button color value won’t affect the display color value (and vice versa).</p>\n<p>The following response indicates that button and display color settings are currently enabled to sync:</p>\n<p><code>{\"sync\": true}</code></p>\n<p>To change your Doppler’s display and button color synchronization setting, use the <em>Button display color sync</em> (PUT) REST call.</p>\n<p>In the app, the <strong>DOPPLER COLORS</strong> screen allows the ability to independently set display and button colors. In that case, the <strong>Match display and buttons color</strong> switch is disabled (<em>off</em> position). Otherwise, the <strong>Match display and buttons color</strong> switch should be enabled (<em>on</em> position) to change the display and button color values together.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"sync\"</td>\n<td>If Boolean value is <em>true</em>, sync is enabled (default); if <em>false</em>, sync is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","hardware","sync-button-display-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"30db4a43-bc0b-452c-9222-e7ce638b17d9","name":"Button Display color Sync","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/sync-button-display-color"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"13"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"sync\": true\n}"}],"_postman_id":"0f7ddb11-7502-4a5b-a5de-b86775412313"},{"name":"Button display color sync","event":[{"listen":"test","script":{"id":"e8b40fc7-efee-4e86-b35a-841b17c523ba","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"8c8ac158-0e24-44c5-bb4f-0a457682a7c8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"sync\":true\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/sync-button-display-color","description":"<p>The <em>Button display color sync</em> REST call sets the current sync status for configuring your Doppler’s color for buttons and display. If enabled (Boolean <em>true</em>), setting the button or display color value will change the other. If disabled (<em>false</em>), changing the button color won’t affect the display color (and vice versa).</p>\n<p>An example JSON Request body enables the button and display color sync:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"sync\": true\n}\n\n</code></pre>\n<p>The response verifies the sync value:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"sync\": true\n}\n\n</code></pre>\n<p>In the app, the <strong>DOPPLER COLORS</strong> screen allows the ability to independently set display and button colors. In that case, the <strong>Match display and buttons color</strong> switch is disabled (<em>off</em> position). Otherwise, the <strong>Match display and buttons color</strong> switch should be enabled (<em>on</em> position) to change the display and button color values together.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"sync\"</td>\n<td>If Boolean value is <em>true</em>, sync is enabled (default). If <em>false</em>, sync is disabled.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> To view your Doppler’s display and button color synchronization setting, use the <em>Button display color sync</em> (GET) REST call.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","sync-button-display-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"72907bfc-75c2-4ed7-b323-b0da62b133f7","name":"Button Display color Sync","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"sync\":true\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/sync-button-display-color"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"13"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"sync\": true\n}"}],"_postman_id":"8c8ac158-0e24-44c5-bb4f-0a457682a7c8"}],"id":"68cff463-20df-4c7e-ab74-51f6746410c4","description":"<p>Some Doppler features can be configured to be controlled independently or together (the default) with REST calls, currently:</p>\n<ul>\n<li>Button display brightness</li>\n<li>Day/night mode color</li>\n<li>Button display color</li>\n</ul>\n","_postman_id":"68cff463-20df-4c7e-ab74-51f6746410c4","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Display color","item":[{"name":"Day mode display color","event":[{"listen":"test","script":{"id":"28699685-0743-411e-8394-77bd7571527a","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"8f67be68-923a-466f-ad33-51b7f5e56eb2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/high-display-color","description":"<p>The <em>Day mode display color</em> REST call retrieves your Doppler’s display color while in day mode. In this example, the current color is retrieved as pure red:</p>\n<p><code>{\"color\": [255,0,0]}</code></p>\n<p>To view the current display color in the app, tap <strong>Display day color</strong> on the <strong>DOPPLER COLORS</strong> screen.</p>\n<p>Use the <em>Day mode display color</em> (PUT) REST call to change the day mode display color.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"color\"</td>\n<td>The RGB value is a 3-digit array consisting of red, green, and blue numeric values (each ranging from 0 to 255).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> The returned color value does not include color brightness information.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","high-display-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"0c47146b-23ed-48ac-84ae-7108a46f9483","name":"Getting the day mode display color","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/high-display-color"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"21"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"color\": [\n        255,\n        255,\n        0\n    ]\n}"}],"_postman_id":"8f67be68-923a-466f-ad33-51b7f5e56eb2"},{"name":"Day mode display color","event":[{"listen":"test","script":{"id":"70280112-cab3-4836-acb9-75200276657f","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"f6f8cc49-044f-4cb3-b31f-ad2cfb7eaf28","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"color\": [\r\n        255,\r\n        255,\r\n        0\r\n    ]\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/high-display-color","description":"<p>The <em>Day mode display color</em> REST call sets the display color of your Doppler while in day mode. The color is passed as a 3-digit RGB (red, green, blue) numeric value ranging between 0 and 255.</p>\n<p>An example JSON Request body sets the day mode display color to yellow:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"color\": [\n        255,\n        255,\n        0\n    ]\n}\n\n</code></pre>\n<p>The response verifies this color change:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"color\": [\n        255,\n        255,\n        0\n    ]\n}\n\n</code></pre>\n<p>To set the display color in the app, tap <strong>Display day color</strong> on the <strong>DOPPLER COLORS</strong> screen and drag the color wheel to the desired color.</p>\n<blockquote>\n<p><strong>Note:</strong> Any RGB value works, but the brightness setting attenuates the color displayed on the clock.</p>\n</blockquote>\n<p>Use the <em>Day mode display color</em> (GET) REST call to view the current display color for day mode.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"color\"</td>\n<td>The RGB value is a 3-digit array consisting of red, green, and blue numeric values (each ranging from 0 to 255).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","hardware","high-display-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"7317bfea-f380-4b76-b29f-47571cef603d","name":"Setting the day mode display color to yellow","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"color\": [\r\n        255,\r\n        50,\r\n        0\r\n    ]\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/high-display-color"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"20"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"color\": [\n        255,\n        50,\n        0\n    ]\n}"}],"_postman_id":"f6f8cc49-044f-4cb3-b31f-ad2cfb7eaf28"},{"name":"Night mode display color","event":[{"listen":"test","script":{"id":"a1d5b1f7-50d4-4529-b46f-efab41d4e353","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"4e631c5a-b0da-45d3-a3ef-12fb9a84a1b1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/low-display-color","description":"<p>The <em>Night mode display color</em> REST call retrieves the Doppler’s display color while in night mode.</p>\n<p>An example JSON Request body sets the night mode display color to a variation of blue (with a touch of red and green):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"color\": [\n        58,\n        46,\n        255\n    ]\n}\n\n</code></pre>\n<p>For night mode, consider using colors with minimal to no blue in them as it negatively affects sleep. We always recommend pure red for night mode. To view the current display color in the app, tap <strong>Display night color</strong> on the <strong>DOPPLER COLORS</strong> screen.</p>\n<p>Use <em>Night mode display color</em> (PUT) REST call to change the display color for night mode.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"color\"</td>\n<td>The RGB value is a 3-digit array consisting of red, green, and blue numeric values (each ranging from 0 to 255).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> The returned color value does not include color brightness information.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","low-display-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"0b3a3eac-5264-4528-9624-dcb01cbd267c","name":"Getting the night mode display color","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/low-display-color"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"21"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"color\": [\n        255,\n        255,\n        0\n    ]\n}"}],"_postman_id":"4e631c5a-b0da-45d3-a3ef-12fb9a84a1b1"},{"name":"Night mode display color","event":[{"listen":"test","script":{"id":"529af04b-de2e-4e58-b7c8-8aecc5702f10","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"d1f26ae0-40c6-452a-bdf3-5161798204f9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"color\": [\r\n        255,\r\n        0,\r\n        0\r\n    ]\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/low-display-color","description":"<p>The <em>Night mode display color</em> REST call sets the Doppler’s display color of your Doppler while in night mode. The color is passed as a 3-digit RGB (red, green, blue) value ranging between 0 and 255.</p>\n<p>An example JSON Request body sets the night mode display color to a variation of blue (with a touch of red and green):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"color\": [\n        58,\n        46,\n        255\n    ]\n}\n\n</code></pre>\n<p>The response verifies the night mode display color setting:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"color\": [\n        58,\n        46,\n        255\n    ]\n}\n\n</code></pre>\n<p>To set the display color in the app, tap <strong>Display night color</strong> on the <strong>DOPPLER COLORS</strong> screen and drag the color wheel to the desired color.</p>\n<p>Use <em>Night mode display color</em> (GET) REST call to view the current display color for night mode.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"color\"</td>\n<td>The RGB value is a 3-digit array consisting of red, green, and blue numeric values (each ranging from 0 to 255).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Any RGB value works, but the brightness setting attenuates the color displayed on the clock.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","low-display-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"f43b7c36-c56a-4759-817e-7ab8819b7bf2","name":"Setting the night mode display color to red","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"color\": [\r\n        255,\r\n        0,\r\n        0\r\n    ]\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/low-display-color"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"19"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"color\": [\n        255,\n        0,\n        0\n    ]\n}"}],"_postman_id":"d1f26ae0-40c6-452a-bdf3-5161798204f9"}],"id":"4dded596-7be3-45d5-af34-0add28d9dfb1","description":"<p>These REST APIs work with your Doppler display color. Color is expressed in terms of an array of numbers (0 to 255) for red-green-blue (RGB).</p>\n<p>Switching between day and night mode is handled by the light sensor.</p>\n","_postman_id":"4dded596-7be3-45d5-af34-0add28d9dfb1","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Button color","item":[{"name":"Day mode button color","event":[{"listen":"test","script":{"id":"2e7b993c-2135-4058-95ae-6e40cea5fca5","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"7f82c855-3943-4564-932d-246172930aea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/high-button-color","description":"<p>The <em>Day mode button color</em> REST call retrieves the color of your Doppler buttons while in day mode. In this example, the current color is pure red:</p>\n<p><code>{\"color\": [255,0,0]}</code></p>\n<p>To view the current button color in the app, tap <strong>Buttons day color</strong> on the <strong>DOPPLER COLORS</strong> screen.</p>\n<p>Use <em>Day mode button color</em> (PUT) REST call to change the button color for day mode.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"color\"</td>\n<td>The RGB value is a 3-digit array consisting of red, green, and blue numeric values (each ranging from 0 to 255).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> The color for the back buttons is currently preset to white and can’t be changed. The returned color value does not include color brightness information.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","high-button-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"7f3f2d16-ba70-4cfc-b36e-b4e37c677065","name":"Getting the day mode button color","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/high-button-color"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"21"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"color\": [\n        255,\n        255,\n        0\n    ]\n}"}],"_postman_id":"7f82c855-3943-4564-932d-246172930aea"},{"name":"Day mode button color","event":[{"listen":"test","script":{"id":"415b6131-aece-4ad0-a291-5f29ec1980a6","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"f94f4aaa-6f25-4883-96e0-e72a6e1b066a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"color\": [\r\n        255,\r\n        255,\r\n        255\r\n    ]\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/high-button-color","description":"<p>The <em>Day mode button color</em> REST call sets the color of your Doppler buttons while in day mode. The color is passed as a 3-digit RGB (red, green, blue) numeric value ranging between 0 and 255.</p>\n<p>An example JSON Request body sets the day mode button color to pure white:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"color\": [\n        255,\n        255,\n        255\n    ]\n}\n\n</code></pre>\n<p>The response verifies the latest button color setting:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"color\": [\n        255,\n        255,\n        255\n    ]\n}\n\n</code></pre>\n<p>To set the color in the app, tap <strong>Buttons day color</strong> on the <strong>DOPPLER COLORS</strong> screen and drag the color wheel to the desired color.</p>\n<p>Use the <em>Day mode button color</em> (GET) REST call to retrieve the current button color for day mode at any time.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"color\"</td>\n<td>The RGB value is a 3-digit array consisting of red, green, and blue numeric values (each ranging from 0 to 255).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Any RGB value works, but the brightness setting attenuates the color displayed on the clock’s main buttons. Changing the color of the back buttons is currently not supported.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","high-button-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"c5c7a6a4-3244-4963-a048-757c084a646e","name":"Setting the day mode button color to white","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"color\": [\r\n        255,\r\n        255,\r\n        255\r\n    ]\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/high-button-color"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"23"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"color\": [\n        255,\n        255,\n        255\n    ]\n}"}],"_postman_id":"f94f4aaa-6f25-4883-96e0-e72a6e1b066a"},{"name":"Night mode button color","event":[{"listen":"test","script":{"id":"3d469264-afd9-415c-bb1c-f92f15baee62","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"889ae72a-8e15-4b96-a4c5-609302a6c3fc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/low-button-color","description":"<p>The <em>Night mode button color</em> REST call retrieves the color of your Doppler buttons while in night mode. In this example, the current color is green (with just a touch of red and blue):</p>\n<p><code>{\"color\": [67,255,75]}</code></p>\n<p>To view the current buttons color in the app, tap <strong>Buttons night color</strong> on the <strong>DOPPLER COLORS</strong> screen.</p>\n<p>Use <em>Night mode button color</em> (PUT) REST call to change button color for night mode.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"color\"</td>\n<td>The RGB value is a 3-digit array consisting of red, green, and blue numeric values (each ranging from 0 to 255).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> The color for the back buttons is currently preset to white, and the returned color value does not include color brightness information.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","low-button-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"e31da898-7489-43db-ac69-97de6278466a","name":"Getting the night mode button color","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/low-button-color"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"19"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"color\": [\n        255,\n        0,\n        0\n    ]\n}"}],"_postman_id":"889ae72a-8e15-4b96-a4c5-609302a6c3fc"},{"name":"Night mode button color","event":[{"listen":"test","script":{"id":"504f19f8-0c68-472a-87b7-831603cc1b3e","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"ef3dd529-4678-4434-ae0a-9bbaa2d01116","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"color\": [\r\n        255,\r\n        0,\r\n        0\r\n    ]\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/low-button-color","description":"<p>The <em>Night mode button color</em> REST call sets the color of your Doppler buttons while in night mode. The color is passed as a 3-digit RGB (red, green, blue) numeric value ranging between 0 and 255.</p>\n<p>An example JSON Request body sets the button color for night mode to a purplish color:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"color\": [\n        255,\n        0,\n        250\n    ]\n}\n\n</code></pre>\n<p>The response verifies the color change:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"color\": [\n        255,\n        0,\n        250\n    ]\n}\n\n</code></pre>\n<p>To set the color in the app, tap <strong>Buttons night color</strong> on the <strong>DOPPLER COLORS</strong> screen and drag the color wheel to the desired color.</p>\n<p>Use <em>Night mode button color</em> (GET) REST call to view the current button color for night mode.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"color\"</td>\n<td>The RGB value is a 3-digit array consisting of red, green, and blue numeric values (each ranging from 0 to 255).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> Any RGB value works, but the brightness setting attenuates the color displayed on the clock. Changing the color of the back buttons is currently not supported.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","hardware","low-button-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"a6b44db3-6ec8-43f7-a545-8a8df5528702","name":"Setting the night mode button color to red","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"color\": [\r\n        255,\r\n        0,\r\n        0\r\n    ]\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/low-button-color"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Server","value":"oatpp/1.1.0"},{"key":"Content-Length","value":"19"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"color\": [\n        255,\n        0,\n        0\n    ]\n}"}],"_postman_id":"ef3dd529-4678-4434-ae0a-9bbaa2d01116"}],"id":"101b51e5-03b1-489d-a287-631bbad8566e","description":"<p>These REST calls manage color settings for the buttons on your Doppler. Color is expressed in terms of an array of numbers (0 to 255) for red-green-blue (RGB).</p>\n<blockquote>\n<p><strong>Note:</strong> Currently, the color for the back row of buttons is preset to white. The ability to change the color for the back row of buttons should be available in the future.</p>\n<p>Switching between day and night mode is handled by the light sensor.</p>\n</blockquote>\n","_postman_id":"101b51e5-03b1-489d-a287-631bbad8566e","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Weather","item":[{"name":"Get location and system status of the weather","event":[{"listen":"test","script":{"id":"8d787c6e-22fa-4d43-b846-5034d4b2bb7e","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"f4625931-67b2-494d-afaf-fed28b00f16d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/weather","description":"<p>The <em>Get location and system status of the weather</em> REST call retrieves current weather information displayed on your Doppler.</p>\n<p>An example response is:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"wsonoff\": true,\n    \"location\": \"95054\",\n    \"wsmode\": 5\n}\n\n</code></pre>\n<p>The \"wsonoff\" value indicates if the weather status is to be displayed (<em>true</em> means on), the \"location\" is typically a ZIP Code (\"95054\"), and \"wsmode\" is a weather display mode number (<em>5</em> is the daily minimum temperature in Fahrenheit).</p>\n<p>The weather display mode number (\"wsmode\") represents display options that can also be changed in the <strong>WEATHER</strong> screen of the app (except <em>3</em>, daily average):</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th></th>\n<th><strong>Real-time</strong></th>\n<th><strong>Low</strong></th>\n<th><strong>High</strong></th>\n<th><strong>Daily AM</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Fahrenheit</td>\n<td>9</td>\n<td>5</td>\n<td>1</td>\n<td></td>\n</tr>\n<tr>\n<td>Celsius</td>\n<td>10</td>\n<td>6</td>\n<td>2</td>\n<td></td>\n</tr>\n<tr>\n<td>Air Quality Index (AQI)</td>\n<td>12</td>\n<td></td>\n<td></td>\n<td>4</td>\n</tr>\n<tr>\n<td>Humidity</td>\n<td>11</td>\n<td>7</td>\n<td>8</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><p>This list represents all of the values:</p>\n<p>Fahrenheit daily maximum = 1<br />Celsius daily maximum = 2<br />Humidity daily average = 3<br />Air Quality Index (AQI) daily = 4<br />Fahrenheit daily minimum = 5<br />Celsius daily minimum = 6<br />Humidity daily minimum = 7<br />Humidity daily maximum = 8<br />Fahrenheit hourly temperature = 9<br />Celsius hourly temperature = 10<br />Humidity hourly = 11<br />Air Quality Index (AQI) hourly = 12</p>\n<p>We have also added the USA-based National Weather Service for some more specific and hopefully accurate data.</p>\n<p>Fahrenheit daily predicted temperature = 13<br />Celsius daily predicted temperature = 14 \nFahrenheit hourly observation from the nearest NWS station = 15<br />Celsius hourly observation from the nearest NWS station = 16<br />Humidity hourly observation from the nearest NWS station = 17</p>\n<blockquote>\n<p>A \"wsmode\" of <em>0</em> is the same as selecting <strong>Off</strong> on the app’s <strong>WEATHER</strong> page.</p>\n</blockquote>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"wsonoff\"</td>\n<td>Boolean <em>true</em> (display weather information) or <em>false</em> (don’t display weather information on your Doppler).</td>\n</tr>\n<tr>\n<td>\"location\"</td>\n<td>Text string that represents the current location (typically a numeric ZIP Code).</td>\n</tr>\n<tr>\n<td>\"wsmode\"</td>\n<td>A numeric value representing the weather display mode (see table or list above).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> If the weather reporting mode (\"wsonoff\") is disabled (<em>false</em>), weather information won’t be displayed on your Doppler.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","software","weather"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"02c9693a-5774-4d36-81ef-573af855bf3d","name":"Get location and system status of the weather","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/weather"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"46"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"wsonoff\": true,\n    \"location\": \"95054\",\n    \"wsmode\": 1\n}"}],"_postman_id":"f4625931-67b2-494d-afaf-fed28b00f16d"},{"name":"Set location to use for weather information along with other options","event":[{"listen":"test","script":{"id":"907861ed-d1a2-4ca4-bd59-8d7803c669e7","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"b68181a6-d1fc-464b-b56e-fdb511794964","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"wsonoff\": true,\n    \"location\": \"95054\",\n    \"wsmode\": 1\n}"},"url":"https://:5443/Doppler-01234567/software/weather","description":"<p>The <em>Set location to use for weather information along with other options</em> REST call sets current weather information to be displayed on your Doppler. An example JSON Request body sets the following:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"wsonoff\": true,\n    \"location\": \"95054\",\n    \"wsmode\": 1\n}\n\n</code></pre>\n<p>The \"wsonoff\" value indicates if the weather status is to be displayed (<em>true</em> means on), the \"location\" is typically a ZIP code (\"95054\"), and \"wsmode\" is a weather display mode number (<em>1</em> is the daily maximum temperature in Fahrenheit).</p>\n<p>An example response is:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"wsonoff\": true,\n    \"location\": \"95054\",\n    \"wsmode\": 1\n}\n\n</code></pre>\n<p>The weather display mode number (\"wsmode\") represents display options that can also be changed in the <strong>WEATHER</strong> screen of the app (except for <em>3</em>, daily average):</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th></th>\n<th><strong>Real-time</strong></th>\n<th><strong>Low</strong></th>\n<th><strong>High</strong></th>\n<th><strong>Daily AM</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Fahrenheit</td>\n<td>9</td>\n<td>5</td>\n<td>1</td>\n<td></td>\n</tr>\n<tr>\n<td>Celsius</td>\n<td>10</td>\n<td>6</td>\n<td>2</td>\n<td></td>\n</tr>\n<tr>\n<td>Air Quality Index (AQI)</td>\n<td>12</td>\n<td></td>\n<td></td>\n<td>4</td>\n</tr>\n<tr>\n<td>Humidity</td>\n<td>11</td>\n<td>7</td>\n<td>8</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><p>This list represents all of the values:</p>\n<p>Fahrenheit daily maximum = 1<br />Celsius daily maximum = 2<br />Humidity daily average = 3<br />Air Quality Index (AQI) daily = 4<br />Fahrenheit daily minimum = 5<br />Celsius daily minimum = 6<br />Humidity daily minimum = 7<br />Humidity daily maximum = 8<br />Fahrenheit hourly temperature = 9<br />Celsius hourly temperature = 10<br />Humidity hourly = 11<br />Air Quality Index (AQI) hourly = 12</p>\n<p>We have also added the USA-based National Weather Service for some more specific and hopefully accurate data.</p>\n<p>Fahrenheit daily predicted temperature = 13<br />Celsius daily predicted temperature = 14<br />Fahrenheit hourly observation from the nearest NWS station = 15<br />Celsius hourly observation from the nearest NWS station = 16<br />Humidity hourly observation from the nearest NWS station = 17</p>\n<blockquote>\n<p>A \"wsmode\" of 0 is the same as selecting <strong>Off</strong> on the app’s <strong>WEATHER</strong> page.</p>\n</blockquote>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"wsonoff\"</td>\n<td>Boolean <em>true</em> (display weather information) or <em>false</em> (don’t display weather information on your Doppler).</td>\n</tr>\n<tr>\n<td>\"location\"</td>\n<td>Text string that represents the current location (typically a numeric ZIP Code).</td>\n</tr>\n<tr>\n<td>\"wsmode\"</td>\n<td>A numeric value representing the weather display mode (see table or list above).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> If the weather reporting mode (\"wsonoff\") is disabled (false), weather information won’t be displayed on your Doppler.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","software","weather"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"10ff6f59-11be-45d5-a847-1abc57cacda9","name":"Set location to use for weather information along with other options","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"wsonoff\": true,\n    \"location\": \"95054\",\n    \"wsmode\": 1\n}"},"url":"https://:5443/Doppler-01234567/software/weather"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"46"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"wsonoff\": true,\n    \"location\": \"95054\",\n    \"wsmode\": 1\n}"}],"_postman_id":"b68181a6-d1fc-464b-b56e-fdb511794964"},{"name":"Weather wake-up time","event":[{"listen":"test","script":{"id":"80b431e6-b96f-4b8a-a1f9-cfe90a8d53d5","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"f4345aa0-b707-4a40-a500-e5ab97165dd3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/weather-wakeup-time","description":"<p>The <em>Weather wake-up time</em> REST call returns the time your Doppler retrieves the weather forecast to display each day.</p>\n<p>An example response is a text string that looks like the following (for <em>5:10 AM</em>):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"weatherwakeuptime\": \"05:10\"\n}\n\n</code></pre><p>The time is set with the <em>Set location to use for weather information along with other options</em> (PUT) REST call. On your Doppler, symbols showing the weather condition and temperature are shown at the bottom of the display.</p>\n<p>In the app, navigate to the <strong>WEATHER</strong> screen to view when your Doppler retrieves the day’s weather.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"weatherwakeuptime\"</td>\n<td>Text string in 24-hour time format (ex: \"05:10\").</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> If the weather reporting mode (\"wsonoff\") is disabled (<em>false</em>), the wake-up time won’t be displayed on your Doppler.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","software","weather-wakeup-time"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"51eeeb8b-e677-4b64-a919-30d7acb4d472","name":"Weather wake-up time","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/software/weather-wakeup-time"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"29"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"weatherwakeuptime\": \"05:10\"\n}"}],"_postman_id":"f4345aa0-b707-4a40-a500-e5ab97165dd3"},{"name":"Weather wake-up time","event":[{"listen":"test","script":{"id":"b94d46f1-cce6-4fc7-b623-6f05c4e5bf59","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"24bffdea-053e-4db5-946e-3f873b59a6fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\"weatherwakeuptime\": \"05:10\"}"},"url":"https://:5443/Doppler-01234567/software/weather-wakeup-time","description":"<p>The <em>Weather wake-up time</em> REST call sets the time when your Doppler retrieves the weather forecast each day. An example JSON Request body sets the weather wake-up time to <em>5:10 AM</em> with a text string:</p>\n<p><code>{\"weatherwakeuptime\": \"05:10\"}</code></p>\n<p>An example response verifies the PUT command:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"weatherwakeuptime\": \"05:10\"\n}\n\n</code></pre>\n<p>The time is specified with the <em>Set location to use for weather information along with other options</em> (PUT) REST call. In the app, navigate to the <strong>WEATHER</strong> screen to change when your Doppler retrieves the day’s weather.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"weatherwakeuptime\"</td>\n<td>Text string in 24-hour time format (ex: \"05:10\").</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> If the weather reporting mode (\"wsonoff\") is disabled (<em>false</em>), the wake-up time won’t be displayed on your Doppler.</p>\n</blockquote>\n","urlObject":{"path":["Doppler-01234567","software","weather-wakeup-time"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"a43cb34f-0a9f-44c0-bb13-f8a23f903fb0","name":"Weather wake-up time","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\"weatherwakeuptime\": \"05:10\"}"},"url":"https://:5443/Doppler-01234567/software/weather-wakeup-time"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"29"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"weatherwakeuptime\": \"05:10\"\n}"}],"_postman_id":"24bffdea-053e-4db5-946e-3f873b59a6fa"}],"id":"2cb995c4-bfc1-4fd7-8f9f-e3663822a582","description":"<p>Your Doppler can retrieve and display weather status symbols at the bottom of its display. These REST API calls manage weather information.</p>\n","_postman_id":"2cb995c4-bfc1-4fd7-8f9f-e3663822a582","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Alexa","item":[{"name":"Gets if Doppler is connected via LWA. Time is a value since the last epoch.","event":[{"listen":"test","script":{"id":"a114338e-1f7e-43f9-b3a2-4274dbc79f70","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"4427b0b7-d9d9-4a70-b71b-41714ced0f02","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/alexa/lwa-status","description":"<p>The <em>Gets if Doppler is connected via LWA</em> REST call retrieves the status that signifies whether your Doppler is successfully connected with Login With Amazon authentication. LWA (also known as \"your Amazon login\") is used to log into AVS (Alexa Voice Services) which is what we use to get Alexa on the Doppler.</p>\n<p>This REST call is really only useful for debugging connection issues with Amazon servers.</p>\n<p>An example response indicates that Alexa is currently connected to your Doppler (Boolean status of <em>true</em>) and when Alexa was connected (number in Epoch time):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": true,\n    \"timestamp\": 1660063598618152\n}\n\n</code></pre>\n<blockquote>\n<p><strong>Note:</strong> Epoch time is represented as the number of seconds since 00:00:00 UTC on 1 January 1970.</p>\n</blockquote>\n<p>To establish (or remove) a connection with Alexa from the app, tap on the appropriate <strong>Amazon Alexa</strong> option on the <strong>SETTINGS</strong> screen.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"status\"</td>\n<td>A Boolean value set to <em>true</em> if Alexa is actively connected to your Doppler; and <em>false</em> if Alexa is not currently connected.</td>\n</tr>\n<tr>\n<td>\"timestamp\"</td>\n<td>Time connected (in Epoch time).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","alexa","lwa-status"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"cace70a2-9ff2-4761-a728-ce9a47f8f937","name":"Gets if Doppler is connected via LWA. Time is a value since the last epoch.","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/alexa/lwa-status"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"44"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": true,\n    \"timestamp\": 1660063598618152\n}"}],"_postman_id":"4427b0b7-d9d9-4a70-b71b-41714ced0f02"},{"name":"Gets whether tone is being played during tap to talk","event":[{"listen":"test","script":{"id":"a68bfaee-b8a8-4800-92ef-02f5e2fbbfcc","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"06eea9ac-53d5-42c5-929a-3c024562ff9f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/alexa/tap-talk-tone","description":"<p>The <em>Gets whether tone is being played during tap to talk</em> REST call returns the status of playing a tone during tap-to-talk on your Doppler.</p>\n<p>A response of <em>true</em> (default) indicates that a tone will play during a tap-to-talk Alexa interaction:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"tone\": true\n}\n\n</code></pre>\n<p>To set if a tone should be played during tap-to-talk with Alexa, use the <em>Set whether tone is being played during tap to talk</em> REST call.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"tone\"</td>\n<td>A Boolean <em>true</em> if a tone will play during tap-to-talk; otherwise, the value is <em>false</em>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","alexa","tap-talk-tone"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"fc2647eb-f240-4dd7-826d-f0d370f8b528","name":"Gets whether tone is being played during tap to talk","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/alexa/tap-talk-tone"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"13"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"tone\": true\n}"}],"_postman_id":"06eea9ac-53d5-42c5-929a-3c024562ff9f"},{"name":"Sets whether tone is being played during tap to talk","event":[{"listen":"test","script":{"id":"256b9563-9a38-499c-893c-d62e02071bc3","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"72365f46-c085-4b01-8073-323a00796de9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"tone\": true\n}"},"url":"https://:5443/Doppler-01234567/alexa/tap-talk-tone","description":"<p>The <em>Sets whether tone is being played during tap to talk</em> REST call sets the status of playing a tone during tap-to-talk on your Doppler. An example JSON Request body enables a tone to be played during tap-to-talk with Alexa:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"tone\": true\n}\n\n</code></pre>\n<p>The response verifies this setting:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"tone\": true\n}\n\n</code></pre>\n<p>To retrieve the setting if a tone should be played during tap-to-talk with Alexa, use the G<em>et whether tone is being played during tap to talk</em> REST call.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"tone\"</td>\n<td>A Boolean <em>true</em> if a tone will play during tap-to-talk; otherwise, the value is <em>false</em>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","alexa","tap-talk-tone"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"ecb3ca9f-b9da-445e-af8d-da21ec44e2e0","name":"Sets whether tone is being played during tap to talk","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"tone\": true\n}"},"url":"https://:5443/Doppler-01234567/alexa/tap-talk-tone"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"13"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"tone\": true\n}"}],"_postman_id":"72365f46-c085-4b01-8073-323a00796de9"},{"name":"Gets whether tone is being played after hearing wakeword","event":[{"listen":"test","script":{"id":"0adf02ef-eeb3-4079-a657-179ed1d92d93","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"d35bb2b6-03e5-4236-b2c5-2db081ef58af","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/alexa/wake-word-tone","description":"<p>The <em>Gets whether tone is being played after hearing wakeword</em> REST call returns the status of playing a tone after hearing Alexa’s wake word on your Doppler.</p>\n<p>A response of <em>true</em> (default) indicates that a tone will play after hearing Alexa’s wake word:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"tone\": true\n}\n\n</code></pre>\n<p>To set if a tone should be played after hearing Alexa’s wake word, use the <em>Sets whether tone is being played after hearing wakeword</em> REST call.</p>\n<p>Response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"tone\"</td>\n<td>A Boolean <em>true</em> if a tone will play after hearing the Alexa wake word; otherwise, the value is <em>false</em>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","alexa","wake-word-tone"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"bf432637-462c-4759-9def-0d6e02834d6b","name":"Gets whether tone is being played after hearing wakeword","originalRequest":{"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/alexa/wake-word-tone"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"13"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"tone\": true\n}"}],"_postman_id":"d35bb2b6-03e5-4236-b2c5-2db081ef58af"},{"name":"Sets whether tone is being played after hearing wakeword","event":[{"listen":"test","script":{"id":"1c749d2e-f2c1-4199-a381-1efd3163892e","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"6c247849-a799-46df-9b50-04fdea0e4d7c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"tone\": true\n}"},"url":"https://:5443/Doppler-01234567/alexa/wake-word-tone","description":"<p>The <em>Sets whether tone is being played after hearing wakeword</em> REST call sets the status of setting a tone after hearing a wake word on your Doppler.</p>\n<p>An example REST Request body enables a tone to play after hearing Alexa’s wake word:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"tone\": true\n}\n\n</code></pre>\n<p>The response verifies the setting:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"tone\": true\n}\n\n</code></pre>\n<p>To retrieve the status if a tone should be played after hearing Alexa’s wake word, use the <em>Gets whether tone is being played after hearing wakeword</em> REST call.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"tone\"</td>\n<td>A Boolean <em>true</em> if a tone will play after hearing the Alexa wake word; otherwise, the value is <em>false</em>.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["Doppler-01234567","alexa","wake-word-tone"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"3743e1f0-3ead-4a76-97b5-7e7b9598d563","name":"Sets whether tone is being played after hearing wakeword","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"tone\": true\n}"},"url":"https://:5443/Doppler-01234567/alexa/wake-word-tone"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"13"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"tone\": true\n}"}],"_postman_id":"6c247849-a799-46df-9b50-04fdea0e4d7c"}],"id":"b699c23e-4485-40f0-ae9c-077ca66d8316","description":"<p>These REST calls associated with the Doppler’s support of Alexa features.</p>\n","_postman_id":"b699c23e-4485-40f0-ae9c-077ca66d8316","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Customize screen","item":[{"name":"Set main display","id":"e9cbdac9-8a02-4435-9f19-552d202dbd6f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"text\":\"foobarbaz\",\"duration\":0,\"speed\":0,\"color\":[255,255,0]}"},"url":"https://:5443/Doppler-01234567/hardware/display-text","description":"<p>The <em>Set main display</em> REST call enables customizing the information on the main display (see “Customize screen” documentation for an overview). The Doppler display dashboard’s electronics consist of four-character, large 7-segments:</p>\n<img src=\"https://content.pstmn.io/7c563860-7447-4c35-a185-03d1042d190e/NC1DaGFyIDctU2VnbWVudCBEaXNwbGF5IFBhbmVsIGZyb20gQWRhRnJ1aXQgLSBGaW5hbCAoMTQ0cHBpLCBNKS5wbmc=\" />\n\n<p>There are four JSON Request body values for showing a custom text message on your Doppler’s main display (shown in pseudo-code):</p>\n<p><code>{\"text\": \"text-message\",\"duration\": number-in-seconds,\"speed\": count,\"color\": RGB array}</code></p>\n<p>For example, the following JSON Request body transmits an 11-character text string in white with the entire text message displayed twice in <em>15</em> seconds:</p>\n<p><code>{\"text\":\"Door Opened\",\"duration\":15,\"speed\":22,\"color\":[255,255,255]}</code></p>\n<p>The response verifies that the command was sent and shows what text was actually used:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"text\": \"door oPEnEd\",\n    \"duration\": 15,\n    \"speed\": 22,\n    \"color\": [\n        255,\n        255,\n        255\n    ]\n}\n\n</code></pre>\n<p>Once the time duration completes, the main display returns to the time display.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"text\"</td>\n<td>The text string to be displayed as a message on the main display of your Doppler.</td>\n</tr>\n<tr>\n<td>\"duration\"</td>\n<td>A number that specifies how many seconds the text will be displayed. If not defined (or <em>0</em>), the duration is assumed to be <em>10</em> seconds.</td>\n</tr>\n<tr>\n<td>\"speed\"</td>\n<td>The number of characters to be displayed during the specified duration. If not defined (or <em>0</em>), the character length of the text message is assumed.</td>\n</tr>\n<tr>\n<td>\"color\"</td>\n<td>The RGB array set of three numbers (each ranging between 0 and 255) of the [Red, Green, Blue] value of the color. If not specified, the current time display color is assumed.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"defining-the-text-message\">Defining the text message</h2>\n<p>Each of the large character electronics in the main display consists of seven segments, thus limiting the displayable character set that a human can easily distinguish. If an invalid character is attempted, the Doppler will replace it with a \"_\" (or different capiltalization of the character). The \"text\" string is limited to the following:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Characters</strong></th>\n<th><strong>Valid set</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Numeric</td>\n<td>0 through 9</td>\n</tr>\n<tr>\n<td>Uppercase alphabetic</td>\n<td>A, E, F, I, J, L, P, S, Y, and Z</td>\n</tr>\n<tr>\n<td>Lowercase alphabetic</td>\n<td>b, c, d, g, h, n, o, q, r, t, and u</td>\n</tr>\n<tr>\n<td>Punctuation</td>\n<td>space, underscore, and hyphen (dash)</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Note:</strong> These characters are not available (uppercase or lowercase): K, M, W, or V). The Doppler will automatically choose the correct case and display it.</p>\n</blockquote>\n<h2 id=\"setting-the-duration\">Setting the duration</h2>\n<p>A number specifying the number of seconds will display the text. If the \"duration\" key/value is missing or set to <em>0</em>, a 10-second duration is assumed. In the example above, the duration is set to <em>15</em> seconds. The maximum duration is 8,675,309.</p>\n<h2 id=\"setting-the-speed\">Setting the speed</h2>\n<p>The speed identifies the number of characters to be shown during the duration. The text message will be displayed once if the \"speed\" key/value is missing or set to <em>0</em>. The example above shows the text message (<em>22</em>, or double the character count) twice.</p>\n<h2 id=\"choosing-the-color\">Choosing the color</h2>\n<p>The text message can use a specific RGB color defined by an array of numbers (ex: yellow is <em>[255,255,0]</em>). If no color key/value array is specified, the current time color used in the main display is used.</p>\n<h2 id=\"how-to-use-this-command\">How to use this command</h2>\n<p>There are several considerations regarding customizing the main display:</p>\n<ul>\n<li>If the text string is more than four characters, it will scroll (or marquee).</li>\n<li>An underscore (“_”) replaces those text characters, not in the displayable character set.</li>\n<li>Lowercase characters in the text message that are only available in uppercase are automatically converted (and vice versa). Ex: \"door opened\" will be displayed as \"door oPEnEd\".</li>\n</ul>\n<blockquote>\n<p><strong>Note:</strong> As with any command with a JSON Request body, if the key/value information is malformed (ex: , speed\" instead of ,\"speed\"), a <em>500</em> error will be returned.</p>\n</blockquote>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}},"urlObject":{"path":["Doppler-01234567","hardware","display-text"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"7037b6dc-b8f2-4e48-9f9c-4c7f0141917b","name":"Hello","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"text\":\"Hello\",\"duration\":0,\"speed\":0,\"color\":[255,255,0]}"},"url":"https://:5443/Doppler-01234567/hardware/display-text"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"59"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"text\": \"Hello\",\n    \"duration\": 0,\n    \"speed\": 0,\n    \"color\": [\n        255,\n        255,\n        0\n    ]\n}"}],"_postman_id":"e9cbdac9-8a02-4435-9f19-552d202dbd6f"},{"name":"Set mini display","id":"b8aeb709-a9fa-4ff4-9bb0-4246e6f51c8a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"num\":85,\"duration\":0,\"color\":[255,255,0]}"},"url":"https://:5443/Doppler-01234567/hardware/small-display-digits","description":"<p>The <em>Set mini display</em> REST call enables customizing a numeric display on the lower-right of the bottom on your Doppler (see “Customize screen” documentation for an overview). The small Doppler display dashboard’s electronics consist of a partial character for the number 1 and two full 7-segment display panel normally used for showing the temperature (-199 to 199)</p>\n<p>There are three JSON Request body values for customizing the mini display (shown in pseudo-code):</p>\n<p><code>{\"num\": number,\"duration\": number-in-seconds, \"color\": RGB array}</code></p>\n<p>For example, the following JSON Request body transmits a 2-digit number (<em>85</em>) for <em>5</em> seconds in yellow:</p>\n<p><code>{\"num\":85,\"duration\":5,\"color\":[255,255,0]}</code></p>\n<p>The response verifies that the command was sent:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"num\": 85,\n    \"duration\": 5,\n    \"color\": [\n        255,\n        255,\n        0\n    ]\n}\n\n</code></pre>\n<p>Once the time duration completes, the mini display returns to show the temperature again.</p>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"num\"</td>\n<td>A number to be displayed in place of the current temperature on the mini display of your Doppler.</td>\n</tr>\n<tr>\n<td>\"duration\"</td>\n<td>A number that specifies how many seconds the number value will be displayed. If not defined (or <em>0</em>), the duration is assumed to be <em>10</em> seconds.</td>\n</tr>\n<tr>\n<td>\"color\"</td>\n<td>The RGB array set of numbers (each ranging between 0 and 255). If not specified, the current temperature mini display color is assumed.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"defining-the-number\">Defining the number</h2>\n<p>The mini display is divided into two full 7-digit segments and a single partial display, thus limiting the displayable character set that the human eye can easily distinguish. The \"num\" number is limited to a number between -199 and 199.</p>\n<h2 id=\"setting-the-duration\">Setting the duration</h2>\n<p>A number specifying the number of seconds will display the number. If the \"duration\" key/value is missing or set to <em>0</em>, a 10-second duration is assumed. In the example above, the duration is set to <em>15</em> seconds. The maximum duration is 8,675,309.</p>\n<h2 id=\"choosing-the-color\">Choosing the color</h2>\n<p>The number displayed can use a specific RGB color defined by an array of numbers (ex: yellow is <em>[255,255,0]</em>). If no color key/value array is specified, the current time color used in the mini display is used.</p>\n<blockquote>\n<p><strong>Note:</strong> As with any command with a JSON Request body, if the key/value information is malformed (ex: , duration\" instead of ,\"duration\"), a <em>500</em> error will be returned. If the number is out of range, a <em>417</em> error will be returned.</p>\n</blockquote>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}},"urlObject":{"path":["Doppler-01234567","hardware","small-display-digits"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"ae250bc3-071a-4574-9c43-27403844cc37","name":"85 - yellow","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"num\":85,\"duration\":0,\"color\":[255,255,0]}"},"url":"https://:5443/Doppler-01234567/hardware/small-display-digits"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"43"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"num\": 85,\n    \"duration\": 0,\n    \"color\": [\n        255,\n        255,\n        0\n    ]\n}"}],"_postman_id":"b8aeb709-a9fa-4ff4-9bb0-4246e6f51c8a"},{"name":"Set light bar","id":"2af78806-d47d-44d9-bd46-4c0200f7b7a0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"colors\":[[255,0,0]], \"duration\":10, \"speed\":0, \"attributes\":{\"display\":\"blink\"}}"},"url":"https://:5443/Doppler-01234567/hardware/display-dots","description":"<p>The <em>Set light bar</em> REST call allows the custom display of 29 LED dots above the main display on your Doppler dashboard. These lightbar commands offer powerful flexibility:</p>\n<p>* Any RGB (red-green-blue) color can be applied to individual LEDs<br />* Preset animations can be selected to make a lightbar display pattern highly visible.</p>\n<blockquote>\n<p><strong>Note:</strong> Customizing the lightbar can range from being very simple to complex. There are a couple of considerations when lightbar commands are called. Most events performed on your Doppler (ex: enter color setup mode) will cancel a lightbar command. A few actions will temporarily pause a lightbar command (ex: pressing the mute button or adjusting the volume).</p>\n</blockquote>\n<p>The following example sets all of the lightbar’s LEDs to red for 10 seconds:</p>\n<p><code>{\"colors\":[[255,0,0]], \"duration\":10, \"speed\":0, \"attributes\":{\"display\":\"set\"}}</code></p>\n<p>The response verifying the command returns the following:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"colors\": [\n        [\n            255,\n            0,\n            0\n        ]\n    ],\n    \"attributes\": {\n        \"display\": \"set\"\n    },\n    \"duration\": 10,\n    \"speed\": 0\n}\n\n</code></pre>\n<p>Description of the JSON Request body and its response:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"colors\"</td>\n<td>The RGB value is an array consisting of red, green, and blue values (each ranging from 0 to 255). If not specified, or an array of <em>[[0,0,0]]</em>, indicates black (or non-display). Even if one RGB color is specified, it should be treated as an array.</td>\n</tr>\n<tr>\n<td>\"attributes\"</td>\n<td>The command to be performed on the LEDs where the key and the value are both configurable text strings (ex: \"attributes\": {\"display\": \"set\"}}). See the attributes table of options below.</td>\n</tr>\n<tr>\n<td>\"duration\"</td>\n<td>A number that specifies how many seconds the LED pattern will be displayed. If not defined (or 0), the duration is assumed to be 10 seconds. (The maximum duration is 8,675,309 seconds.)</td>\n</tr>\n<tr>\n<td>\"speed\"</td>\n<td>A numeric value that depends on specific modes, ranging from 0 to 255.</td>\n</tr>\n</tbody>\n</table>\n</div><p>As part of the \"attributes\" key, there are several modes that define the lightbar display pattern. Each mode is identified as a text string:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key : Value</strong></th>\n<th><strong>Value description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"display\":\"set\"</td>\n<td>Applies the specified color to the entire lightbar. If multiple colors are defined, the lightbar color will be displayed one after the other.</td>\n</tr>\n<tr>\n<td>\"display\":\"set-each\"</td>\n<td>Each LED’s color on the lightbar can be individually set.</td>\n</tr>\n<tr>\n<td>\"display\":\"blink\"</td>\n<td>Sets the entire lightbar to one color at a time; if multiple colors are specified, the colors will be cycled. In between each color change, the LEDs will be set with black (no display).</td>\n</tr>\n<tr>\n<td>\"display\":\"pulse\"</td>\n<td>Sets the entire lightbar to one color at a time; if multiple colors are specified, the colors will be cycled. Between each color change, the LEDs will be set with black (no display) and a fade effect.</td>\n</tr>\n<tr>\n<td>\"display\":\"comet\"</td>\n<td>A group of LEDs tracing back and forth (similar to our boot-up KITT animation). The tail of the LED pattern employs a fade effect (much like a real comet in space).</td>\n</tr>\n<tr>\n<td>\"display\":\"sweep\"</td>\n<td>Similar to the comet pattern, the sweep maintains the same LED brightness without the fade.</td>\n</tr>\n<tr>\n<td>\"sparkle\":\"high\"</td>\n<td>A random sparkle of colors effect can be applied to any mode with one of the three settings: \"low\", \"medium\", and \"high\".</td>\n</tr>\n<tr>\n<td>\"rainbow\":\"true\"</td>\n<td>A LED pattern that ranges from a 6-light rainbow (good visual quality) to a full 29-light rainbow (best quality). Rainbow colors are preset, and any specified RGB colors in the call will be ignored.</td>\n</tr>\n</tbody>\n</table>\n</div><p>The modes and attribute settings are flexible, and you are encouraged to experiment with your Doppler. Examples are described below:</p>\n<h2 id=\"displayset\">\"display\":\"set\"</h2>\n<p>This mode applies a solid color across the entire light bar based for a specific duration (in seconds):</p>\n<p>* If a single color is specified in the command JSON Request body, the entire lightbar will be displayed for the specified duration.<br />* If the speed is not specified (or a value of 0) and multiple colors are specified, each color will show an equal amount of time. If the speed is specified, each color will be displayed for that amount of time divided by the number of colors.</p>\n<p>For example, two colors are selected, and the speed is set for <em>2</em> seconds. Thus, each color will be displayed across the lightbar for one second (speed of <em>2</em> seconds in total) for a period of <em>10</em> seconds:</p>\n<p><code>{\"colors\":[[255,0,0],[0,0,255]], \"duration\":10, \"speed\":2, \"attributes\":{\"display\":\"set\"}}</code></p>\n<p>This command causes the entire lightbar to display in red (for one second) and then in blue (also for one second). This pattern repeats five times (for a total duration of <em>10</em> seconds).</p>\n<p>In this example, the response is:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"colors\": [\n        [\n            255,\n            0,\n            0\n        ],\n        [\n            0,\n            0,\n            255\n        ]\n    ],\n    \"attributes\": {\n        \"display\": \"set\"\n    },\n    \"duration\": 10,\n    \"speed\": 2\n}\n\n</code></pre>\n<p>This example command shows \"sparkle\":\"high\", an almost random display of sparkling red and blue effects for a total duration of <em>10</em> seconds. (The speed value of <em>2</em> implies that the two-color sparkle effect means that each switch between red and blue will be one second.)</p>\n<p><code>{\"colors\":[[255,0,0],[0,0,255]], \"duration\":10, \"speed\":2, \"attributes\":{\"display\":\"set\",\"sparkle\":\"high\"}}</code></p>\n<p>The response is:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"colors\": [\n        [\n            255,\n            0,\n            0\n        ],\n        [\n            0,\n            0,\n            255\n        ]\n    ],\n    \"attributes\": {\n        \"display\": \"set\",\n        \"sparkle\": \"high\"\n    },\n    \"duration\": 10,\n    \"speed\": 2\n}\n\n</code></pre>\n<p>Even though colors are specified in the following command, the use of \"rainbow\" overrides using those colors:</p>\n<p><code>{\"colors\":[[255,0,0],[0,0,255]], \"duration\":10, \"speed\":2, \"attributes\": {\"display\":\"set\",\"sparkle\":\"high\",\"rainbow\":\"true\"}}</code></p>\n<p>The response is:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"colors\": [\n        [\n            255,\n            0,\n            0\n        ],\n        [\n            0,\n            0,\n            255\n        ]\n    ],\n    \"attributes\": {\n        \"display\": \"set\",\n        \"sparkle\": \"high\",\n        \"rainbow\": \"true\"\n    },\n    \"duration\": 10,\n    \"speed\": 2\n}\n\n</code></pre>\n<blockquote>\n<p><strong>Note:</strong> The attribute \"rainbow\" is set to a <strong>text string</strong> (and not a Boolean value): \"true\" or, the default, \"false\".</p>\n</blockquote>\n<h2 id=\"displayset-each\">\"display\":\"set-each\"</h2>\n<p>This mode sets a color (from the specified RGB color array) for each of the LED dots in the lightbar. This mode works as follows:</p>\n<p>* If there are more than 29 color definitions specified, the first 29 are used (and the rest are ignored).<br />* Even if \"speed\" is specified, the \"set-each\" mode ignores it.<br />* For \"sparkle\" values of \"low\", \"medium\", \"high\" (\"none\" is default) will cause bright sparkles to twinkle across the entire lightbar.<br />* If \"rainbow\" is set to \"true\", a preset set of rainbow colors override any specified \"colors\" passed in the command.</p>\n<p>This example displays a single red dot in the first LED, while the remaining 28 LED dots will be white. This effect will be displayed for a duration of <em>10</em> seconds:</p>\n<p><code>{\"colors\":[[255,0,0],[255,255,255]], \"duration\":10, \"speed\":0, \"attributes\":{\"display\":\"set-each\"}}</code></p>\n<p>The response is:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"colors\": [\n        [\n            255,\n            0,\n            0\n        ],\n        [\n            255,\n            255,\n            255\n        ]\n    ],\n    \"attributes\": {\n        \"display\": \"set-each\"\n    },\n    \"duration\": 10,\n    \"speed\": 0\n}\n\n</code></pre>\n<h2 id=\"displayblink\">\"display\":\"blink\"</h2>\n<p>When one color is specified, \"display\":\"blink\" enables the entire lightbar to blink a solid color for a duration time (specified in seconds). If multiple colors are identified in an array, duration is divided in half to blink the lightbar LED dots:</p>\n<p>* Each color is applied in equal time increments, and<br />* The remainder of the time displays black (between each color change)</p>\n<p>A simple example showing blinking in yellow a total of <em>5</em> times for a duration of <em>10</em> seconds:</p>\n<p><code>{\"colors\":[[255,255,0]],\"attributes\":{\"display\":\"blink\"},\"duration\":10,\"speed\":2}</code></p>\n<p>The time when no LEDs are shown equals the amount of time that the yellow dots are displayed. The response verifying the request is:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"colors\": [\n        [\n            255,\n            255,\n            0\n        ]\n    ],\n    \"attributes\": {\n        \"display\": \"blink\"\n    },\n    \"duration\": 10,\n    \"speed\": 2\n}\n\n</code></pre>\n<h2 id=\"combining-effects\">Combining effects</h2>\n<p>Given the previous examples as starting points, lightbar effects can be combined to produce interesting visual effects:</p>\n<p><strong>\"speed\":</strong> If a numeric value is specified, each color in the color array will be displayed for that many seconds. For example, if two colors are defined with \"speed\": <em>4</em>, each color will be displayed for one second, and black (blank) will be displayed for one second between every color change. This entire cycle will occur until the total duration has elapsed. Otherwise, each color in the array will be displayed equally with a black (blank) display in between each color change.</p>\n<p><strong>\"sparkle\":</strong> There are four options: \"low\", \"medium\", \"high\", or \"none (the default). For non-black (blank) display, bright sparkles twinkle throughout the color LED dots.</p>\n<p><strong>\"rainbow\":</strong> If \"true\", any specified \"color\" array values will be overridden by a six-color rainbow preset. If \"false\" (the default), rainbow colors are not used. (Note that this value is a text string and not a Boolean.)</p>\n<h3 id=\"using-displaypulse\"><strong>Using \"display\":\"pulse\"</strong></h3>\n<p>The \"display\":\"pulse\" effect is best described as “slices” of time, with each being roughly equal:</p>\n<p>* The first slice is the fade-in from black to the first color in the color array.<br />* The second slice is the color holding steady.<br />* The third slice is the color fading back to black, then 0 or more slices of “gap” (default \"gap\":\"2\"), then onto the next color in the color array. (If all colors have been used, the display will loop back to the start of the array.)</p>\n<blockquote>\n<p><strong>Note:</strong> Even though \"gap\" values are numeric, they are treated as text strings and range from \"0\" to \"255.</p>\n</blockquote>\n<p>Using the default \"gap\":\"2\" with the colors red and blue defined in the color array, there will be 10 total slices for each display cycle. Each cycle will complete in \"speed\" seconds, looping until \"duration\" seconds has elapsed.</p>\n<p>Other settings that can contribute to visual effects on the lightbar include:</p>\n<ol>\n<li>\"gap\": \"2\" animation will pause on black for one slice per gap.</li>\n<li>\"sparkle\": \"low\" (\"medium\", \"high\", or the default \"none\") will cause bright sparkles to twinkle the solid colors. This effect does not occur during black (blank) intervals. In addition, the effect takes place while the color is ramping up and down.</li>\n<li>\"rainbow\": \"true\" (or \"false\" to use the specified colors) will cause the <em>colors</em> to be overridden with a preset 6 rainbow colors.</li>\n</ol>\n<h3 id=\"using-displaycomet\"><strong>Using \"display\":\"comet\"</strong></h3>\n<p>The \"display\":\"comet\" effect displays the first RGB color from the colors array traversing across the lightbar. The head of the comet is set to the primary color, and each color in “the tail” gets progressively dimmer.</p>\n<p>Other settings that can contribute to visual effects on the lightbar include:</p>\n<ol>\n<li>_\"_speed\": The number that indicates how long it takes for the comet to traverse from one side of the display to the other (in seconds). When the comet reaches an edge, the next iteration will change to the next color from the colors array. If all of the colors in the array have been used, loop back to the first color.</li>\n<li>\"size\": The number of dots used for displaying a fade effect in “the tail.” The default value is \"10\". Although a value of \"0\" shouldn’t be used, the valid range is from \"0\" to \"255\". (Note that even though the value represents a number, it is treated as a <strong>text string</strong>.)</li>\n<li>\"direction\": A text string value showing the comet’s direction: \"right\" (the default), \"left\", or \"bounce\".</li>\n<li>\"sparkle\": The amount of sparkle (\"low\", \"medium\", \"high\", or the default \"none\") will cause bright sparkles throughout the comet. Occasionally, the sparkles trail behind the comet’s movement.</li>\n<li>\"rainbow\": If \"true\", the comet will resemble a rainbow with each dot set to a different color. Enabling the rainbow effect overrides any colors passed in the color array. (Note that the default is \"false\" and that both options are treated as <strong>text strings</strong>, not as Booleans.) For the rainbow effect to work, if the comet \"size\" is less than \"6\", the rainbow comet will still display six colors. Otherwise, if the size is \"7\" or more, the comet head will change colors as it traverses across the display. In that case, the tail fades out using the color used at the comet's head.</li>\n</ol>\n<h3 id=\"using-displaysweep\"><strong>Using \"display\":\"sweep\"</strong></h3>\n<p>The \"display\":\"sweep\" displays blocks of colors from the colors array. Since the comet effect shows one block of dots at a time, the sweep can show more than one block at a time.</p>\n<p>This effect consists of a pattern of blocks of color with a black gap between each block. When all colors in the color array (and its gaps) are combined, it forms a cycle of LEDs (dots) that rotate across the screen. Each block of dots completes its rotation based on the number declared in \"speed\" (default is 2 seconds) until \"duration\" has elapsed (default is 10 seconds).</p>\n<p>Other settings that can contribute to visual effects on the lightbar include:</p>\n<ol>\n<li>\"direction\": A text string value showing the color block’s direction: \"right\" (the default) or \"left\".</li>\n<li>\"size\": The number of dots per block using the same color (default is \"5\". (Note that even though the value represents a number, it is treated as a <strong>text string</strong> ranging from \"1\" to \"255\".)</li>\n<li>\"gap\": The number of dots per block that are black (blank). The default value is \"5\". (Note that even though the value represents a number, it is treated as a <strong>text string</strong> ranging from \"0\" to \"255\".)</li>\n<li>\"sparkle\": The amount of sparkle (\"low\", \"medium\", \"high\", or the default \"none\") will cause bright sparkles throughout the color blocks. Occasionally, the sparkles trail behind the movement.</li>\n<li>\"rainbow\": \"true\" (or \"false\" to use the specified colors) will cause the <em>colors</em> to be overridden with a preset 6 rainbow colors. If \"gap\" is set to 0; instead a preset of 29 rainbow colors will fill the bar.</li>\n</ol>\n<h2 id=\"an-example-with-many-options\">An example with many options</h2>\n<p>An example command showing a complex combination of effects is:</p>\n<p><code>{\"colors\":[[155,0,255],[0,0,255]],\"attributes\":{\"display\":\"sweep\",\"size\":\"20\",\"rainbow\":\"true\",\"sparkle\":\"medium\"},\"duration\":10,\"speed\":1}</code></p>\n<p>The response that verifies the command is:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"colors\": [\n        [\n            155,\n            0,\n            255\n        ],\n        [\n            0,\n            0,\n            255\n        ]\n    ],\n    \"attributes\": {\n        \"display\": \"sweep\",\n        \"size\": \"20\",\n        \"rainbow\": \"true\",\n        \"sparkle\": \"medium\"\n    },\n    \"duration\": 10,\n    \"speed\": 1\n}\n\n</code></pre>\n<blockquote>\n<p><strong>Note:</strong> As with any command with a JSON Request body, if the key/value information is malformed (ex: forgetting a matching array left bracket of \"colors\":[255,0,0],[255,255,255]] instead of \"colors\":[[255,0,0],[255,255,255]]), a <em>500</em> error will be returned.</p>\n</blockquote>\n<p>We also have a secret mode we are experimenting with, give this a try:</p>\n<p>StartFragment</p>\n<p>{\"colors\":[[1,33,7],[255,0,0],[0,0,255],[255,255,0]],\"attributes\":{\"display\":\"sweep\",\"size\":\"1\",\"gap\":\"0\",\"rainbow\":\"true\",\"sparkle\":\"none\",\"direction\":\"bounce\"},\"duration\":4000,\"speed\":2}</p>\n<p>EndFragment</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}},"urlObject":{"path":["Doppler-01234567","hardware","display-dots"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[{"id":"f0b17261-6437-46af-a5bc-38785c423ddb","name":"Set light bar","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"colors\":[[255,0,0]], \"duration\":10, \"speed\":0, \"attributes\":{\"display\":\"blink\"}}"},"url":"https://:5443/Doppler-01234567/hardware/display-dots"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"79"},{"key":"Content-Type","value":"application/json"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"oatpp/1.3.0"}],"cookie":[],"responseTime":null,"body":"{\n    \"colors\": [\n        [\n            255,\n            0,\n            0\n        ]\n    ],\n    \"attributes\": {\n        \"display\": \"blink\"\n    },\n    \"duration\": 10,\n    \"speed\": 0\n}"}],"_postman_id":"2af78806-d47d-44d9-bd46-4c0200f7b7a0"}],"id":"c46c310d-abf9-43ce-8355-613cad998dd0","description":"<p>These are the REST calls that enable the customization of your Doppler’s display dashboard panel:</p>\n<ul>\n<li>Main display</li>\n<li>Mini display</li>\n<li>Lightbar</li>\n</ul>\n<p>The opportunities to customize what is displayed on a Doppler are virtually unlimited, making the display dashboard a focus for home (or business) information.</p>\n<p>For example, a “door open” message could be sent to your Doppler’s display when a door opening is detected.</p>\n<p>Join our <a href=\"http://discord.gg/sandman\">Discord</a> community to let us know how to improve our customization capabilities.</p>\n","_postman_id":"c46c310d-abf9-43ce-8355-613cad998dd0","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}},{"name":"Deprecated","item":[{"name":"Display and Button color","event":[{"listen":"test","script":{"id":"5d2126d3-832a-4099-9d9d-80b520dc8856","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"4af544de-3f22-41fa-a1d2-68eb37938a23","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"https://:5443/Doppler-01234567/hardware/display-color","description":"<p><em>The Display and button color</em> REST call has been deprecated due to the recent Doppler enhancements with day and night mode.</p>\n<p>Instead, refer to the following supported REST GET calls:</p>\n<ul>\n<li><em>Day mode display color</em> REST call</li>\n<li><em>Night mode display color</em> REST call</li>\n<li><em>Day mode button color</em> REST call</li>\n<li><em>Night mode button color</em> REST call</li>\n</ul>\n","urlObject":{"path":["Doppler-01234567","hardware","display-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[],"_postman_id":"4af544de-3f22-41fa-a1d2-68eb37938a23"},{"name":"Display and Button color","event":[{"listen":"test","script":{"id":"b8622b38-d9a6-41b3-a0d4-0abc04ea7552","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"f1b21a35-89e4-489d-9023-4086b2ebbb34","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"color\": [\r\n        255,\r\n        255,\r\n        0\r\n    ]\r\n}"},"url":"https://:5443/Doppler-01234567/hardware/display-color","description":"<p><em>The Display and button color</em> REST call has been deprecated due to the recent Doppler enhancements with day and night mode.</p>\n<p>Instead, refer to the following supported REST PUT calls:</p>\n<ul>\n<li><em>Day mode display color</em> REST call</li>\n<li><em>Night mode display color</em> REST call</li>\n<li><em>Day mode button color</em> REST call</li>\n<li><em>Night mode button color</em> REST call</li>\n</ul>\n","urlObject":{"path":["Doppler-01234567","hardware","display-color"],"host":["https://:5443"],"query":[],"variable":[]}},"response":[],"_postman_id":"f1b21a35-89e4-489d-9023-4086b2ebbb34"}],"id":"f38360a8-403a-4e59-8617-061a909c9f63","description":"<p>As the software is changed and added to, some REST APIs are no longer recommended on your Doppler. Please avoid using these if possible.</p>\n","_postman_id":"f38360a8-403a-4e59-8617-061a909c9f63","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}}],"id":"39ba9aa1-9b61-4993-ba77-818a5c013143","_postman_id":"39ba9aa1-9b61-4993-ba77-818a5c013143","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","id":"104ab669-5587-40a6-8de1-cbd0d6a5ca40","name":"Doppler Local REST API","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]}},"event":[{"listen":"prerequest","script":{"id":"1aedf4a4-46e4-4d89-9454-e104a21e7549","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"9b87e1b4-a59b-4a94-9234-6590cccc4480","type":"text/javascript","exec":[""]}}],"variable":[{"key":"baseUrl","value":"https://:5443"},{"key":"dsn","value":"Doppler-01234567"},{"key":"email","value":"testing@paloaltoinnovation.com"},{"key":"password","value":"SecurePassword!"},{"key":"bearer","value":""},{"key":"DSN","value":""},{"key":"copilotbearer","value":""},{"key":"ipAddie","value":""},{"key":"cloudUrl","value":"https://control.sandmandoppler.com"}]}