{"id":20512038,"url":"https://github.com/wardlt/bayesian-nest","last_synced_at":"2026-05-21T16:12:00.072Z","repository":{"id":91621828,"uuid":"503148860","full_name":"WardLT/bayesian-nest","owner":"WardLT","description":"Fit a statistical model to the HVAC performance of my house","archived":false,"fork":false,"pushed_at":"2022-06-22T00:13:53.000Z","size":13,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-01-16T09:08:39.797Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WardLT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2022-06-13T23:49:24.000Z","updated_at":"2022-09-24T08:55:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"90cb0c30-3463-4f68-be80-dcae0b75fb5d","html_url":"https://github.com/WardLT/bayesian-nest","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WardLT%2Fbayesian-nest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WardLT%2Fbayesian-nest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WardLT%2Fbayesian-nest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WardLT%2Fbayesian-nest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WardLT","download_url":"https://codeload.github.com/WardLT/bayesian-nest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242117649,"owners_count":20074435,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-15T20:39:28.875Z","updated_at":"2025-12-04T16:04:22.915Z","avatar_url":"https://github.com/WardLT.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bayesian Nest\n\nThe goal of this repository is to create a statistically-robust model for my home's HVAC system using Bayesian modeling.\n\nThe key features are...\n- pulling a temperature and operation history of the home from the Google Nest API\n- cross-referencing the home temperature with weather reports\n- fitting different models for the home's temperature state using Bayesian methods\n\nWhen complete, the models will allow you to determine optimal policies for the system \ndepending on whether forecasts and assessing whether the variation of the observed performance\nare within expected bounds.\n\n## Installation, Setup, and Configuration\n\nThe required packages for this package are in the `requirements.txt` file. \nI recommend that you install the package into a virtual environment using Anaconda\n(there is an Anaconda environment provided) or Python's virtual environment.\n\n### Security Tokens\n\n#### Gaining Access to Nest Data\n\nOnce installed, you must register with Google to be able to access your Nest's data via an API.\nFollow the instructions on the [\"Device Access\" Tutorial](https://developers.google.com/nest/device-access/registration).\nDuring this procedure, you will need to:\n\n1. *Project ID*: You will create a Device Access project ID in the first step. Change the project ID in\n   [bayesnest/thermostat.py](./bayesnest/thermostat.py) to your project ID. \n2. *OAuth 2.0 Client Information*. You will download a JSON file when \n   configuring [Google Cloud Platform during Step 1](https://developers.google.com/nest/device-access/get-started#set_up_google_cloud_platform).\n   Save this file to `bayesnest/creds/google-sdm-service.json`.\n3. *Account Authorization Tokens*. You will download a set of keys via curl after authorizing your Google API Client\n    to access your Google account. Save this JSON file to `./bayesnest/creds/google-sdm-user.json`.\n4. *Create a Service Account for Receiving Events*. Follow [these instructions](https://developers.google.com/nest/device-access/api/events#service_accounts).\n   Save the keys to `bayesnest/creds/google-smd-service.json`.\n5. *Enable events on your SDM Project and link them to Google Cloud Platform*. Follow\n   [these instructions](https://developers.google.com/nest/device-access/api/events#enable-events) and \n   record the subscription name in [bayesnest/thermostat.py](./bayesnest/thermostat.py)\n \n\u003e **NOTE**: Do not share any of these JSON files with anyone!\n\n#### Weather data\n\nSign up for an account with [OpenWeatherMap](https://openweathermap.org/), validate your email address, \nand then paste the API key into [`weather.py`](./bayesnest/weather.py).\n\n\u003e **NOTE**: You do not need to register for the OneAPI/v3 service. Our app uses v2.5 \n\n### Launching the service\n\nActive the environment and then call `bayesnest`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwardlt%2Fbayesian-nest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwardlt%2Fbayesian-nest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwardlt%2Fbayesian-nest/lists"}