{"openapi":"3.0.0","servers":[{"url":"http://example.com/setup","variables":{}}],"info":{"contact":{},"description":"# Google Home Local API\nThis is an unofficial documentation of the local API used by the Home app to communicate with GH devices.\n[GitHub Repo](https://github.com/rithvikvibhu/GHLocalApi)\n\n[![GitHub stars](https://img.shields.io/github/stars/rithvikvibhu/GHLocalApi)](https://github.com/rithvikvibhu/GHLocalApi/stargazers) [![GitHub license](https://img.shields.io/github/license/rithvikvibhu/GHLocalApi)](https://github.com/rithvikvibhu/GHLocalApi/blob/master/LICENSE.md)\n\n## Getting Started\n\nRequests must be made over HTTPS, port 8443, so the base URL for these endpoints is: `https://<google-home-ip>:8443/setup/`\n\nGet the IP of Google Home from the Google Home app (Device Settings -> End of the list) or from your router.\n\nGET requests are simple, in the browser kind.  \nPOST requests need to set the header (when there's a body): `content-type: application/json`\n\n## Authentication\n\nSince June 2019, most requests (with exceptions like `/setup/eureka_info`) need a local authorization token.\n\nThere are 3 kinds of tokens involved here:\n\n### Local Authorization Token\nThis token must be sent in all requests in the header `cast-local-authorization-token`. It is short-lived (~1 day) and may change unexpectedly (with a sync, change in homegraph, etc.)\n##### Get this token\n- With access to an android device, [get this token directly by either method](https://gist.github.com/rithvikvibhu/1a0f4937af957ef6a78453e3be482c1f).\n- Without a device, or to integrate it with a script, use an access token to get the homegraph and extract the token. To get an access token, read the next section. Check the example section for more info.\n\n### Access Token\nThis is a standard google oauth2 access token. It is in the form `ya29.***`.\nThis gives access to the Google Home Foyer API. These expire in an hour.\nUse this to get the homegraph (and then the local authorization token above).\n##### Get this token\nTo get this access token, either a Google account username/password or a Google Master Token is needed. More info in the gist.\nUse the script [from this gist](https://gist.github.com/rithvikvibhu/952f83ea656c6782fbd0f1645059055d).\n\n### Master Token\nThis is in the form `aas_et/***` and can be used to request access tokens.\n##### Get this token\nThe same [script in the gist](https://gist.github.com/rithvikvibhu/952f83ea656c6782fbd0f1645059055d) that gets the access token can also get the master token. Needs Google account creds.\n\n## Example\n\nHere's the whole flow from just a pair of username/password to using the local API.\n\nPrerequisites:\n- [grpcurl](https://github.com/fullstorydev/grpcurl)\n- [Proto files](https://drive.google.com/drive/folders/1RvnN3y-G23pd2SWHmfV_7sef8QU5GNF4?usp=sharing) (preserve folder structure)\n\n### 1. Get an access token with the script\n- Download get_tokens.py\n- Fill in username and password\n```sh\npython3 get_tokens.py\n# Note down the access token printed.\n```\n\n### 2. Use the access token and get home graph\n- This prints the json and uses jq to parse and filter out the fields deviceName and localAuthToken\n- This will give a list of all devices and their local auth tokens\n```sh\n./grpcurl -H 'authorization: Bearer ya29.a0Af****' \\\n\t-import-path /path/to/protos \\\n\t-proto /path/to/protos/google/internal/home/foyer/v1.proto \\\n\tgooglehomefoyer-pa.googleapis.com:443 \\\n\tgoogle.internal.home.foyer.v1.StructuresService/GetHomeGraph | jq '.home.devices[] | {deviceName, localAuthToken}'\n# Note down the local auth token for the device you want.\n```\n\n### 3. Make the call to the local device using the local auth token\n```sh\ncurl -H \"cast-local-authorization-token: LOCAL_AUTH_TOKEN\" --verbose --insecure https://192.168.0.18:8443/setup/bluetooth/status\n```","title":"Google Home","version":"2.0","x-codegen-settings":{"AllowSkippingSSLCertVerification":false,"AndroidHttpClient":"ANDROID_OK","AndroidUseAppManifest":false,"AppendContentHeaders":true,"ApplyCustomizations":[],"ArraySerialization":"Indexed","BackoffFactor":0,"BodySerialization":0,"CSharpHttpClient":"UNIREST","CollectParameters":false,"DisableDocs":false,"DisableLinting":false,"DoNotSplitWords":[],"EnableAdditionalModelProperties":false,"EnableGlobalUserAgent":true,"EnableHttpCache":false,"EnableImmutableModels":false,"EnableLogging":false,"EnablePHPComposerVersionString":false,"EncodeTemplateParameters":true,"ForceKeywordArgsInRuby":false,"GenerateAdvancedDocs":true,"GenerateAppveyorConfig":false,"GenerateAsyncCode":true,"GenerateCircleConfig":false,"GenerateEnums":true,"GenerateExceptions":true,"GenerateInterfaces":false,"GenerateJenkinsConfig":false,"GenerateModels":true,"GenerateTravisConfig":false,"IgnoreIfNullJson":false,"IsLatestVersion":false,"JavaHttpClient":"JAVA_OK","JavaUsePropertiesConfig":false,"LiftParameterDescriptionFromCustomType":false,"ModelSerializationScheme":"Json","NodeHttpClient":"NODE_REQUEST","Nullify404":false,"ObjCHttpClient":"UNIREST","PHPHttpClient":"UNIREST","ParameterArrayFormat":"ParamArrayWithIndex","PreserveParameterOrder":true,"ResponseMapping":{"Type":"Simple"},"Retries":0,"RetryInterval":1,"ReturnCompleteHttpResponse":false,"RunscopeEnabled":false,"SecurityProtocols":["Ssl3","Tls"],"SortResources":false,"StoreTimezoneInformation":false,"SymbolizeHashKeysInRuby":false,"ThrowForHttpErrorStatusCodes":true,"Timeout":0,"UnderscoreNumbers":true,"UsageExampleEndpoint":{"Description":"","EndpointGroupName":"","EndpointName":""},"UseCommonSDKLibrary":false,"UseConstructorsForConfig":false,"UseControllerPrefix":true,"UseEndpointMethodName":false,"UseEnumPostfix":true,"UseExceptionPrefix":true,"UseMethodPrefix":true,"UseModelPostfix":false,"UseSingletonPattern":true,"UserConfigurableRetries":true,"ValidateRequiredParameters":false,"iOSGenerateCoreData":false,"iOSUseAppInfoPlist":false},"x-image-uri":"","x-origin":[{"format":"openapi","url":"https://raw.githubusercontent.com/rithvikvibhu/GHLocalApi/master/GoogleHome.openapi3.json","version":"3.0"}],"x-providerName":"google.home","x-server-configuration":{"default-environment":"production","default-server":"Server 1","environments":[{"name":"production","servers":[{"name":"Server 1","url":"http://example.com/setup"}]}],"parameters":[]},"x-unofficialSpec":true},"security":[{"cast-local-authorization-token":[]}],"tags":[{"description":"Endpoints in this folder give information about the device.","name":"Device Info"},{"description":"This folder consists of all endpoints to modify and control the device.","name":"Device Settings"},{"description":"This folder contains all endpoints related to Assistant's tasks like Do Not Disturb, Alarms and Timers, Accessibility and equalizer.","name":"Assistant"},{"description":"This folder contains Bluetooth related endpoints.","name":"Bluetooth"},{"description":"This folder contains Wi-Fi related endpoints.","name":"Wifi"},{"description":"This folder contains a list of static files stored in Home.","name":"Static Files"}],"paths":{"/NOTICE.html.gz":{"get":{"deprecated":false,"description":"All licenses of programs used by Home.","operationId":"LegalNotice","parameters":[],"responses":{"200":{"content":{"text/plain":{"example":"<html><!-- a long page --></html>","schema":{"example":"<html><!-- a long page --></html>","type":"string"}}},"description":"","headers":{}}},"summary":"Legal Notice","tags":["Static Files"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"<html><!-- a long page --></html>","headers":{"Access-Control-Allow-Headers":"Range","Access-Control-Allow-Methods":"GET, OPTIONS","Content-Encoding":"gzip","Content-Length":"131302","Content-Type":"text/html"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"RAW","x-matchResponseSchema":true},"request":{"method":"GET","uri":"/NOTICE.html.gz"},"x-testDescription":"All licenses of programs used by Home.","x-testEnabled":false,"x-testName":"Legal Notice","x-testShouldPass":true}]}},"/assistant/a11y_mode":{"post":{"deprecated":false,"description":"This controls Accessibility sounds. `hotword_enabled` is for 'Play start sound' and `endpoint_enabled` is for 'Play end sound'.  \nSending an empty-body POST request returns the current values.  \nEither of the fields or both can be sent and new values will be saved.","operationId":"Accessibility","parameters":[],"requestBody":{"content":{"application/json":{"example":{"endpoint_enabled":false,"hotword_enabled":false},"schema":{"$ref":"#/components/schemas/AccessibilityRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"endpoint_enabled":false,"hotword_enabled":false},"schema":{"$ref":"#/components/schemas/Getcurrentvalues"}}},"description":"","headers":{}}},"summary":"Accessibility","tags":["Assistant"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"{\"endpoint_enabled\":false,\"hotword_enabled\":false}","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"50","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"hotword_enabled\": false,\r\n  \"endpoint_enabled\": false\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/assistant/a11y_mode"},"x-testDescription":"This controls Accessibility sounds. `hotword_enabled` is for 'Play start sound' and `endpoint_enabled` is for 'Play end sound'.  \nSending an empty-body POST request returns the current values.  \nEither of the fields or both can be sent and new values will be saved.","x-testEnabled":true,"x-testName":"Accessibility","x-testShouldPass":true}]}},"/assistant/alarms":{"get":{"deprecated":false,"description":"This gives a list of all active alarms and timers.\n\nBoth alarms and timers have `id`s which can be used to delete them. (There is no known way of creating/deleting yet). The value of `status` have different meanings for alarms and timers (given below).\n\nAlarms have `date_pattern` and `time_pattern` with day, month, year, hour, minute, second. `fire_time` is the same in unix time (milliseconds, not seconds).  \n`status` is 1 for set up and 2 for ringing.\n\nTimers have `original_duration` is the original duration.  \n`status` is 1 for set up and 3 for ringing.","operationId":"GetAlarmsandTimers","parameters":[],"responses":{"200":{"content":{"application/json":{"example":{"alarm":[{"date_pattern":{"day":15,"month":1,"year":2018},"fire_time":1515995400000,"id":"alarm/xxx","status":1,"time_pattern":{"hour":6,"minute":50,"second":0}}],"timer":[{"fire_time":1516176765589,"id":"timer/xxx","original_duration":20000,"status":1}]},"schema":{"$ref":"#/components/schemas/Example18"}}},"description":"","headers":{}}},"summary":"Get Alarms and Timers","tags":["Assistant"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"{\r\n  \"alarm\": [\r\n    {\r\n      \"date_pattern\": {\r\n        \"day\": 15,\r\n        \"month\": 1,\r\n        \"year\": 2018\r\n      },\r\n      \"time_pattern\": {\r\n        \"hour\": 6,\r\n        \"minute\": 50,\r\n        \"second\": 0\r\n      },\r\n      \"fire_time\": 1515995400000.0,\r\n      \"id\": \"alarm/xxx\",\r\n      \"status\": 1\r\n    }\r\n  ],\r\n  \"timer\": [\r\n    {\r\n      \"fire_time\": 1516176765589,\r\n      \"id\": \"timer/xxx\",\r\n      \"original_duration\": 20000,\r\n      \"status\": 1\r\n    }\r\n  ]\r\n}","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"23","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"method":"GET","uri":"/assistant/alarms"},"x-testDescription":"This gives a list of all active alarms and timers.\n\nBoth alarms and timers have `id`s which can be used to delete them. (There is no known way of creating/deleting yet). The value of `status` have different meanings for alarms and timers (given below).\n\nAlarms have `date_pattern` and `time_pattern` with day, month, year, hour, minute, second. `fire_time` is the same in unix time (milliseconds, not seconds).  \n`status` is 1 for set up and 2 for ringing.\n\nTimers have `original_duration` is the original duration.  \n`status` is 1 for set up and 3 for ringing.","x-testEnabled":true,"x-testName":"Get Alarms and Timers","x-testShouldPass":true}]}},"/assistant/alarms/delete":{"post":{"deprecated":false,"description":"This deletes alarms and timers by their id.\n\n`ids` is a list of ids to be deleted. Sending invalid id still returns a 200 OK. The `/` in the ids have to be escaped like `\\/`.","operationId":"DeleteAlarmsandTimers","parameters":[],"requestBody":{"content":{"application/json":{"example":{"ids":["timer/xxx","alarm/xxx"]},"schema":{"$ref":"#/components/schemas/DeleteAlarmsandTimersRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"success":true},"schema":{"$ref":"#/components/schemas/Example19"}}},"description":"","headers":{}}},"summary":"Delete Alarms and Timers","tags":["Assistant"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"{\"success\":true}","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"16","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"ids\": [\r\n    \"timer/xxx\",\r\n    \"alarm/xxx\"\r\n  ]\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/assistant/alarms/delete"},"x-testDescription":"This deletes alarms and timers by their id.\n\n`ids` is a list of ids to be deleted. Sending invalid id still returns a 200 OK. The `/` in the ids have to be escaped like `\\/`.","x-testEnabled":true,"x-testName":"Delete Alarms and Timers","x-testShouldPass":true}]}},"/assistant/alarms/volume":{"post":{"deprecated":false,"description":"This gets and sets alarms and timers volume.  \n**Note:** This is not the same as normal volume.\n\nVolume is a float number in [0, 1] where 0 is minimum and 1 is maximum.  \nSending an empty body gets the volume. Sending `volume` sets the volume.","operationId":"AlarmVolume","parameters":[],"requestBody":{"content":{"application/json":{"example":{"volume":1},"schema":{"$ref":"#/components/schemas/AlarmVolumeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"volume":1},"schema":{"$ref":"#/components/schemas/Getvolume"}}},"description":"","headers":{}}},"summary":"Alarm Volume","tags":["Assistant"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"{\"volume\":1.0}","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"14","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"volume\": 1\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/assistant/alarms/volume"},"x-testDescription":"This gets and sets alarms and timers volume.  \n**Note:** This is not the same as normal volume.\n\nVolume is a float number in [0, 1] where 0 is minimum and 1 is maximum.  \nSending an empty body gets the volume. Sending `volume` sets the volume.","x-testEnabled":true,"x-testName":"Alarm Volume","x-testShouldPass":true}]}},"/assistant/check_ready_status":{"post":{"deprecated":false,"description":"**Update:** This seems to have changed now and is no longer possible. The error is also new.\n\nSetting `play_ready_message` to true plays a welcome message on the device saying \"Hi, I'm your Google Assistant. I'm here to help. To learn a few things you can do, continue in the Google Home app.\"","operationId":"CheckReadyStatus","parameters":[],"requestBody":{"content":{"application/json":{"example":{"play_ready_message":true,"user_id":"xxxxx"},"schema":{"$ref":"#/components/schemas/CheckReadyStatusRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"can_enroll":true,"enrollment_state":0,"error_code":0,"ready":false,"retryable":true},"schema":{"$ref":"#/components/schemas/Example13"}}},"description":"","headers":{}}},"summary":"Check Ready Status","tags":["Device Info"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"{\r\n  \"can_enroll\": true,\r\n  \"enrollment_state\": 0,\r\n  \"error_code\": 0,\r\n  \"ready\": false,\r\n  \"retryable\": true\r\n}","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"86","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"play_ready_message\": true,\r\n  \"user_id\": \"xxxxx\"\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/assistant/check_ready_status"},"x-testDescription":"**Update:** This seems to have changed now and is no longer possible. The error is also new.\n\nSetting `play_ready_message` to true plays a welcome message on the device saying \"Hi, I'm your Google Assistant. I'm here to help. To learn a few things you can do, continue in the Google Home app.\"","x-testEnabled":true,"x-testName":"Check Ready Status","x-testShouldPass":true}]}},"/assistant/notifications":{"post":{"deprecated":false,"description":"This is for the Do Not Disturb option. Sending an empty-body POST returns the current value. Sending a new value changes it.","operationId":"DoNotDisturb","parameters":[{"in":"header","name":"Content-Type","required":true,"schema":{"example":"application/json","type":"string"},"style":"simple"}],"responses":{"200":{"content":{"application/json":{"example":{"notifications_enabled":true},"schema":{"$ref":"#/components/schemas/Getcurrentstate"}}},"description":"","headers":{}}},"summary":"Do Not Disturb","tags":["Assistant"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"{\"notifications_enabled\":true}","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"30","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"headers":{"Content-Type":"application/json"},"method":"POST","uri":"/assistant/notifications"},"x-testDescription":"This is for the Do Not Disturb option. Sending an empty-body POST returns the current value. Sending a new value changes it.","x-testEnabled":true,"x-testName":"Do Not Disturb","x-testShouldPass":true}]}},"/assistant/set_night_mode_params":{"post":{"deprecated":false,"description":"This sets night mode options.  \nTo view currently set values, use /setup/eureka_info.  \nIf `enabled` is set to false, night mode is disabled and the other values do not matter.  \n`led_brightness` and `volume` refer to the maximum LED Brightness and Volume that is set during night mode.  \n`demo_to_user` is always set to `true` so change in values will be visible in realtime (like brightness).  \n`windows`: A combination of `length_hours` and `start_hour` is used to define start and end times for night mode. In this example, night mode starts at 10 PM (22) and ends at 6 AM (8 hours later). `windows.days` is an array of days of week when night mode will be enabled. Example: 0->Sunday, 1-> Monday, ..., 6->Saturday.","operationId":"NightModesettings","parameters":[],"requestBody":{"content":{"application/json":{"example":{"demo_to_user":true,"do_not_disturb":true,"enabled":false,"led_brightness":0.44999998807907104,"volume":0.46000000834465027,"windows":[{"days":[0,1,2,3,4,5,6],"length_hours":8,"start_hour":22}]},"schema":{"$ref":"#/components/schemas/NightModesettingsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"do_not_disturb":true,"enabled":false,"led_brightness":0.44999998807907104,"volume":0.46000000834465027,"windows":[{"days":[0,1,2,3,4,5,6],"length_hours":8,"start_hour":22}]},"schema":{"$ref":"#/components/schemas/Example17"}}},"description":"","headers":{}}},"summary":"Night Mode settings","tags":["Device Settings"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"{\"do_not_disturb\":true,\"enabled\":false,\"led_brightness\":0.44999998807907104,\"volume\":0.46000000834465027,\"windows\":[{\"days\":[0,1,2,3,4,5,6],\"length_hours\":8.0,\"start_hour\":22.0}]}","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"179","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"enabled\": false,\r\n  \"do_not_disturb\": true,\r\n  \"led_brightness\": 0.44999998807907104,\r\n  \"volume\": 0.46000000834465027,\r\n  \"demo_to_user\": true,\r\n  \"windows\": [\r\n    {\r\n      \"length_hours\": 8,\r\n      \"days\": [\r\n        0,\r\n        1,\r\n        2,\r\n        3,\r\n        4,\r\n        5,\r\n        6\r\n      ],\r\n      \"start_hour\": 22\r\n    }\r\n  ]\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/assistant/set_night_mode_params"},"x-testDescription":"This sets night mode options.  \nTo view currently set values, use /setup/eureka_info.  \nIf `enabled` is set to false, night mode is disabled and the other values do not matter.  \n`led_brightness` and `volume` refer to the maximum LED Brightness and Volume that is set during night mode.  \n`demo_to_user` is always set to `true` so change in values will be visible in realtime (like brightness).  \n`windows`: A combination of `length_hours` and `start_hour` is used to define start and end times for night mode. In this example, night mode starts at 10 PM (22) and ends at 6 AM (8 hours later). `windows.days` is an array of days of week when night mode will be enabled. Example: 0->Sunday, 1-> Monday, ..., 6->Saturday.","x-testEnabled":true,"x-testName":"Night Mode settings","x-testShouldPass":true}]}},"/bluetooth/bond":{"post":{"deprecated":false,"description":"*See note for Bluetooth under `/setup/bluetooth/status`*\n\n**For both parts**\n\nThis is to forget paired devices by mac address. Works for both kinds of devices (Part 1 and Part 2).","operationId":"Forgetpaireddevice","parameters":[],"requestBody":{"content":{"application/json":{"example":{"bond":false,"mac_address":"xx:xx:xx:xx:xx:xx"},"schema":{"$ref":"#/components/schemas/ForgetpaireddeviceRequest"}}},"required":true},"responses":{"200":{"content":{"text/plain":{"schema":{"type":"object","x-is-dynamic":true}}},"description":"","headers":{}}},"summary":"Forget paired device","tags":["Bluetooth"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"headers":{},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"NONE","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"mac_address\": \"xx:xx:xx:xx:xx:xx\",\r\n  \"bond\": false\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/bluetooth/bond"},"x-testDescription":"*See note for Bluetooth under `/setup/bluetooth/status`*\n\n**For both parts**\n\nThis is to forget paired devices by mac address. Works for both kinds of devices (Part 1 and Part 2).","x-testEnabled":true,"x-testName":"Forget paired device","x-testShouldPass":true}]}},"/bluetooth/connect":{"post":{"deprecated":false,"description":"*See note for Bluetooth under `/setup/bluetooth/status`*\n\n**For Part 2 only**\n\nThis pairs with other bluetooth speakers by mac address.","operationId":"PairwithSpeaker","parameters":[],"requestBody":{"content":{"application/json":{"example":{"connect":true,"mac_address":"54:13:79:49:19:22","profile":2},"schema":{"$ref":"#/components/schemas/PairwithSpeakerRequest"}}},"required":true},"responses":{"200":{"content":{"text/plain":{"schema":{"type":"object","x-is-dynamic":true}}},"description":"","headers":{}}},"summary":"Pair with Speaker","tags":["Bluetooth"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"0"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"NONE","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"mac_address\": \"54:13:79:49:19:22\",\r\n  \"connect\": true,\r\n  \"profile\": 2\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/bluetooth/connect"},"x-testDescription":"*See note for Bluetooth under `/setup/bluetooth/status`*\n\n**For Part 2 only**\n\nThis pairs with other bluetooth speakers by mac address.","x-testEnabled":true,"x-testName":"Pair with Speaker","x-testShouldPass":true}]}},"/bluetooth/discovery":{"post":{"deprecated":false,"description":"*See note for Bluetooth under `/setup/bluetooth/status`*\n\n**For Part 1 only**\n\nThis enables/disables Home's bluetooth discovery and other devices can pair with Home (where Home acts as a speaker).","operationId":"ChangeDiscoverability","parameters":[],"requestBody":{"content":{"application/json":{"example":{"enable_discovery":true},"schema":{"$ref":"#/components/schemas/ChangeDiscoverabilityRequest"}}},"required":true},"responses":{"200":{"content":{"text/plain":{"schema":{"type":"object","x-is-dynamic":true}}},"description":"","headers":{}}},"summary":"Change Discoverability","tags":["Bluetooth"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"headers":{},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"NONE","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"enable_discovery\": true\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/bluetooth/discovery"},"x-testDescription":"*See note for Bluetooth under `/setup/bluetooth/status`*\n\n**For Part 1 only**\n\nThis enables/disables Home's bluetooth discovery and other devices can pair with Home (where Home acts as a speaker).","x-testEnabled":true,"x-testName":"Change Discoverability","x-testShouldPass":true}]}},"/bluetooth/get_bonded":{"get":{"deprecated":false,"description":"*See note for Bluetooth under `/setup/bluetooth/status`*\n\n**For both parts**\n\nThis gives a list of all paired or 'bonded' devices. The response field names are self-descriptive.","operationId":"GetPairedDevices","parameters":[],"responses":{"200":{"content":{"application/json":{"example":[{"bond_date":1503212407260.55,"device_class":5898764,"device_type":1,"last_connect_date":1514807829482.111,"mac_address":"xx:xx:xx:xx:xx:xx","name":"Device Name","rssi":-255,"service_uuids":["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]}],"schema":{"items":{"$ref":"#/components/schemas/Example111"},"type":"array"}}},"description":"","headers":{}}},"summary":"Get Paired Devices","tags":["Bluetooth"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"[\r\n  {\r\n    \"bond_date\": 1503212407260.55,\r\n    \"device_class\": 5898764,\r\n    \"device_type\": 1,\r\n    \"last_connect_date\": 1514807829482.1111,\r\n    \"mac_address\": \"xx:xx:xx:xx:xx:xx\",\r\n    \"name\": \"Device Name\",\r\n    \"rssi\": -255,\r\n    \"service_uuids\": [\r\n      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\r\n    ]\r\n  }\r\n]","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"2","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"method":"GET","uri":"/bluetooth/get_bonded"},"x-testDescription":"*See note for Bluetooth under `/setup/bluetooth/status`*\n\n**For both parts**\n\nThis gives a list of all paired or 'bonded' devices. The response field names are self-descriptive.","x-testEnabled":true,"x-testName":"Get Paired Devices","x-testShouldPass":true}]}},"/bluetooth/scan":{"post":{"deprecated":false,"description":"*See note for Bluetooth under `/setup/bluetooth/status`*\n\n**For Part 2 only**\n\nThis initiates scan for other bluetooth speakers/devices. Scan results will be updated continuously for `timeout` seconds.  \nTo get the scan results, see /setup/bluetooth/scan_results.","operationId":"Scanfordevices","parameters":[],"requestBody":{"content":{"application/json":{"example":{"clear_results":true,"enable":true,"timeout":60},"schema":{"$ref":"#/components/schemas/ScanfordevicesRequest"}}},"required":true},"responses":{"200":{"content":{"text/plain":{"schema":{"type":"object","x-is-dynamic":true}}},"description":"","headers":{}}},"summary":"Scan for devices","tags":["Bluetooth"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"0"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"NONE","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"enable\": true,\r\n  \"clear_results\": true,\r\n  \"timeout\": 60\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/bluetooth/scan"},"x-testDescription":"*See note for Bluetooth under `/setup/bluetooth/status`*\n\n**For Part 2 only**\n\nThis initiates scan for other bluetooth speakers/devices. Scan results will be updated continuously for `timeout` seconds.  \nTo get the scan results, see /setup/bluetooth/scan_results.","x-testEnabled":true,"x-testName":"Scan for devices","x-testShouldPass":true}]}},"/bluetooth/scan_results":{"get":{"deprecated":false,"description":"*See note for Bluetooth under `/setup/bluetooth/status`*\n\n**For Part 2 only**\n\nThis returns a list of all nearby bluetooth devices. While the Home app only shows speakers, this list contains all devices including TVs, mobiles, etc.\n\n`rssi` is signal strength, `name` is name, `mac_address` is mac address.  \n`device_class` and `device_type` are bluetooth codes.  \n\nThe Home app only lists those devices with `expected_profiles` > 0. Basically, the device should function as a speaker.","operationId":"GetScanResults","parameters":[],"responses":{"200":{"content":{"application/json":{"example":[{"device_class":525372,"device_type":3,"expected_profiles":0,"mac_address":"xx:xx:xx:xx:xx:xx","name":"KD-49X8200E","rssi":-90},{"device_class":5898764,"device_type":1,"expected_profiles":0,"mac_address":"xx:xx:xx:xx:xx:xx","name":"vivo 1714","rssi":-96},{"device_class":2491396,"device_type":1,"expected_profiles":1,"mac_address":"xx:xx:xx:xx:xx:xx","name":"Bluetooth Speaker","rssi":-93}],"schema":{"items":{"$ref":"#/components/schemas/Example112"},"type":"array"}}},"description":"","headers":{}}},"summary":"Get Scan Results","tags":["Bluetooth"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"[\r\n  {\r\n    \"device_class\": 525372,\r\n    \"device_type\": 3,\r\n    \"expected_profiles\": 0,\r\n    \"mac_address\": \"xx:xx:xx:xx:xx:xx\",\r\n    \"name\": \"KD-49X8200E\",\r\n    \"rssi\": -90\r\n  },\r\n  {\r\n    \"device_class\": 5898764,\r\n    \"device_type\": 1,\r\n    \"expected_profiles\": 0,\r\n    \"mac_address\": \"xx:xx:xx:xx:xx:xx\",\r\n    \"name\": \"vivo 1714\",\r\n    \"rssi\": -96\r\n  },\r\n  {\r\n    \"device_class\": 2491396,\r\n    \"device_type\": 1,\r\n    \"expected_profiles\": 1,\r\n    \"mac_address\": \"xx:xx:xx:xx:xx:xx\",\r\n    \"name\": \"Bluetooth Speaker\",\r\n    \"rssi\": -93\r\n  }\r\n]","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"256","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"method":"GET","uri":"/bluetooth/scan_results"},"x-testDescription":"*See note for Bluetooth under `/setup/bluetooth/status`*\n\n**For Part 2 only**\n\nThis returns a list of all nearby bluetooth devices. While the Home app only shows speakers, this list contains all devices including TVs, mobiles, etc.\n\n`rssi` is signal strength, `name` is name, `mac_address` is mac address.  \n`device_class` and `device_type` are bluetooth codes.  \n\nThe Home app only lists those devices with `expected_profiles` > 0. Basically, the device should function as a speaker.","x-testEnabled":true,"x-testName":"Get Scan Results","x-testShouldPass":true}]}},"/bluetooth/status":{"get":{"deprecated":false,"description":"> **There are 2 parts of Bluetooth.**\n>\n> *Part 1*: Devices like phones connect to Home and play audio through Home.  \n> For this, /setup/bluetooth/discovery is used to make Home discoverable. Then devices can connect to it as if Home is just another bluetooth speaker.\n>\n> *Part 2*: Bluetooth speakers connect to Home and Home plays audio through the speakers.\n> For this, /setup/bluetooth/scan and /setup/bluetooth/scan_results are used to connect to other speakers.\n>\n> The other endpoints are common for both parts.\n\n\n**For both parts**\n\nThis gives the status of all bluetooth things.\n- Not sure what `audio_mode` is.\n- `discovery_enabled` states whether Home is discoverable. (**Part 1**)\n- `connecting_devices` is a list of all media sources (like phones) connected to Home. (**Part 1**)\n- `scanning_enabled` states whether Home scanning for other bluetooth speakers/devices. (**Part 2**)\n- `connected_devices` is a list of all speakers connected to Home. (**Part 2**)","operationId":"Status","parameters":[],"responses":{"200":{"content":{"application/json":{"example":{"audio_mode":0,"connected_devices":[{"device":{"bond_date":1529248165656.613,"device_class":2491396,"device_type":1,"last_connect_date":0,"mac_address":"xx:xx:xx:xx:xx:xx","name":"PHILIPS BT64","rssi":-255,"service_uuids":["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]},"enabled_profiles":2}],"connecting_devices":[],"discovery_enabled":false,"remote_sink":{"bond_date":1529248165656.613,"device_class":2491396,"device_type":1,"last_connect_date":0,"mac_address":"xx:xx:xx:xx:xx:xx","name":"PHILIPS BT64","rssi":-255,"service_uuids":["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]},"scanning_enabled":false},"schema":{"$ref":"#/components/schemas/Example110"}}},"description":"","headers":{}}},"summary":"Status","tags":["Bluetooth"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"{\r\n  \"audio_mode\": 0,\r\n  \"connecting_devices\": [],\r\n  \"connected_devices\": [\r\n    {\r\n      \"device\": {\r\n        \"bond_date\": 1529248165656.613,\r\n        \"device_class\": 2491396,\r\n        \"device_type\": 1,\r\n        \"last_connect_date\": 0,\r\n        \"mac_address\": \"xx:xx:xx:xx:xx:xx\",\r\n        \"name\": \"PHILIPS BT64\",\r\n        \"rssi\": -255,\r\n        \"service_uuids\": [\r\n          \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n          \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n          \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n          \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n          \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n          \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\r\n        ]\r\n      },\r\n      \"enabled_profiles\": 2\r\n    }\r\n  ],\r\n  \"remote_sink\": {\r\n    \"bond_date\": 1529248165656.613,\r\n    \"device_class\": 2491396,\r\n    \"device_type\": 1,\r\n    \"last_connect_date\": 0,\r\n    \"mac_address\": \"xx:xx:xx:xx:xx:xx\",\r\n    \"name\": \"PHILIPS BT64\",\r\n    \"rssi\": -255,\r\n    \"service_uuids\": [\r\n      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n      \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\r\n    ]\r\n  },\r\n  \"discovery_enabled\": false,\r\n  \"scanning_enabled\": false\r\n}","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"114","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"method":"GET","uri":"/bluetooth/status"},"x-testDescription":"> **There are 2 parts of Bluetooth.**\n>\n> *Part 1*: Devices like phones connect to Home and play audio through Home.  \n> For this, /setup/bluetooth/discovery is used to make Home discoverable. Then devices can connect to it as if Home is just another bluetooth speaker.\n>\n> *Part 2*: Bluetooth speakers connect to Home and Home plays audio through the speakers.\n> For this, /setup/bluetooth/scan and /setup/bluetooth/scan_results are used to connect to other speakers.\n>\n> The other endpoints are common for both parts.\n\n\n**For both parts**\n\nThis gives the status of all bluetooth things.\n- Not sure what `audio_mode` is.\n- `discovery_enabled` states whether Home is discoverable. (**Part 1**)\n- `connecting_devices` is a list of all media sources (like phones) connected to Home. (**Part 1**)\n- `scanning_enabled` states whether Home scanning for other bluetooth speakers/devices. (**Part 2**)\n- `connected_devices` is a list of all speakers connected to Home. (**Part 2**)","x-testEnabled":true,"x-testName":"Status","x-testShouldPass":true}]}},"/configured_networks":{"get":{"deprecated":false,"description":"This gets a list of all saved Wi-Fi networks.\n\nEach network has `ssid`, `wpa_auth`, `wpa_cipher` and `wpa_id`.  \n`wpa_id` is an incrementing number used to identify a saved network.  \n#TODO: Add values for `wpa_auth` and `wpa_cipher`.","operationId":"GetSavedNetworks","parameters":[],"responses":{"200":{"content":{"application/json":{"example":[{"ssid":"Wifi name","wpa_auth":7,"wpa_cipher":4,"wpa_id":0}],"schema":{"items":{"$ref":"#/components/schemas/Example113"},"type":"array"}}},"description":"","headers":{}}},"summary":"Get Saved Networks","tags":["Wifi"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"[\r\n  {\r\n    \"ssid\": \"Wifi name\",\r\n    \"wpa_auth\": 7,\r\n    \"wpa_cipher\": 4,\r\n    \"wpa_id\": 0\r\n  }\r\n]","headers":{},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"method":"GET","uri":"/configured_networks"},"x-testDescription":"This gets a list of all saved Wi-Fi networks.\n\nEach network has `ssid`, `wpa_auth`, `wpa_cipher` and `wpa_id`.  \n`wpa_id` is an incrementing number used to identify a saved network.  \n#TODO: Add values for `wpa_auth` and `wpa_cipher`.","x-testEnabled":true,"x-testName":"Get Saved Networks","x-testShouldPass":true}]}},"/connect_wifi":{"post":{"deprecated":false,"description":"**Note:** Not sure how the password is encrypted. Might be using the public certificate from /setup/eureka_info. So this cannot be used as of now. If someone figures it out, please [create a new issue here](https://github.com/rithvikvibhu/GHLocalApi/issues/new).","operationId":"ConnecttoWi-FiNetwork","parameters":[],"requestBody":{"content":{"application/json":{"example":{"bssid":"5c:0a:xx:xx:xx:xx","enc_passwd":"xxxxxfPY=","signal_level":-42,"ssid":"myotherssid","wpa_auth":7,"wpa_cipher":4},"schema":{"$ref":"#/components/schemas/ConnecttoWi-FiNetworkRequest"}}},"required":true},"responses":{"200":{"description":"","headers":{}}},"summary":"Connect to Wi-Fi Network","tags":["Wifi"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"headers":{},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"NONE","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"bssid\": \"5c:0a:xx:xx:xx:xx\",\r\n  \"signal_level\": -42,\r\n  \"ssid\": \"myotherssid\",\r\n  \"wpa_auth\": 7,\r\n  \"wpa_cipher\": 4,\r\n  \"enc_passwd\": \"xxxxxfPY=\"\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/connect_wifi"},"x-testDescription":"**Note:** Not sure how the password is encrypted. Might be using the public certificate from /setup/eureka_info. So this cannot be used as of now. If someone figures it out, please [create a new issue here](https://github.com/rithvikvibhu/GHLocalApi/issues/new).","x-testEnabled":true,"x-testName":"Connect to Wi-Fi Network","x-testShouldPass":true}]}},"/eureka_info":{"get":{"deprecated":false,"description":"This gives most of the device info. The GET parameter `param` is a comma separated list of json keys to fetch. Currently, these params are known: `version,audio,name,build_info,detail,device_info,net,wifi,setup,settings,opt_in,opencast,multizone,proxy,night_mode_params,user_eq,room_equalizer,sign,aogh,ultrasound,mesh`\n\nNested items can also be filtered using the dot notation. Example: `audio.digital`\n\nThe `options` GET parameter is always set to `detail` or `detail,sign`. `sign` signs the `nonce` and returns some value.\n\nThe `nonce` GET parameter is an integer value signed with needed (see `option` parameter above).","operationId":"EurekaInfo","parameters":[{"explode":true,"in":"query","name":"params","required":true,"schema":{"example":"version,audio,name,build_info,detail,device_info,net,wifi,setup,settings,opt_in,opencast,multizone,proxy,night_mode_params,user_eq,room_equalizer,sign,aogh,ultrasound,mesh","type":"string"},"style":"form"},{"explode":true,"in":"query","name":"options","required":true,"schema":{"example":"detail,sign","type":"string"},"style":"form"},{"explode":true,"in":"query","name":"nonce","required":true,"schema":{"example":1234512345,"format":"int32","type":"integer"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"example":{"aogh":{"aogh_api_version":"2"},"audio":{"digital":false},"build_info":{"build_type":2,"cast_build_revision":"1.46.195690","cast_control_version":1,"preview_channel_state":4,"release_track":"preview-joining-stable-channel","system_build_number":"195690"},"detail":{"icon_list":[{"depth":32,"height":55,"mimetype":"image/png","url":"/setup/icon.png","width":98}],"locale":{"display_string":"English (United States)"},"timezone":{"display_string":"India Standard Time (Kolkata)","offset":330}},"device_info":{"4k_blocked":0,"capabilities":{"aogh_supported":true,"assistant_supported":true,"audio_hdr_supported":false,"audio_surround_mode_supported":false,"ble_supported":true,"bluetooth_audio_sink_supported":true,"bluetooth_audio_source_supported":true,"bluetooth_supported":true,"cloudcast_supported":true,"content_filters_supported":true,"display_supported":false,"fdr_supported":false,"hdmi_prefer_50hz_supported":false,"hdmi_prefer_high_fps_supported":false,"hotspot_supported":true,"https_setup_supported":true,"input_management_supported":true,"keep_hotspot_until_connected_supported":true,"multi_user_supported":true,"multichannel_group_supported":true,"multizone_supported":true,"night_mode_supported":true,"night_mode_supported_v2":true,"opencast_supported":false,"preview_channel_supported":true,"reboot_supported":true,"remote_ducking_supported":true,"separate_tts_volume_supported":true,"setup_supported":true,"sleep_mode_supported":true,"stats_supported":true,"system_sound_effects_supported":false,"user_eq_supported":true,"wifi_auto_save_supported":true,"wifi_regulatory_domain_locked":true,"wifi_supported":true},"cloud_device_id":"003D...","factory_country_code":"US","hotspot_bssid":"FA:8F:CA:30:41:71","local_authorization_token_hash":"hBt2...","mac_address":"F4:F5:...","manufacturer":"Google Inc.","model_name":"Google Home","product_name":"pineapple","public_key":"MIIB...","ssdp_udn":"baab...","uma_client_id":"8ce0...","uptime":48509.169282,"weave_device_id":""},"multizone":{"audio_output_delay":0,"audio_output_delay_hdmi":0,"audio_output_delay_oem":0,"aux_in_group":"","dynamic_groups":[],"groups":[],"multichannel_status":0},"name":"Bedroom Speaker","net":{"ethernet_connected":false,"ip_address":"192.168.0.18","online":true},"night_mode_params":{"device_override_do_not_disturb":0,"do_not_disturb":true,"enabled":true,"led_brightness":0.5799999833106995,"volume":0.5899999737739563,"windows":[{"days":[0,1,2,3,4,5,6],"length_hours":6,"start_hour":23}]},"opencast":{"pin_code":""},"opt_in":{"audio_hdr":false,"audio_surround_mode":0,"autoplay_on_signal":true,"cloud_ipc":true,"hdmi_prefer_50hz":false,"hdmi_prefer_high_fps":true,"managed_mode":false,"opencast":true,"preview_channel":true,"remote_ducking":true,"stats":true,"ui_flipped":false,"wpa3_support_enabled":false},"proxy":{"mode":"system"},"settings":{"closed_caption":{},"control_notifications":1,"country_code":"IN","locale":"en-US","network_standby":0,"system_sound_effects":true,"time_format":1,"timezone":"Asia/Kolkata","wake_on_cast":1},"setup":{"qr_ssid_suffix":"","setup_state":60,"ssid_suffix":"k","stats":{"num_check_connectivity":0,"num_connect_wifi":0,"num_connected_wifi_not_saved":0,"num_initial_eureka_info":0,"num_obtain_ip":0},"tos_accepted":true},"sign":{"certificate":"-----BEGIN CERTIFICATE-----\nMIID...Oeb0\n-----END CERTIFICATE-----\n","intermediate_certs":["-----BEGIN CERTIFICATE-----\nMIID...O/bYS\n-----END CERTIFICATE-----\n"],"nonce":"1234512345","signed_data":"Rr5Q..."},"user_eq":{"high_shelf":{"frequency":4500,"gain_db":0,"quality":0.707},"low_shelf":{"frequency":150,"gain_db":0,"quality":0.707},"max_peaking_eqs":0,"peaking_eqs":[]},"version":10,"wifi":{"bssid":"a0:ab:...","has_changes":false,"noise_level":-90,"signal_level":-50,"ssid":"Nucl...","wpa_configured":true,"wpa_id":1,"wpa_state":10}},"schema":{"$ref":"#/components/schemas/Example1"}}},"description":"","headers":{}}},"summary":"Eureka Info","tags":["Device Info"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"{\r\n  \"aogh\": {\r\n    \"aogh_api_version\": \"2\"\r\n  },\r\n  \"audio\": {\r\n    \"digital\": false\r\n  },\r\n  \"build_info\": {\r\n    \"build_type\": 2,\r\n    \"cast_build_revision\": \"1.46.195690\",\r\n    \"cast_control_version\": 1,\r\n    \"preview_channel_state\": 4,\r\n    \"release_track\": \"preview-joining-stable-channel\",\r\n    \"system_build_number\": \"195690\"\r\n  },\r\n  \"detail\": {\r\n    \"icon_list\": [\r\n      {\r\n        \"depth\": 32,\r\n        \"height\": 55,\r\n        \"mimetype\": \"image/png\",\r\n        \"url\": \"/setup/icon.png\",\r\n        \"width\": 98\r\n      }\r\n    ],\r\n    \"locale\": {\r\n      \"display_string\": \"English (United States)\"\r\n    },\r\n    \"timezone\": {\r\n      \"display_string\": \"India Standard Time (Kolkata)\",\r\n      \"offset\": 330\r\n    }\r\n  },\r\n  \"device_info\": {\r\n    \"4k_blocked\": 0,\r\n    \"capabilities\": {\r\n      \"aogh_supported\": true,\r\n      \"assistant_supported\": true,\r\n      \"audio_hdr_supported\": false,\r\n      \"audio_surround_mode_supported\": false,\r\n      \"ble_supported\": true,\r\n      \"bluetooth_audio_sink_supported\": true,\r\n      \"bluetooth_audio_source_supported\": true,\r\n      \"bluetooth_supported\": true,\r\n      \"cloudcast_supported\": true,\r\n      \"content_filters_supported\": true,\r\n      \"display_supported\": false,\r\n      \"fdr_supported\": false,\r\n      \"hdmi_prefer_50hz_supported\": false,\r\n      \"hdmi_prefer_high_fps_supported\": false,\r\n      \"hotspot_supported\": true,\r\n      \"https_setup_supported\": true,\r\n      \"input_management_supported\": true,\r\n      \"keep_hotspot_until_connected_supported\": true,\r\n      \"multi_user_supported\": true,\r\n      \"multichannel_group_supported\": true,\r\n      \"multizone_supported\": true,\r\n      \"night_mode_supported\": true,\r\n      \"night_mode_supported_v2\": true,\r\n      \"opencast_supported\": false,\r\n      \"preview_channel_supported\": true,\r\n      \"reboot_supported\": true,\r\n      \"remote_ducking_supported\": true,\r\n      \"separate_tts_volume_supported\": true,\r\n      \"setup_supported\": true,\r\n      \"sleep_mode_supported\": true,\r\n      \"stats_supported\": true,\r\n      \"system_sound_effects_supported\": false,\r\n      \"user_eq_supported\": true,\r\n      \"wifi_auto_save_supported\": true,\r\n      \"wifi_regulatory_domain_locked\": true,\r\n      \"wifi_supported\": true\r\n    },\r\n    \"cloud_device_id\": \"003D...\",\r\n    \"factory_country_code\": \"US\",\r\n    \"hotspot_bssid\": \"FA:8F:CA:30:41:71\",\r\n    \"local_authorization_token_hash\": \"hBt2...\",\r\n    \"mac_address\": \"F4:F5:...\",\r\n    \"manufacturer\": \"Google Inc.\",\r\n    \"model_name\": \"Google Home\",\r\n    \"product_name\": \"pineapple\",\r\n    \"public_key\": \"MIIB...\",\r\n    \"ssdp_udn\": \"baab...\",\r\n    \"uma_client_id\": \"8ce0...\",\r\n    \"uptime\": 48509.169282,\r\n    \"weave_device_id\": \"\"\r\n  },\r\n  \"multizone\": {\r\n    \"audio_output_delay\": 0,\r\n    \"audio_output_delay_hdmi\": 0,\r\n    \"audio_output_delay_oem\": 0,\r\n    \"aux_in_group\": \"\",\r\n    \"dynamic_groups\": [],\r\n    \"groups\": [],\r\n    \"multichannel_status\": 0\r\n  },\r\n  \"name\": \"Bedroom Speaker\",\r\n  \"net\": {\r\n    \"ethernet_connected\": false,\r\n    \"ip_address\": \"192.168.0.18\",\r\n    \"online\": true\r\n  },\r\n  \"night_mode_params\": {\r\n    \"device_override_do_not_disturb\": 0,\r\n    \"do_not_disturb\": true,\r\n    \"enabled\": true,\r\n    \"led_brightness\": 0.57999998331069946,\r\n    \"volume\": 0.5899999737739563,\r\n    \"windows\": [\r\n      {\r\n        \"days\": [\r\n          0,\r\n          1,\r\n          2,\r\n          3,\r\n          4,\r\n          5,\r\n          6\r\n        ],\r\n        \"length_hours\": 6,\r\n        \"start_hour\": 23\r\n      }\r\n    ]\r\n  },\r\n  \"opencast\": {\r\n    \"pin_code\": \"\"\r\n  },\r\n  \"opt_in\": {\r\n    \"audio_hdr\": false,\r\n    \"audio_surround_mode\": 0,\r\n    \"autoplay_on_signal\": true,\r\n    \"cloud_ipc\": true,\r\n    \"hdmi_prefer_50hz\": false,\r\n    \"hdmi_prefer_high_fps\": true,\r\n    \"managed_mode\": false,\r\n    \"opencast\": true,\r\n    \"preview_channel\": true,\r\n    \"remote_ducking\": true,\r\n    \"stats\": true,\r\n    \"ui_flipped\": false,\r\n    \"wpa3_support_enabled\": false\r\n  },\r\n  \"proxy\": {\r\n    \"mode\": \"system\"\r\n  },\r\n  \"settings\": {\r\n    \"closed_caption\": {},\r\n    \"control_notifications\": 1,\r\n    \"country_code\": \"IN\",\r\n    \"locale\": \"en-US\",\r\n    \"network_standby\": 0,\r\n    \"system_sound_effects\": true,\r\n    \"time_format\": 1,\r\n    \"timezone\": \"Asia/Kolkata\",\r\n    \"wake_on_cast\": 1\r\n  },\r\n  \"setup\": {\r\n    \"qr_ssid_suffix\": \"\",\r\n    \"setup_state\": 60,\r\n    \"ssid_suffix\": \"k\",\r\n    \"stats\": {\r\n      \"num_check_connectivity\": 0,\r\n      \"num_connect_wifi\": 0,\r\n      \"num_connected_wifi_not_saved\": 0,\r\n      \"num_initial_eureka_info\": 0,\r\n      \"num_obtain_ip\": 0\r\n    },\r\n    \"tos_accepted\": true\r\n  },\r\n  \"sign\": {\r\n    \"certificate\": \"-----BEGIN CERTIFICATE-----\\nMIID...Oeb0\\n-----END CERTIFICATE-----\\n\",\r\n    \"intermediate_certs\": [\r\n      \"-----BEGIN CERTIFICATE-----\\nMIID...O/bYS\\n-----END CERTIFICATE-----\\n\"\r\n    ],\r\n    \"nonce\": \"1234512345\",\r\n    \"signed_data\": \"Rr5Q...\"\r\n  },\r\n  \"user_eq\": {\r\n    \"high_shelf\": {\r\n      \"frequency\": 4500,\r\n      \"gain_db\": 0,\r\n      \"quality\": 0.707\r\n    },\r\n    \"low_shelf\": {\r\n      \"frequency\": 150,\r\n      \"gain_db\": 0,\r\n      \"quality\": 0.707\r\n    },\r\n    \"max_peaking_eqs\": 0,\r\n    \"peaking_eqs\": []\r\n  },\r\n  \"version\": 10,\r\n  \"wifi\": {\r\n    \"bssid\": \"a0:ab:...\",\r\n    \"has_changes\": false,\r\n    \"noise_level\": -90,\r\n    \"signal_level\": -50,\r\n    \"ssid\": \"Nucl...\",\r\n    \"wpa_configured\": true,\r\n    \"wpa_id\": 1,\r\n    \"wpa_state\": 10\r\n  }\r\n}","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"7380","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"method":"GET","uri":"/eureka_info?params=version%2Caudio%2Cname%2Cbuild_info%2Cdetail%2Cdevice_info%2Cnet%2Cwifi%2Csetup%2Csettings%2Copt_in%2Copencast%2Cmultizone%2Cproxy%2Cnight_mode_params%2Cuser_eq%2Croom_equalizer%2Csign%2Caogh%2Cultrasound%2Cmesh&options=detail%2Csign&nonce=1234512345"},"x-testDescription":"This gives most of the device info. The GET parameter `param` is a comma separated list of json keys to fetch. Currently, these params are known: `version,audio,name,build_info,detail,device_info,net,wifi,setup,settings,opt_in,opencast,multizone,proxy,night_mode_params,user_eq,room_equalizer,sign,aogh,ultrasound,mesh`\n\nNested items can also be filtered using the dot notation. Example: `audio.digital`\n\nThe `options` GET parameter is always set to `detail` or `detail,sign`. `sign` signs the `nonce` and returns some value.\n\nThe `nonce` GET parameter is an integer value signed with needed (see `option` parameter above).","x-testEnabled":true,"x-testName":"Eureka Info","x-testShouldPass":true}]}},"/forget_wifi":{"post":{"deprecated":false,"description":"This is to forget a saved network by `wpa_id`. Get the `wpa_id` from /setup/configured_networks","operationId":"ForgetWi-FiNetwork","parameters":[],"requestBody":{"content":{"application/json":{"example":{"wpa_id":0},"schema":{"$ref":"#/components/schemas/ForgetWi-FiNetworkRequest"}}},"required":true},"responses":{"200":{"content":{"text/plain":{"schema":{"type":"object","x-is-dynamic":true}}},"description":"","headers":{}}},"summary":"Forget Wi-Fi Network","tags":["Wifi"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"headers":{},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"NONE","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"wpa_id\": 0\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/forget_wifi"},"x-testDescription":"This is to forget a saved network by `wpa_id`. Get the `wpa_id` from /setup/configured_networks","x-testEnabled":true,"x-testName":"Forget Wi-Fi Network","x-testShouldPass":true}]}},"/get_app_device_id":{"post":{"deprecated":false,"description":"This gives \"app device id\", \"certificate\" and \"signed data\".  \nThe `app_id` in the request is mandatory and refers to Chromecast backdrop/screensaver app. It has to be set to `E8C28D3C`.  \n\nThe certificate is valid and issued by `Chromecast ICA 6 (Audio Assist), Google Inc`.\n\nNot sure what the other two are.","operationId":"AppDeviceID","parameters":[],"requestBody":{"content":{"application/json":{"example":{"app_id":"E8C28D3C"},"schema":{"$ref":"#/components/schemas/AppDeviceIDRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"app_device_id":"...","certificate":"-----BEGIN CERTIFICATE-----\nMIID...Oeb0\n-----END CERTIFICATE-----\n","signed_data":"HAjp..."},"schema":{"$ref":"#/components/schemas/Example11"}}},"description":"","headers":{}},"404":{"description":"Not Found"}},"summary":"App Device ID","tags":["Device Info"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"{\r\n  \"app_device_id\": \"...\",\r\n  \"certificate\": \"-----BEGIN CERTIFICATE-----\\nMIID...Oeb0\\n-----END CERTIFICATE-----\\n\",\r\n  \"signed_data\": \"HAjp...\"\r\n}","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"1828","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"app_id\": \"E8C28D3C\"\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/get_app_device_id"},"x-testDescription":"This gives \"app device id\", \"certificate\" and \"signed data\".  \nThe `app_id` in the request is mandatory and refers to Chromecast backdrop/screensaver app. It has to be set to `E8C28D3C`.  \n\nThe certificate is valid and issued by `Chromecast ICA 6 (Audio Assist), Google Inc`.\n\nNot sure what the other two are.","x-testEnabled":true,"x-testName":"App Device ID","x-testShouldPass":true}]}},"/icon.png":{"get":{"deprecated":false,"description":"**Update:** This no longer exists. It's not useful, anyway.\n\nA redirect to `http://www.gstatic.com/eureka/images/eureka_device.png`","operationId":"ChromecastIcon","parameters":[],"responses":{"200":{"description":"","headers":{}}},"summary":"Chromecast Icon","tags":["Static Files"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"headers":{},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"NONE","x-matchResponseSchema":true},"request":{"method":"GET","uri":"/icon.png"},"x-testDescription":"**Update:** This no longer exists. It's not useful, anyway.\n\nA redirect to `http://www.gstatic.com/eureka/images/eureka_device.png`","x-testEnabled":true,"x-testName":"Chromecast Icon","x-testShouldPass":true}]}},"/offer":{"get":{"deprecated":false,"description":"This gives a token which is used by the Home app to get offers. The offers themselves are not stored on the device.  \nA new token is generated for every request.","operationId":"Offer","parameters":[],"responses":{"200":{"content":{"application/json":{"example":{"token":"ADtq..."},"schema":{"$ref":"#/components/schemas/Example12"}}},"description":"","headers":{}}},"summary":"Offer","tags":["Device Info"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"{\"token\":\"ADtq...\"}","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"240","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"method":"GET","uri":"/offer"},"x-testDescription":"This gives a token which is used by the Home app to get offers. The offers themselves are not stored on the device.  \nA new token is generated for every request.","x-testEnabled":true,"x-testName":"Offer","x-testShouldPass":true}]}},"/reboot":{"post":{"deprecated":false,"description":"This can simply reboot the device (`params: \"now\"`) or factory reset the device (`params: \"fdr\"`).","operationId":"RebootandFactoryReset","parameters":[],"requestBody":{"content":{"application/json":{"example":{"params":"now"},"schema":{"$ref":"#/components/schemas/RebootandFactoryResetRequest"}}},"required":true},"responses":{"200":{"content":{"text/plain":{"schema":{"type":"object","x-is-dynamic":true}}},"description":"","headers":{}}},"summary":"Reboot and Factory Reset","tags":["Device Settings"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"0"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"NONE","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"params\": \"now\"\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/reboot"},"x-testDescription":"This can simply reboot the device (`params: \"now\"`) or factory reset the device (`params: \"fdr\"`).","x-testEnabled":true,"x-testName":"Reboot and Factory Reset","x-testShouldPass":true}]}},"/scan_results":{"get":{"deprecated":false,"description":"This gets a list of all nearby Wi-Fi access points.\n\nThe list only has the connected AP by default. Once a scan is triggered by `/setup/scan_wifi`, the whole list is cached for ~3 minutes. Then it will revert to returning only the connected AP again.","operationId":"GetWi-FiScanResults","parameters":[],"responses":{"200":{"content":{"application/json":{"example":[{"bssid":"APBSSID1","signal_level":-20,"ssid":"APSSID1","wpa_auth":7,"wpa_cipher":4,"wpa_id":0}],"schema":{"items":{"$ref":"#/components/schemas/Example114"},"type":"array"}}},"description":"","headers":{}}},"summary":"Get Wi-Fi Scan Results","tags":["Wifi"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"[\r\n  {\r\n    \"bssid\": \"APBSSID1\",\r\n    \"signal_level\": -20,\r\n    \"ssid\": \"APSSID1\",\r\n    \"wpa_auth\": 7,\r\n    \"wpa_cipher\": 4,\r\n    \"wpa_id\": 0\r\n  }\r\n]","headers":{},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"method":"GET","uri":"/scan_results"},"x-testDescription":"This gets a list of all nearby Wi-Fi access points.\n\nThe list only has the connected AP by default. Once a scan is triggered by `/setup/scan_wifi`, the whole list is cached for ~3 minutes. Then it will revert to returning only the connected AP again.","x-testEnabled":true,"x-testName":"Get Wi-Fi Scan Results","x-testShouldPass":true}]}},"/scan_wifi":{"post":{"deprecated":false,"description":"This initiates scanning for Wi-Fi networks.\n\nThe results can be obtained with `/setup/scan_results` after triggering the scan with this request.","operationId":"ScanforNetworks","parameters":[],"responses":{"200":{"content":{"text/plain":{"schema":{"type":"object","x-is-dynamic":true}}},"description":"","headers":{}}},"summary":"Scan for Networks","tags":["Wifi"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"headers":{},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"NONE","x-matchResponseSchema":true},"request":{"method":"POST","uri":"/scan_wifi"},"x-testDescription":"This initiates scanning for Wi-Fi networks.\n\nThe results can be obtained with `/setup/scan_results` after triggering the scan with this request.","x-testEnabled":true,"x-testName":"Scan for Networks","x-testShouldPass":true}]}},"/set_eureka_info":{"post":{"deprecated":false,"description":"This can set custom values to some options.\n\nOnly fields to be modified need to be sent, not all. The example has some modifiable fields.\n\nTODO: List all modifiable fields.\n\nSending non-existant fields will still return a 200 OK, but they are not saved.","operationId":"SetEurekaInfo","parameters":[],"requestBody":{"content":{"application/json":{"example":{"name":"Living Room","opt_in":{"opencast":true,"preview_channel":true,"remote_ducking":true,"stats":true},"settings":{"control_notifications":2}},"schema":{"$ref":"#/components/schemas/SetEurekaInfoRequest"}}},"required":true},"responses":{"200":{"content":{"text/plain":{"schema":{"type":"object","x-is-dynamic":true}}},"description":"","headers":{}}},"summary":"Set Eureka Info","tags":["Device Settings"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"0"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"NONE","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"name\": \"Living Room\",\r\n  \"settings\": {\r\n    \"control_notifications\": 2\r\n  },\r\n  \"opt_in\": {\r\n    \"opencast\": true,\r\n    \"preview_channel\": true,\r\n    \"remote_ducking\": true,\r\n    \"stats\": true\r\n  }\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/set_eureka_info"},"x-testDescription":"This can set custom values to some options.\n\nOnly fields to be modified need to be sent, not all. The example has some modifiable fields.\n\nTODO: List all modifiable fields.\n\nSending non-existant fields will still return a 200 OK, but they are not saved.","x-testEnabled":true,"x-testName":"Set Eureka Info","x-testShouldPass":true}]}},"/supported_locales":{"get":{"deprecated":false,"description":"Simply returns a list of all supported locales.","operationId":"Locales","parameters":[],"responses":{"200":{"content":{"application/json":{"example":[{"display_string":"Arabic - العربية","locale":"ar"},{"display_string":"German - Deutsch","locale":"de"},{"display_string":"English (United States)","locale":"en-US"}],"schema":{"items":{"$ref":"#/components/schemas/Example15"},"type":"array"}}},"description":"","headers":{}}},"summary":"Locales","tags":["Device Info"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"[\n  {\n    \"display_string\": \"Arabic - العربية\",\n    \"locale\": \"ar\"\n  },\n  {\n    \"display_string\": \"German - Deutsch\",\n    \"locale\": \"de\"\n  },\n  {\n    \"display_string\": \"English (United States)\",\n    \"locale\": \"en-US\"\n  }\n]","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"3553","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"method":"GET","uri":"/supported_locales"},"x-testDescription":"Simply returns a list of all supported locales.","x-testEnabled":false,"x-testName":"Locales","x-testShouldPass":true}]}},"/supported_timezones":{"get":{"deprecated":false,"description":"Simply returns a list of all supported timezones.","operationId":"Timezones","parameters":[],"responses":{"200":{"content":{"application/json":{"example":[{"display_string":"Samoa Standard Time (Midway)","offset":-660,"timezone":"Pacific/Midway"},{"display_string":"Hawaii-Aleutian Standard Time (Honolulu)","offset":-600,"timezone":"Pacific/Honolulu"}],"schema":{"items":{"$ref":"#/components/schemas/Example14"},"type":"array"}}},"description":"","headers":{}}},"summary":"Timezones","tags":["Device Info"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"[\n  {\n    \"display_string\": \"Samoa Standard Time (Midway)\",\n    \"offset\": -660,\n    \"timezone\": \"Pacific/Midway\"\n  },\n  {\n    \"display_string\": \"Hawaii-Aleutian Standard Time (Honolulu)\",\n    \"offset\": -600,\n    \"timezone\": \"Pacific/Honolulu\"\n  }\n]","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"11800","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"method":"GET","uri":"/supported_timezones"},"x-testDescription":"Simply returns a list of all supported timezones.","x-testEnabled":false,"x-testName":"Timezones","x-testShouldPass":true}]}},"/test_internet_download_speed":{"post":{"deprecated":false,"description":"**Update:** This seems to have been removed. Returns 404 Not Found.\n\nThis endpoint tests internet download speed. Any sample file URL can be provided.","operationId":"TestInternetDownloadSpeed","parameters":[],"requestBody":{"content":{"application/json":{"example":{"url":"https://storage.googleapis.com/reliability-speedtest/random.txt"},"schema":{"$ref":"#/components/schemas/TestInternetDownloadSpeedRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"bytes_received":31457280,"response_code":200,"time_for_data_fetch":4722,"time_for_http_response":316},"schema":{"$ref":"#/components/schemas/Example16"}}},"description":"","headers":{}}},"summary":"Test Internet Download Speed","tags":["Device Info"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"body":"{\"bytes_received\":31457280,\"response_code\":200,\"time_for_data_fetch\":4722,\"time_for_http_response\":316}","headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"103","Content-Type":"application/json"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"KEYS","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"url\": \"https://storage.googleapis.com/reliability-speedtest/random.txt\"\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/test_internet_download_speed"},"x-testDescription":"**Update:** This seems to have been removed. Returns 404 Not Found.\n\nThis endpoint tests internet download speed. Any sample file URL can be provided.","x-testEnabled":true,"x-testName":"Test Internet Download Speed","x-testShouldPass":true}]}},"/user_eq/set_equalizer":{"post":{"deprecated":false,"description":"This can only set new equalizer values. To get already set values, use /setup/eureka_info.\n\nThe body is mandatory. It can either contain `low_shelf` or `high_shelf` or both.\n\n`low_shelf.gain_db` and `high_shelf.gain_db` refer to **bass** and **treble** respectively.\n\nDefault values are 0 for both.  \nWhile the slider in the Home app only ranges from -6 to +6, they can be set to any integer like 50 or -100. These changes persist.","operationId":"SetEqualizerValues","parameters":[],"requestBody":{"content":{"application/json":{"example":{"high_shelf":{"gain_db":0},"low_shelf":{"gain_db":0}},"schema":{"$ref":"#/components/schemas/SetEqualizerValuesRequest"}}},"required":true},"responses":{"200":{"content":{"text/plain":{"schema":{"type":"object","x-is-dynamic":true}}},"description":"","headers":{}}},"summary":"Set Equalizer Values","tags":["Assistant"],"x-operation-settings":{"AllowDynamicFormParameters":false,"AllowDynamicQueryParameters":false,"CollectParameters":false,"IsMultiContentStreaming":false},"x-unitTests":[{"expectedResponse":{"headers":{"Access-Control-Allow-Headers":"Content-Type","Cache-Control":"no-cache","Content-Length":"0"},"statusCode":"200","x-allowExtraHeaders":true,"x-arrayCheckCount":false,"x-arrayOrderedMatching":false,"x-bodyMatchMode":"NONE","x-matchResponseSchema":true},"request":{"body":"{\r\n  \"low_shelf\": {\r\n    \"gain_db\": 0\r\n  },\r\n  \"high_shelf\": {\r\n    \"gain_db\": 0\r\n  }\r\n}","headers":{"Content-Type":"application/json"},"method":"POST","uri":"/user_eq/set_equalizer"},"x-testDescription":"This can only set new equalizer values. To get already set values, use /setup/eureka_info.\n\nThe body is mandatory. It can either contain `low_shelf` or `high_shelf` or both.\n\n`low_shelf.gain_db` and `high_shelf.gain_db` refer to **bass** and **treble** respectively.\n\nDefault values are 0 for both.  \nWhile the slider in the Home app only ranges from -6 to +6, they can be set to any integer like 50 or -100. These changes persist.","x-testEnabled":true,"x-testName":"Set Equalizer Values","x-testShouldPass":true}]}}},"components":{"schemas":{"AccessibilityRequest":{"example":{"endpoint_enabled":false,"hotword_enabled":false},"properties":{"endpoint_enabled":{"type":"boolean"},"hotword_enabled":{"type":"boolean"}},"required":["hotword_enabled","endpoint_enabled"],"title":"AccessibilityRequest","type":"object"},"Alarm":{"example":{"date_pattern":{"day":15,"month":1,"year":2018},"fire_time":1515995400000,"id":"alarm/xxx","status":1,"time_pattern":{"hour":6,"minute":50,"second":0}},"properties":{"date_pattern":{"$ref":"#/components/schemas/DatePattern"},"fire_time":{"type":"number"},"id":{"type":"string"},"status":{"format":"int32","type":"integer"},"time_pattern":{"$ref":"#/components/schemas/TimePattern"}},"required":["date_pattern","time_pattern","fire_time","id","status"],"title":"Alarm","type":"object"},"AlarmVolumeRequest":{"example":{"volume":1},"properties":{"volume":{"format":"int32","type":"integer"}},"required":["volume"],"title":"AlarmVolumeRequest","type":"object"},"Aogh":{"example":{"aogh_api_version":"2"},"properties":{"aogh_api_version":{"type":"string"}},"required":["aogh_api_version"],"title":"Aogh","type":"object"},"AppDeviceIDRequest":{"example":{"app_id":"E8C28D3C"},"properties":{"app_id":{"type":"string"}},"required":["app_id"],"title":"AppDeviceIDRequest","type":"object"},"Audio":{"example":{"digital":false},"properties":{"digital":{"type":"boolean"}},"required":["digital"],"title":"Audio","type":"object"},"BuildInfo":{"example":{"build_type":2,"cast_build_revision":"1.46.195690","cast_control_version":1,"preview_channel_state":4,"release_track":"preview-joining-stable-channel","system_build_number":"195690"},"properties":{"build_type":{"format":"int32","type":"integer"},"cast_build_revision":{"type":"string"},"cast_control_version":{"format":"int32","type":"integer"},"preview_channel_state":{"format":"int32","type":"integer"},"release_track":{"type":"string"},"system_build_number":{"type":"string"}},"required":["build_type","cast_build_revision","cast_control_version","preview_channel_state","release_track","system_build_number"],"title":"BuildInfo","type":"object"},"Capabilities":{"example":{"aogh_supported":true,"assistant_supported":true,"audio_hdr_supported":false,"audio_surround_mode_supported":false,"ble_supported":true,"bluetooth_audio_sink_supported":true,"bluetooth_audio_source_supported":true,"bluetooth_supported":true,"cloudcast_supported":true,"content_filters_supported":true,"display_supported":false,"fdr_supported":false,"hdmi_prefer_50hz_supported":false,"hdmi_prefer_high_fps_supported":false,"hotspot_supported":true,"https_setup_supported":true,"input_management_supported":true,"keep_hotspot_until_connected_supported":true,"multi_user_supported":true,"multichannel_group_supported":true,"multizone_supported":true,"night_mode_supported":true,"night_mode_supported_v2":true,"opencast_supported":false,"preview_channel_supported":true,"reboot_supported":true,"remote_ducking_supported":true,"separate_tts_volume_supported":true,"setup_supported":true,"sleep_mode_supported":true,"stats_supported":true,"system_sound_effects_supported":false,"user_eq_supported":true,"wifi_auto_save_supported":true,"wifi_regulatory_domain_locked":true,"wifi_supported":true},"properties":{"aogh_supported":{"type":"boolean"},"assistant_supported":{"type":"boolean"},"audio_hdr_supported":{"type":"boolean"},"audio_surround_mode_supported":{"type":"boolean"},"ble_supported":{"type":"boolean"},"bluetooth_audio_sink_supported":{"type":"boolean"},"bluetooth_audio_source_supported":{"type":"boolean"},"bluetooth_supported":{"type":"boolean"},"cloudcast_supported":{"type":"boolean"},"content_filters_supported":{"type":"boolean"},"display_supported":{"type":"boolean"},"fdr_supported":{"type":"boolean"},"hdmi_prefer_50hz_supported":{"type":"boolean"},"hdmi_prefer_high_fps_supported":{"type":"boolean"},"hotspot_supported":{"type":"boolean"},"https_setup_supported":{"type":"boolean"},"input_management_supported":{"type":"boolean"},"keep_hotspot_until_connected_supported":{"type":"boolean"},"multi_user_supported":{"type":"boolean"},"multichannel_group_supported":{"type":"boolean"},"multizone_supported":{"type":"boolean"},"night_mode_supported":{"type":"boolean"},"night_mode_supported_v2":{"type":"boolean"},"opencast_supported":{"type":"boolean"},"preview_channel_supported":{"type":"boolean"},"reboot_supported":{"type":"boolean"},"remote_ducking_supported":{"type":"boolean"},"separate_tts_volume_supported":{"type":"boolean"},"setup_supported":{"type":"boolean"},"sleep_mode_supported":{"type":"boolean"},"stats_supported":{"type":"boolean"},"system_sound_effects_supported":{"type":"boolean"},"user_eq_supported":{"type":"boolean"},"wifi_auto_save_supported":{"type":"boolean"},"wifi_regulatory_domain_locked":{"type":"boolean"},"wifi_supported":{"type":"boolean"}},"required":["aogh_supported","assistant_supported","audio_hdr_supported","audio_surround_mode_supported","ble_supported","bluetooth_audio_sink_supported","bluetooth_audio_source_supported","bluetooth_supported","cloudcast_supported","content_filters_supported","display_supported","fdr_supported","hdmi_prefer_50hz_supported","hdmi_prefer_high_fps_supported","hotspot_supported","https_setup_supported","input_management_supported","keep_hotspot_until_connected_supported","multi_user_supported","multichannel_group_supported","multizone_supported","night_mode_supported","night_mode_supported_v2","opencast_supported","preview_channel_supported","reboot_supported","remote_ducking_supported","separate_tts_volume_supported","setup_supported","sleep_mode_supported","stats_supported","system_sound_effects_supported","user_eq_supported","wifi_auto_save_supported","wifi_regulatory_domain_locked","wifi_supported"],"title":"Capabilities","type":"object"},"ChangeDiscoverabilityRequest":{"example":{"enable_discovery":true},"properties":{"enable_discovery":{"type":"boolean"}},"required":["enable_discovery"],"title":"ChangeDiscoverabilityRequest","type":"object"},"CheckReadyStatusRequest":{"example":{"play_ready_message":true,"user_id":"xxxxx"},"properties":{"play_ready_message":{"type":"boolean"},"user_id":{"type":"string"}},"required":["play_ready_message","user_id"],"title":"CheckReadyStatusRequest","type":"object"},"ConnectedDevice":{"example":{"device":{"bond_date":1529248165656.613,"device_class":2491396,"device_type":1,"last_connect_date":0,"mac_address":"xx:xx:xx:xx:xx:xx","name":"PHILIPS BT64","rssi":-255,"service_uuids":["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]},"enabled_profiles":2},"properties":{"device":{"$ref":"#/components/schemas/Device"},"enabled_profiles":{"format":"int32","type":"integer"}},"required":["device","enabled_profiles"],"title":"ConnectedDevice","type":"object"},"ConnecttoWi-FiNetworkRequest":{"example":{"bssid":"5c:0a:xx:xx:xx:xx","enc_passwd":"xxxxxfPY=","signal_level":-42,"ssid":"myotherssid","wpa_auth":7,"wpa_cipher":4},"properties":{"bssid":{"type":"string"},"enc_passwd":{"type":"string"},"signal_level":{"format":"int32","type":"integer"},"ssid":{"type":"string"},"wpa_auth":{"format":"int32","type":"integer"},"wpa_cipher":{"format":"int32","type":"integer"}},"required":["bssid","signal_level","ssid","wpa_auth","wpa_cipher","enc_passwd"],"title":"ConnecttoWi-FiNetworkRequest","type":"object"},"DatePattern":{"example":{"day":15,"month":1,"year":2018},"properties":{"day":{"format":"int32","type":"integer"},"month":{"format":"int32","type":"integer"},"year":{"format":"int32","type":"integer"}},"required":["day","month","year"],"title":"DatePattern","type":"object"},"DeleteAlarmsandTimersRequest":{"example":{"ids":["timer/xxx","alarm/xxx"]},"properties":{"ids":{"items":{"type":"string"},"type":"array"}},"required":["ids"],"title":"DeleteAlarmsandTimersRequest","type":"object"},"Detail":{"example":{"icon_list":[{"depth":32,"height":55,"mimetype":"image/png","url":"/setup/icon.png","width":98}],"locale":{"display_string":"English (United States)"},"timezone":{"display_string":"India Standard Time (Kolkata)","offset":330}},"properties":{"icon_list":{"items":{"$ref":"#/components/schemas/IconList"},"type":"array"},"locale":{"$ref":"#/components/schemas/Locale"},"timezone":{"$ref":"#/components/schemas/Timezone"}},"required":["icon_list","locale","timezone"],"title":"Detail","type":"object"},"Device":{"example":{"bond_date":1529248165656.613,"device_class":2491396,"device_type":1,"last_connect_date":0,"mac_address":"xx:xx:xx:xx:xx:xx","name":"PHILIPS BT64","rssi":-255,"service_uuids":["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]},"properties":{"bond_date":{"type":"number"},"device_class":{"format":"int32","type":"integer"},"device_type":{"format":"int32","type":"integer"},"last_connect_date":{"format":"int32","type":"integer"},"mac_address":{"type":"string"},"name":{"type":"string"},"rssi":{"format":"int32","type":"integer"},"service_uuids":{"items":{"type":"string"},"type":"array"}},"required":["bond_date","device_class","device_type","last_connect_date","mac_address","name","rssi","service_uuids"],"title":"Device","type":"object"},"DeviceInfo":{"example":{"4k_blocked":0,"capabilities":{"aogh_supported":true,"assistant_supported":true,"audio_hdr_supported":false,"audio_surround_mode_supported":false,"ble_supported":true,"bluetooth_audio_sink_supported":true,"bluetooth_audio_source_supported":true,"bluetooth_supported":true,"cloudcast_supported":true,"content_filters_supported":true,"display_supported":false,"fdr_supported":false,"hdmi_prefer_50hz_supported":false,"hdmi_prefer_high_fps_supported":false,"hotspot_supported":true,"https_setup_supported":true,"input_management_supported":true,"keep_hotspot_until_connected_supported":true,"multi_user_supported":true,"multichannel_group_supported":true,"multizone_supported":true,"night_mode_supported":true,"night_mode_supported_v2":true,"opencast_supported":false,"preview_channel_supported":true,"reboot_supported":true,"remote_ducking_supported":true,"separate_tts_volume_supported":true,"setup_supported":true,"sleep_mode_supported":true,"stats_supported":true,"system_sound_effects_supported":false,"user_eq_supported":true,"wifi_auto_save_supported":true,"wifi_regulatory_domain_locked":true,"wifi_supported":true},"cloud_device_id":"003D...","factory_country_code":"US","hotspot_bssid":"FA:8F:CA:30:41:71","local_authorization_token_hash":"hBt2...","mac_address":"F4:F5:...","manufacturer":"Google Inc.","model_name":"Google Home","product_name":"pineapple","public_key":"MIIB...","ssdp_udn":"baab...","uma_client_id":"8ce0...","uptime":48509.169282,"weave_device_id":""},"properties":{"4k_blocked":{"format":"int32","type":"integer"},"capabilities":{"$ref":"#/components/schemas/Capabilities"},"cloud_device_id":{"type":"string"},"factory_country_code":{"type":"string"},"hotspot_bssid":{"type":"string"},"local_authorization_token_hash":{"type":"string"},"mac_address":{"type":"string"},"manufacturer":{"type":"string"},"model_name":{"type":"string"},"product_name":{"type":"string"},"public_key":{"type":"string"},"ssdp_udn":{"type":"string"},"uma_client_id":{"type":"string"},"uptime":{"type":"number"},"weave_device_id":{"type":"string"}},"required":["4k_blocked","capabilities","cloud_device_id","factory_country_code","hotspot_bssid","local_authorization_token_hash","mac_address","manufacturer","model_name","product_name","public_key","ssdp_udn","uma_client_id","uptime","weave_device_id"],"title":"DeviceInfo","type":"object"},"Example1":{"example":{"aogh":{"aogh_api_version":"2"},"audio":{"digital":false},"build_info":{"build_type":2,"cast_build_revision":"1.46.195690","cast_control_version":1,"preview_channel_state":4,"release_track":"preview-joining-stable-channel","system_build_number":"195690"},"detail":{"icon_list":[{"depth":32,"height":55,"mimetype":"image/png","url":"/setup/icon.png","width":98}],"locale":{"display_string":"English (United States)"},"timezone":{"display_string":"India Standard Time (Kolkata)","offset":330}},"device_info":{"4k_blocked":0,"capabilities":{"aogh_supported":true,"assistant_supported":true,"audio_hdr_supported":false,"audio_surround_mode_supported":false,"ble_supported":true,"bluetooth_audio_sink_supported":true,"bluetooth_audio_source_supported":true,"bluetooth_supported":true,"cloudcast_supported":true,"content_filters_supported":true,"display_supported":false,"fdr_supported":false,"hdmi_prefer_50hz_supported":false,"hdmi_prefer_high_fps_supported":false,"hotspot_supported":true,"https_setup_supported":true,"input_management_supported":true,"keep_hotspot_until_connected_supported":true,"multi_user_supported":true,"multichannel_group_supported":true,"multizone_supported":true,"night_mode_supported":true,"night_mode_supported_v2":true,"opencast_supported":false,"preview_channel_supported":true,"reboot_supported":true,"remote_ducking_supported":true,"separate_tts_volume_supported":true,"setup_supported":true,"sleep_mode_supported":true,"stats_supported":true,"system_sound_effects_supported":false,"user_eq_supported":true,"wifi_auto_save_supported":true,"wifi_regulatory_domain_locked":true,"wifi_supported":true},"cloud_device_id":"003D...","factory_country_code":"US","hotspot_bssid":"FA:8F:CA:30:41:71","local_authorization_token_hash":"hBt2...","mac_address":"F4:F5:...","manufacturer":"Google Inc.","model_name":"Google Home","product_name":"pineapple","public_key":"MIIB...","ssdp_udn":"baab...","uma_client_id":"8ce0...","uptime":48509.169282,"weave_device_id":""},"multizone":{"audio_output_delay":0,"audio_output_delay_hdmi":0,"audio_output_delay_oem":0,"aux_in_group":"","dynamic_groups":[],"groups":[],"multichannel_status":0},"name":"Bedroom Speaker","net":{"ethernet_connected":false,"ip_address":"192.168.0.18","online":true},"night_mode_params":{"device_override_do_not_disturb":0,"do_not_disturb":true,"enabled":true,"led_brightness":0.5799999833106995,"volume":0.5899999737739563,"windows":[{"days":[0,1,2,3,4,5,6],"length_hours":6,"start_hour":23}]},"opencast":{"pin_code":""},"opt_in":{"audio_hdr":false,"audio_surround_mode":0,"autoplay_on_signal":true,"cloud_ipc":true,"hdmi_prefer_50hz":false,"hdmi_prefer_high_fps":true,"managed_mode":false,"opencast":true,"preview_channel":true,"remote_ducking":true,"stats":true,"ui_flipped":false,"wpa3_support_enabled":false},"proxy":{"mode":"system"},"settings":{"closed_caption":{},"control_notifications":1,"country_code":"IN","locale":"en-US","network_standby":0,"system_sound_effects":true,"time_format":1,"timezone":"Asia/Kolkata","wake_on_cast":1},"setup":{"qr_ssid_suffix":"","setup_state":60,"ssid_suffix":"k","stats":{"num_check_connectivity":0,"num_connect_wifi":0,"num_connected_wifi_not_saved":0,"num_initial_eureka_info":0,"num_obtain_ip":0},"tos_accepted":true},"sign":{"certificate":"-----BEGIN CERTIFICATE-----\nMIID...Oeb0\n-----END CERTIFICATE-----\n","intermediate_certs":["-----BEGIN CERTIFICATE-----\nMIID...O/bYS\n-----END CERTIFICATE-----\n"],"nonce":"1234512345","signed_data":"Rr5Q..."},"user_eq":{"high_shelf":{"frequency":4500,"gain_db":0,"quality":0.707},"low_shelf":{"frequency":150,"gain_db":0,"quality":0.707},"max_peaking_eqs":0,"peaking_eqs":[]},"version":10,"wifi":{"bssid":"a0:ab:...","has_changes":false,"noise_level":-90,"signal_level":-50,"ssid":"Nucl...","wpa_configured":true,"wpa_id":1,"wpa_state":10}},"properties":{"aogh":{"$ref":"#/components/schemas/Aogh"},"audio":{"$ref":"#/components/schemas/Audio"},"build_info":{"$ref":"#/components/schemas/BuildInfo"},"detail":{"$ref":"#/components/schemas/Detail"},"device_info":{"$ref":"#/components/schemas/DeviceInfo"},"multizone":{"$ref":"#/components/schemas/Multizone"},"name":{"type":"string"},"net":{"$ref":"#/components/schemas/Net"},"night_mode_params":{"$ref":"#/components/schemas/NightModeParams"},"opencast":{"$ref":"#/components/schemas/Opencast"},"opt_in":{"$ref":"#/components/schemas/OptIn"},"proxy":{"$ref":"#/components/schemas/Proxy"},"settings":{"$ref":"#/components/schemas/Settings"},"setup":{"$ref":"#/components/schemas/Setup"},"sign":{"$ref":"#/components/schemas/Sign"},"user_eq":{"$ref":"#/components/schemas/UserEq"},"version":{"format":"int32","type":"integer"},"wifi":{"$ref":"#/components/schemas/Wifi"}},"required":["aogh","audio","build_info","detail","device_info","multizone","name","net","night_mode_params","opencast","opt_in","proxy","settings","setup","sign","user_eq","version","wifi"],"title":"Example1","type":"object"},"Example11":{"example":{"app_device_id":"...","certificate":"-----BEGIN CERTIFICATE-----\nMIID...Oeb0\n-----END CERTIFICATE-----\n","signed_data":"HAjp..."},"properties":{"app_device_id":{"type":"string"},"certificate":{"type":"string"},"signed_data":{"type":"string"}},"required":["app_device_id","certificate","signed_data"],"title":"Example11","type":"object"},"Example110":{"example":{"audio_mode":0,"connected_devices":[{"device":{"bond_date":1529248165656.613,"device_class":2491396,"device_type":1,"last_connect_date":0,"mac_address":"xx:xx:xx:xx:xx:xx","name":"PHILIPS BT64","rssi":-255,"service_uuids":["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]},"enabled_profiles":2}],"connecting_devices":[],"discovery_enabled":false,"remote_sink":{"bond_date":1529248165656.613,"device_class":2491396,"device_type":1,"last_connect_date":0,"mac_address":"xx:xx:xx:xx:xx:xx","name":"PHILIPS BT64","rssi":-255,"service_uuids":["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]},"scanning_enabled":false},"properties":{"audio_mode":{"format":"int32","type":"integer"},"connected_devices":{"items":{"$ref":"#/components/schemas/ConnectedDevice"},"type":"array"},"connecting_devices":{"items":{"type":"string"},"type":"array"},"discovery_enabled":{"type":"boolean"},"remote_sink":{"$ref":"#/components/schemas/RemoteSink"},"scanning_enabled":{"type":"boolean"}},"required":["audio_mode","connecting_devices","connected_devices","remote_sink","discovery_enabled","scanning_enabled"],"title":"Example110","type":"object"},"Example111":{"example":{"bond_date":1503212407260.55,"device_class":5898764,"device_type":1,"last_connect_date":1514807829482.111,"mac_address":"xx:xx:xx:xx:xx:xx","name":"Device Name","rssi":-255,"service_uuids":["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]},"properties":{"bond_date":{"type":"number"},"device_class":{"format":"int32","type":"integer"},"device_type":{"format":"int32","type":"integer"},"last_connect_date":{"type":"number"},"mac_address":{"type":"string"},"name":{"type":"string"},"rssi":{"format":"int32","type":"integer"},"service_uuids":{"items":{"type":"string"},"type":"array"}},"required":["bond_date","device_class","device_type","last_connect_date","mac_address","name","rssi","service_uuids"],"title":"Example111","type":"object"},"Example112":{"example":{"device_class":525372,"device_type":3,"expected_profiles":0,"mac_address":"xx:xx:xx:xx:xx:xx","name":"KD-49X8200E","rssi":-90},"properties":{"device_class":{"format":"int32","type":"integer"},"device_type":{"format":"int32","type":"integer"},"expected_profiles":{"format":"int32","type":"integer"},"mac_address":{"type":"string"},"name":{"type":"string"},"rssi":{"format":"int32","type":"integer"}},"required":["device_class","device_type","expected_profiles","mac_address","name","rssi"],"title":"Example112","type":"object"},"Example113":{"example":{"ssid":"Wifi name","wpa_auth":7,"wpa_cipher":4,"wpa_id":0},"properties":{"ssid":{"type":"string"},"wpa_auth":{"format":"int32","type":"integer"},"wpa_cipher":{"format":"int32","type":"integer"},"wpa_id":{"format":"int32","type":"integer"}},"required":["ssid","wpa_auth","wpa_cipher","wpa_id"],"title":"Example113","type":"object"},"Example114":{"example":{"bssid":"APBSSID1","signal_level":-20,"ssid":"APSSID1","wpa_auth":7,"wpa_cipher":4,"wpa_id":0},"properties":{"bssid":{"type":"string"},"signal_level":{"format":"int32","type":"integer"},"ssid":{"type":"string"},"wpa_auth":{"format":"int32","type":"integer"},"wpa_cipher":{"format":"int32","type":"integer"},"wpa_id":{"format":"int32","type":"integer"}},"required":["bssid","signal_level","ssid","wpa_auth","wpa_cipher","wpa_id"],"title":"Example114","type":"object"},"Example12":{"example":{"token":"ADtq..."},"properties":{"token":{"type":"string"}},"required":["token"],"title":"Example12","type":"object"},"Example13":{"example":{"can_enroll":true,"enrollment_state":0,"error_code":0,"ready":false,"retryable":true},"properties":{"can_enroll":{"type":"boolean"},"enrollment_state":{"format":"int32","type":"integer"},"error_code":{"format":"int32","type":"integer"},"ready":{"type":"boolean"},"retryable":{"type":"boolean"}},"required":["can_enroll","enrollment_state","error_code","ready","retryable"],"title":"Example13","type":"object"},"Example14":{"example":{"display_string":"Samoa Standard Time (Midway)","offset":-660,"timezone":"Pacific/Midway"},"properties":{"display_string":{"type":"string"},"offset":{"format":"int32","type":"integer"},"timezone":{"type":"string"}},"required":["display_string","offset","timezone"],"title":"Example14","type":"object"},"Example15":{"example":{"display_string":"Amharic - አማርኛ","locale":"am"},"properties":{"display_string":{"type":"string"},"locale":{"type":"string"}},"required":["display_string","locale"],"title":"Example15","type":"object"},"Example16":{"example":{"bytes_received":31457280,"response_code":200,"time_for_data_fetch":4722,"time_for_http_response":316},"properties":{"bytes_received":{"format":"int32","type":"integer"},"response_code":{"format":"int32","type":"integer"},"time_for_data_fetch":{"format":"int32","type":"integer"},"time_for_http_response":{"format":"int32","type":"integer"}},"required":["bytes_received","response_code","time_for_data_fetch","time_for_http_response"],"title":"Example16","type":"object"},"Example17":{"example":{"do_not_disturb":true,"enabled":false,"led_brightness":0.44999998807907104,"volume":0.46000000834465027,"windows":[{"days":[0,1,2,3,4,5,6],"length_hours":8,"start_hour":22}]},"properties":{"do_not_disturb":{"type":"boolean"},"enabled":{"type":"boolean"},"led_brightness":{"type":"number"},"volume":{"type":"number"},"windows":{"items":{"$ref":"#/components/schemas/Window2"},"type":"array"}},"required":["do_not_disturb","enabled","led_brightness","volume","windows"],"title":"Example17","type":"object"},"Example18":{"example":{"alarm":[{"date_pattern":{"day":15,"month":1,"year":2018},"fire_time":1515995400000,"id":"alarm/xxx","status":1,"time_pattern":{"hour":6,"minute":50,"second":0}}],"timer":[{"fire_time":1516176765589,"id":"timer/xxx","original_duration":20000,"status":1}]},"properties":{"alarm":{"items":{"$ref":"#/components/schemas/Alarm"},"type":"array"},"timer":{"items":{"$ref":"#/components/schemas/Timer"},"type":"array"}},"required":["alarm","timer"],"title":"Example18","type":"object"},"Example19":{"example":{"success":true},"properties":{"success":{"type":"boolean"}},"required":["success"],"title":"Example19","type":"object"},"ForgetWi-FiNetworkRequest":{"example":{"wpa_id":0},"properties":{"wpa_id":{"format":"int32","type":"integer"}},"required":["wpa_id"],"title":"ForgetWi-FiNetworkRequest","type":"object"},"ForgetpaireddeviceRequest":{"example":{"bond":false,"mac_address":"xx:xx:xx:xx:xx:xx"},"properties":{"bond":{"type":"boolean"},"mac_address":{"type":"string"}},"required":["mac_address","bond"],"title":"ForgetpaireddeviceRequest","type":"object"},"Getcurrentstate":{"example":{"notifications_enabled":true},"properties":{"notifications_enabled":{"type":"boolean"}},"required":["notifications_enabled"],"title":"Getcurrentstate","type":"object"},"Getcurrentvalues":{"example":{"endpoint_enabled":false,"hotword_enabled":false},"properties":{"endpoint_enabled":{"type":"boolean"},"hotword_enabled":{"type":"boolean"}},"required":["endpoint_enabled","hotword_enabled"],"title":"Getcurrentvalues","type":"object"},"Getvolume":{"example":{"volume":1},"properties":{"volume":{"type":"number"}},"required":["volume"],"title":"Getvolume","type":"object"},"HighShelf":{"example":{"frequency":4500,"gain_db":0,"quality":0.707},"properties":{"frequency":{"format":"int32","type":"integer"},"gain_db":{"format":"int32","type":"integer"},"quality":{"type":"number"}},"required":["frequency","gain_db","quality"],"title":"HighShelf","type":"object"},"HighShelf1":{"example":{"gain_db":0},"properties":{"gain_db":{"format":"int32","type":"integer"}},"required":["gain_db"],"title":"HighShelf1","type":"object"},"IconList":{"example":{"depth":32,"height":55,"mimetype":"image/png","url":"/setup/icon.png","width":98},"properties":{"depth":{"format":"int32","type":"integer"},"height":{"format":"int32","type":"integer"},"mimetype":{"type":"string"},"url":{"type":"string"},"width":{"format":"int32","type":"integer"}},"required":["depth","height","mimetype","url","width"],"title":"IconList","type":"object"},"Locale":{"example":{"display_string":"English (United States)"},"properties":{"display_string":{"type":"string"}},"required":["display_string"],"title":"Locale","type":"object"},"LowShelf":{"example":{"frequency":150,"gain_db":0,"quality":0.707},"properties":{"frequency":{"format":"int32","type":"integer"},"gain_db":{"format":"int32","type":"integer"},"quality":{"type":"number"}},"required":["frequency","gain_db","quality"],"title":"LowShelf","type":"object"},"LowShelf1":{"example":{"gain_db":0},"properties":{"gain_db":{"format":"int32","type":"integer"}},"required":["gain_db"],"title":"LowShelf1","type":"object"},"Multizone":{"example":{"audio_output_delay":0,"audio_output_delay_hdmi":0,"audio_output_delay_oem":0,"aux_in_group":"","dynamic_groups":[],"groups":[],"multichannel_status":0},"properties":{"audio_output_delay":{"format":"int32","type":"integer"},"audio_output_delay_hdmi":{"format":"int32","type":"integer"},"audio_output_delay_oem":{"format":"int32","type":"integer"},"aux_in_group":{"type":"string"},"dynamic_groups":{"items":{"type":"string"},"type":"array"},"groups":{"items":{"type":"string"},"type":"array"},"multichannel_status":{"format":"int32","type":"integer"}},"required":["audio_output_delay","audio_output_delay_hdmi","audio_output_delay_oem","aux_in_group","dynamic_groups","groups","multichannel_status"],"title":"Multizone","type":"object"},"Net":{"example":{"ethernet_connected":false,"ip_address":"192.168.0.18","online":true},"properties":{"ethernet_connected":{"type":"boolean"},"ip_address":{"type":"string"},"online":{"type":"boolean"}},"required":["ethernet_connected","ip_address","online"],"title":"Net","type":"object"},"NightModeParams":{"example":{"device_override_do_not_disturb":0,"do_not_disturb":true,"enabled":true,"led_brightness":0.5799999833106995,"volume":0.5899999737739563,"windows":[{"days":[0,1,2,3,4,5,6],"length_hours":6,"start_hour":23}]},"properties":{"device_override_do_not_disturb":{"format":"int32","type":"integer"},"do_not_disturb":{"type":"boolean"},"enabled":{"type":"boolean"},"led_brightness":{"type":"number"},"volume":{"type":"number"},"windows":{"items":{"$ref":"#/components/schemas/Window"},"type":"array"}},"required":["device_override_do_not_disturb","do_not_disturb","enabled","led_brightness","volume","windows"],"title":"NightModeParams","type":"object"},"NightModesettingsRequest":{"example":{"demo_to_user":true,"do_not_disturb":true,"enabled":false,"led_brightness":0.44999998807907104,"volume":0.46000000834465027,"windows":[{"days":[0,1,2,3,4,5,6],"length_hours":8,"start_hour":22}]},"properties":{"demo_to_user":{"type":"boolean"},"do_not_disturb":{"type":"boolean"},"enabled":{"type":"boolean"},"led_brightness":{"type":"number"},"volume":{"type":"number"},"windows":{"items":{"$ref":"#/components/schemas/Window"},"type":"array"}},"required":["enabled","do_not_disturb","led_brightness","volume","demo_to_user","windows"],"title":"NightModesettingsRequest","type":"object"},"Opencast":{"example":{"pin_code":""},"properties":{"pin_code":{"type":"string"}},"required":["pin_code"],"title":"Opencast","type":"object"},"OptIn":{"example":{"audio_hdr":false,"audio_surround_mode":0,"autoplay_on_signal":true,"cloud_ipc":true,"hdmi_prefer_50hz":false,"hdmi_prefer_high_fps":true,"managed_mode":false,"opencast":true,"preview_channel":true,"remote_ducking":true,"stats":true,"ui_flipped":false,"wpa3_support_enabled":false},"properties":{"audio_hdr":{"type":"boolean"},"audio_surround_mode":{"format":"int32","type":"integer"},"autoplay_on_signal":{"type":"boolean"},"cloud_ipc":{"type":"boolean"},"hdmi_prefer_50hz":{"type":"boolean"},"hdmi_prefer_high_fps":{"type":"boolean"},"managed_mode":{"type":"boolean"},"opencast":{"type":"boolean"},"preview_channel":{"type":"boolean"},"remote_ducking":{"type":"boolean"},"stats":{"type":"boolean"},"ui_flipped":{"type":"boolean"},"wpa3_support_enabled":{"type":"boolean"}},"required":["audio_hdr","audio_surround_mode","autoplay_on_signal","cloud_ipc","hdmi_prefer_50hz","hdmi_prefer_high_fps","managed_mode","opencast","preview_channel","remote_ducking","stats","ui_flipped","wpa3_support_enabled"],"title":"OptIn","type":"object"},"OptIn1":{"example":{"opencast":true,"preview_channel":true,"remote_ducking":true,"stats":true},"properties":{"opencast":{"type":"boolean"},"preview_channel":{"type":"boolean"},"remote_ducking":{"type":"boolean"},"stats":{"type":"boolean"}},"required":["opencast","preview_channel","remote_ducking","stats"],"title":"OptIn1","type":"object"},"PairwithSpeakerRequest":{"example":{"connect":true,"mac_address":"54:13:79:49:19:22","profile":2},"properties":{"connect":{"type":"boolean"},"mac_address":{"type":"string"},"profile":{"format":"int32","type":"integer"}},"required":["mac_address","connect","profile"],"title":"PairwithSpeakerRequest","type":"object"},"Proxy":{"example":{"mode":"system"},"properties":{"mode":{"type":"string"}},"required":["mode"],"title":"Proxy","type":"object"},"RebootandFactoryResetRequest":{"example":{"params":"now"},"properties":{"params":{"type":"string"}},"required":["params"],"title":"RebootandFactoryResetRequest","type":"object"},"RemoteSink":{"example":{"bond_date":1529248165656.613,"device_class":2491396,"device_type":1,"last_connect_date":0,"mac_address":"xx:xx:xx:xx:xx:xx","name":"PHILIPS BT64","rssi":-255,"service_uuids":["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]},"properties":{"bond_date":{"type":"number"},"device_class":{"format":"int32","type":"integer"},"device_type":{"format":"int32","type":"integer"},"last_connect_date":{"format":"int32","type":"integer"},"mac_address":{"type":"string"},"name":{"type":"string"},"rssi":{"format":"int32","type":"integer"},"service_uuids":{"items":{"type":"string"},"type":"array"}},"required":["bond_date","device_class","device_type","last_connect_date","mac_address","name","rssi","service_uuids"],"title":"RemoteSink","type":"object"},"ScanfordevicesRequest":{"example":{"clear_results":true,"enable":true,"timeout":60},"properties":{"clear_results":{"type":"boolean"},"enable":{"type":"boolean"},"timeout":{"format":"int32","type":"integer"}},"required":["enable","clear_results","timeout"],"title":"ScanfordevicesRequest","type":"object"},"SetEqualizerValuesRequest":{"example":{"high_shelf":{"gain_db":0},"low_shelf":{"gain_db":0}},"properties":{"high_shelf":{"$ref":"#/components/schemas/HighShelf1"},"low_shelf":{"$ref":"#/components/schemas/LowShelf1"}},"required":["low_shelf","high_shelf"],"title":"SetEqualizerValuesRequest","type":"object"},"SetEurekaInfoRequest":{"example":{"name":"Living Room","opt_in":{"opencast":true,"preview_channel":true,"remote_ducking":true,"stats":true},"settings":{"control_notifications":2}},"properties":{"name":{"type":"string"},"opt_in":{"$ref":"#/components/schemas/OptIn1"},"settings":{"$ref":"#/components/schemas/Settings1"}},"required":["name","settings","opt_in"],"title":"SetEurekaInfoRequest","type":"object"},"Settings":{"example":{"closed_caption":{},"control_notifications":1,"country_code":"IN","locale":"en-US","network_standby":0,"system_sound_effects":true,"time_format":1,"timezone":"Asia/Kolkata","wake_on_cast":1},"properties":{"closed_caption":{"type":"object"},"control_notifications":{"format":"int32","type":"integer"},"country_code":{"type":"string"},"locale":{"type":"string"},"network_standby":{"format":"int32","type":"integer"},"system_sound_effects":{"type":"boolean"},"time_format":{"format":"int32","type":"integer"},"timezone":{"type":"string"},"wake_on_cast":{"format":"int32","type":"integer"}},"required":["closed_caption","control_notifications","country_code","locale","network_standby","system_sound_effects","time_format","timezone","wake_on_cast"],"title":"Settings","type":"object"},"Settings1":{"example":{"control_notifications":2},"properties":{"control_notifications":{"format":"int32","type":"integer"}},"required":["control_notifications"],"title":"Settings1","type":"object"},"Setup":{"example":{"qr_ssid_suffix":"","setup_state":60,"ssid_suffix":"k","stats":{"num_check_connectivity":0,"num_connect_wifi":0,"num_connected_wifi_not_saved":0,"num_initial_eureka_info":0,"num_obtain_ip":0},"tos_accepted":true},"properties":{"qr_ssid_suffix":{"type":"string"},"setup_state":{"format":"int32","type":"integer"},"ssid_suffix":{"type":"string"},"stats":{"$ref":"#/components/schemas/Stats"},"tos_accepted":{"type":"boolean"}},"required":["qr_ssid_suffix","setup_state","ssid_suffix","stats","tos_accepted"],"title":"Setup","type":"object"},"Sign":{"example":{"certificate":"-----BEGIN CERTIFICATE-----\nMIID...Oeb0\n-----END CERTIFICATE-----\n","intermediate_certs":["-----BEGIN CERTIFICATE-----\nMIID...O/bYS\n-----END CERTIFICATE-----\n"],"nonce":"1234512345","signed_data":"Rr5Q..."},"properties":{"certificate":{"type":"string"},"intermediate_certs":{"items":{"type":"string"},"type":"array"},"nonce":{"type":"string"},"signed_data":{"type":"string"}},"required":["certificate","intermediate_certs","nonce","signed_data"],"title":"Sign","type":"object"},"Stats":{"example":{"num_check_connectivity":0,"num_connect_wifi":0,"num_connected_wifi_not_saved":0,"num_initial_eureka_info":0,"num_obtain_ip":0},"properties":{"num_check_connectivity":{"format":"int32","type":"integer"},"num_connect_wifi":{"format":"int32","type":"integer"},"num_connected_wifi_not_saved":{"format":"int32","type":"integer"},"num_initial_eureka_info":{"format":"int32","type":"integer"},"num_obtain_ip":{"format":"int32","type":"integer"}},"required":["num_check_connectivity","num_connect_wifi","num_connected_wifi_not_saved","num_initial_eureka_info","num_obtain_ip"],"title":"Stats","type":"object"},"TestInternetDownloadSpeedRequest":{"example":{"url":"https://storage.googleapis.com/reliability-speedtest/random.txt"},"properties":{"url":{"type":"string"}},"required":["url"],"title":"TestInternetDownloadSpeedRequest","type":"object"},"TimePattern":{"example":{"hour":6,"minute":50,"second":0},"properties":{"hour":{"format":"int32","type":"integer"},"minute":{"format":"int32","type":"integer"},"second":{"format":"int32","type":"integer"}},"required":["hour","minute","second"],"title":"TimePattern","type":"object"},"Timer":{"example":{"fire_time":1516176765589,"id":"timer/xxx","original_duration":20000,"status":1},"properties":{"fire_time":{"format":"int64","type":"integer"},"id":{"type":"string"},"original_duration":{"format":"int32","type":"integer"},"status":{"format":"int32","type":"integer"}},"required":["fire_time","id","original_duration","status"],"title":"Timer","type":"object"},"Timezone":{"example":{"display_string":"India Standard Time (Kolkata)","offset":330},"properties":{"display_string":{"type":"string"},"offset":{"format":"int32","type":"integer"}},"required":["display_string","offset"],"title":"Timezone","type":"object"},"UserEq":{"example":{"high_shelf":{"frequency":4500,"gain_db":0,"quality":0.707},"low_shelf":{"frequency":150,"gain_db":0,"quality":0.707},"max_peaking_eqs":0,"peaking_eqs":[]},"properties":{"high_shelf":{"$ref":"#/components/schemas/HighShelf"},"low_shelf":{"$ref":"#/components/schemas/LowShelf"},"max_peaking_eqs":{"format":"int32","type":"integer"},"peaking_eqs":{"items":{"type":"string"},"type":"array"}},"required":["high_shelf","low_shelf","max_peaking_eqs","peaking_eqs"],"title":"UserEq","type":"object"},"Wifi":{"example":{"bssid":"a0:ab:...","has_changes":false,"noise_level":-90,"signal_level":-50,"ssid":"Nucl...","wpa_configured":true,"wpa_id":1,"wpa_state":10},"properties":{"bssid":{"type":"string"},"has_changes":{"type":"boolean"},"noise_level":{"format":"int32","type":"integer"},"signal_level":{"format":"int32","type":"integer"},"ssid":{"type":"string"},"wpa_configured":{"type":"boolean"},"wpa_id":{"format":"int32","type":"integer"},"wpa_state":{"format":"int32","type":"integer"}},"required":["bssid","has_changes","noise_level","signal_level","ssid","wpa_configured","wpa_id","wpa_state"],"title":"Wifi","type":"object"},"Window":{"example":{"days":[0,1,2,3,4,5,6],"length_hours":6,"start_hour":23},"properties":{"days":{"items":{"format":"int32","type":"integer"},"type":"array"},"length_hours":{"format":"int32","type":"integer"},"start_hour":{"format":"int32","type":"integer"}},"required":["days","length_hours","start_hour"],"title":"Window","type":"object"},"Window2":{"example":{"days":[0,1,2,3,4,5,6],"length_hours":8,"start_hour":22},"properties":{"days":{"items":{"format":"int32","type":"integer"},"type":"array"},"length_hours":{"type":"number"},"start_hour":{"type":"number"}},"required":["days","length_hours","start_hour"],"title":"Window2","type":"object"}},"securitySchemes":{"cast-local-authorization-token":{"description":"Local authorization token. For more details, check the [Authentication section](#section/Google-Home-Local-API/Authentication).","in":"header","name":"cast-local-authorization-token","type":"apiKey","x-testValue":""}}}}