{"id":26819313,"url":"https://github.com/jwinarske/google-smartdevicemanager-rs","last_synced_at":"2026-04-13T11:01:25.556Z","repository":{"id":112007231,"uuid":"336677872","full_name":"jwinarske/google-smartdevicemanager-rs","owner":"jwinarske","description":"Example of using Rust to access the Google Smart Device Manager API.","archived":false,"fork":false,"pushed_at":"2021-02-17T15:26:30.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-20T12:24:47.335Z","etag":null,"topics":["googlesmartdevicemanagement","grpc","nest","rust","tonic"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jwinarske.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-Apache2.0","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-02-07T01:53:24.000Z","updated_at":"2021-02-17T15:26:34.000Z","dependencies_parsed_at":"2023-07-30T21:15:26.761Z","dependency_job_id":null,"html_url":"https://github.com/jwinarske/google-smartdevicemanager-rs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jwinarske/google-smartdevicemanager-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwinarske%2Fgoogle-smartdevicemanager-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwinarske%2Fgoogle-smartdevicemanager-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwinarske%2Fgoogle-smartdevicemanager-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwinarske%2Fgoogle-smartdevicemanager-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jwinarske","download_url":"https://codeload.github.com/jwinarske/google-smartdevicemanager-rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwinarske%2Fgoogle-smartdevicemanager-rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31749763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["googlesmartdevicemanagement","grpc","nest","rust","tonic"],"created_at":"2025-03-30T05:17:27.816Z","updated_at":"2026-04-13T11:01:25.544Z","avatar_url":"https://github.com/jwinarske.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# google-smartdevicemanager-rs\n\nRust code to access the Google Smart Device Management API.  This current version uses Tonic.  Given the simplicity of the API (for now), protobuf is overkill.  Serde and reqwest would be a smaller and more performant combo for a number of reasons.  For now it works.\n\nTo pull events from the cloud use a crate such as cloud-pubsub. \n\nThe Google Smart Device Management API enables Read/Write parameters of:\n* Nest Cameras\n* Nest Doorbells\n* Nest Thermostats\n* Google Hub (Display)\n\nIt also allows getting events from above devices.\n\nFor more details see:\nhttps://developers.google.com/nest/device-access/api\n\n### Pre-requisites\n\n1. Register project: https://developers.google.com/nest/device-access/registration\n*Save Project ID to export as variable*\n   \n2. Authorize project: https://developers.google.com/nest/device-access/authorize \n\n3. Copy OAuth 2.0 file to local machine\n\n### Required Environmental Variables\n\nThis file is used to cache refresh token\n\n     export GOOGLE_APPLICATION_TOKEN_STORAGE=$HOME/.secrets/tokenstorage.json\n\nThis file is downloaded via https://console.developers.google.com/apis/credentials:\n\n     export GOOGLE_APPLICATION_CREDENTIALS=$HOME/.secrets/client_secret_xxx_xxxx.apps.googleusercontent.com.json\n\nThis value comes from registering project:\n\n     export PROJECT_GUID={project-id}\n\n### Stripped Release Size (Tonic)\n\n-rwxrwxr-x. 1 joel joel 3282272 Feb  7 09:31  google-smartdevicemanager-rs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwinarske%2Fgoogle-smartdevicemanager-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjwinarske%2Fgoogle-smartdevicemanager-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwinarske%2Fgoogle-smartdevicemanager-rs/lists"}