{"id":26690694,"url":"https://github.com/danielcuthbert/home-assistant","last_synced_at":"2025-04-12T21:33:49.609Z","repository":{"id":90702273,"uuid":"410829287","full_name":"danielcuthbert/home-assistant","owner":"danielcuthbert","description":"Just a dump of all the home assistant things I've been tinkering with","archived":false,"fork":false,"pushed_at":"2024-02-18T10:35:38.000Z","size":40088,"stargazers_count":64,"open_issues_count":1,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-26T15:44:15.616Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/danielcuthbert.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":"threat_model.md","audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-27T09:55:03.000Z","updated_at":"2025-03-24T23:29:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"c48cdd35-0848-4aae-a5be-4ada187df66a","html_url":"https://github.com/danielcuthbert/home-assistant","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/danielcuthbert%2Fhome-assistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielcuthbert%2Fhome-assistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielcuthbert%2Fhome-assistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielcuthbert%2Fhome-assistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielcuthbert","download_url":"https://codeload.github.com/danielcuthbert/home-assistant/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248636208,"owners_count":21137398,"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":"2025-03-26T15:34:31.653Z","updated_at":"2025-04-12T21:33:49.571Z","avatar_url":"https://github.com/danielcuthbert.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Connect All Teh Tings\n\nWhat started out as me wondering what the pollution levels were outside my house, thanks to the use of ugly fuels like diesel and London's inability to create clean air, turned into a journey of learning about ESP32's, ESP8266's, Home Assistant and collection of pollution data collection sensors. \n\nThis repo is a place to house all of the things I'm messing with. \n\n## External Pollution Sensor (Cortex M4)\n\nFirst up is the [external](https://github.com/danielcuthbert/Pollution-Sensor) pollution sensor\n\n![](https://github.com/danielcuthbert/Pollution-Sensor/raw/main/img/adafruit.png)\n\nThis was built to grab readings from outside our front door and makes use of Adafruit's brilliant Feather M4 express, a PM 2.5 sensor and BME 280 for temperature and humidty. I then push the data into io.adafruit.com. \n\nPlans are in action to bring this back into the Home Assistant setup, which will probably see me removing the use of the Feather and adopting a Wemos D1, which I've fallen in love with. \n\n## External Pollution Sensor (ESP8266)\n\n![](images/smutsig.jpg)\n\nSimilar to the above, this one uses a Wemos D1 instead of the Cortex M4 and pushes the data into my Home Assistant set up instead of Adafruits. \n\n![](images/outside_aqi2.png)\n\nThis project can be found ![here](https://github.com/danielcuthbert/home-assistant/tree/main/Smutsig)\n\n## Internal Pollution Sensors\n\nIKEA released the most amazing little pollution sensor in the form of the [VINDRIKTNING](https://www.ikea.com/gb/en/p/vindriktning-air-quality-sensor-80515910/) and many of us thought 'this could be hacked with' and I did just that one Sunday afternoon. \n\n![](images/vindriktning1.jpg)\n\nYou can read about these over [here](https://github.com/danielcuthbert/home-assistant/tree/main/VINDRIKTNING)\n\nI've since become interested in Volatile Organic Compounds (VOCs) and that journey can be found over [here](https://github.com/danielcuthbert/home-assistant/tree/main/inomhus-iaq)\n\n## Internal Air Purifier\n\nI was then bored and had an idea: what if I read the internal pollution levels and if they went above a threshold, I turned on an air purifier? Thankfully IKEA came to the rescue with their cheap [FÖRNUFTIG](https://www.ikea.com/gb/en/p/foernuftig-air-purifier-black-40488065/) offering and I set about hacking this too. \n\n![](images/FORNUFTIG1.jpeg)\n\nThat project lives in [here](https://github.com/danielcuthbert/home-assistant/tree/main/Fornuftig)\n\n## Soil Moisture Sensors\n\n![](images/vaxter1.jpg)\n\nShe wanted to know when her plants needed a water. Her wish was my command. You can find out more about that over [here](https://github.com/danielcuthbert/home-assistant/tree/main/Vaxter)\n\n## Fans\n\n![](images/blaser1.jpg)\n\nI wanted to create an automation function that monitored Los Diablos's room temperature and turned on the fan when it hit a certain level. We've done such an amazing job insulating their room that it gets hot, very hot and as such, they turn on the fan often but forget to turn it off. This is that [journey](https://github.com/danielcuthbert/home-assistant/tree/main/Blaser)\n\n## Security \u0026 Threat Models\n\nYou cannot have IoT without security, so here's a [page](https://github.com/danielcuthbert/home-assistant/blob/main/threat_model.md) that walks you through the threat model I created. I shall continue to update it with threats and countermeasures I come up with to make this all tight and secure. \n\n![](images/ha_architecture.png)\n\n## Noise Protocol Framework\n\nWith the 2021.9.0 release, we saw a very cool feature added by https://github.com/OttoWinter namely support for the noise protocol. This now means you can add a layer of encryption to the API for all nodes, which is sexy!\n\nThe [Noise Protocol](http://www.noiseprotocol.org/) is a framework that allows anyone to build crypto protocols without the added complexity that often comes with implementing crypto. Setting this up is pretty easy. \n\n### YAML Config\n\nFor each node, you need to add the following:\n\n`api:``\n  ``encryption:``\n  ``key: !secret outside_api_encryption_key`\n\nThis enables noise. You also need to add the corresponding entry into the new secrets.yaml pane in your ESPHome page. The key itself is a pre-shared 32-byte base64 encoded string, which you can generate using the following command:\n\n`openssl rand -base64 32`\n\nOnce you've rebuilt your firmware and pushed it to the device, you'll need to add this key to Home Assistant in order to re-auth. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielcuthbert%2Fhome-assistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielcuthbert%2Fhome-assistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielcuthbert%2Fhome-assistant/lists"}