https://github.com/webbertakken/home-automation
Automations that talk to Home Assistant
https://github.com/webbertakken/home-automation
Last synced: 5 months ago
JSON representation
Automations that talk to Home Assistant
- Host: GitHub
- URL: https://github.com/webbertakken/home-automation
- Owner: webbertakken
- License: mit
- Created: 2024-04-21T16:20:47.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-13T23:00:08.000Z (almost 2 years ago)
- Last Synced: 2025-04-01T08:51:20.948Z (about 1 year ago)
- Language: TypeScript
- Size: 598 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Webber's Home Automation ๐ก๐ป๐ณ
Webber's Home Automation consists of TypeScript logic that interacts with a HomeAssistant instance
through a websocket to automate my home. It is a standalone application that runs from a docker
image.
## Rationale
Home Assistant is a great platform for connecting all kinds of smart devices. We'll use it for that
purpose. It's UI-based automations are great for simple tasks. But as the complexity of the
automations grows, it becomes harder to manage them. This project aims to solve that problem by
using TypeScript to write automations.
## Why?
- ๐ฎ TypeScript gives much more control over automations
- ๐ Simpler to reuse code
- ๐งช Test logic using automated tests
- ๐ง Easier to reason about complexity
- ๐งป Ability to rollback and revise changes
- ๐จโ๐ฉโ๐งโ๐ฆ Easy to share and collaborate with others
- ๐ Faster development cycle
## Development
During development, the local application takes precedence over the production container. This
allows me to test new features and automations before deploying them to production.
All development steps are detailed in [DEVELOPMENT.md](./DEVELOPMENT.md).
## Deployment
Personally I run [an Unraid server](https://takken.io/blog/building-an-energy-efficient-server) at
home that runs at 7 watts when there is no load. This is where I deploy home automation related
containers.
### Settings
The settings are simple

It uses the following environment variables
- `HASS_BASE_URL`, which points to the HomeAssistant instance
- `HASS_TOKEN`, which is a long-lived access token from that same instance
### Deployed
Deployment looks like this

## License
This project is licensed under the [MIT License](./LICENSE).