Hassette is a simple, modern, async-first Python framework for building Home Assistant automations.
Project description
Hassette
A simple, modern, async-first Python framework for building Home Assistant automations.
Documentation: https://hassette.readthedocs.io
Why Hassette?
- 🌟 Modern developer experience with typed APIs, Pydantic models, and IDE-friendly design
- ⚡ Async-first architecture designed for modern Python from the ground up
- 🔍 Simple, transparent framework with minimal magic and clear extension points
- 🎯 Focused mission: does one thing well — run user-defined apps that interact with Home Assistant
AppDaemon User?
We have a dedicated comparison guide for AppDaemon users considering Hassette:
📖 Examples
Check out the examples/ directory for more complete examples:
- Based on AppDaemon's examples:
- Cleaned up versions of my own apps:
docker-compose.ymlexample: docker-compose.ymlhassette.tomlexample: hassette.toml
🛣️ Status & Roadmap
Hassette is brand new and under active development. We follow semantic versioning and recommend pinning a minor version while the API stabilizes.
Hassette development is tracked in this project (still a slight work-in-progress) - open an issue or PR if you'd like to contribute or provide feedback!
Current Focus Areas
- 📚 Comprehensive documentation
- 🔐 Enhanced type safety: Service calls/responses, additional state types
- 🏗️ Entity classes: Include state data and service functionality (e.g.
LightEntity.turn_on()) - 🔄 Enhanced error handling: Better retry logic and error recovery
- 🧪 Testing improvements:
- 📊 More tests for core and utilities
- 🛠️ Test fixtures and framework for user apps
- 🚫 No more manual state changes in HA Developer Tools for testing!
🤝 Contributing
Hassette is in active development and contributions are welcome! Whether you're:
- 🐛 Reporting bugs
- 💡 Suggesting features
- 📝 Improving documentation
- 🔧 Contributing code
Early feedback and contributions help shape the project's direction.
📄 License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hassette-0.15.1.tar.gz.
File metadata
- Download URL: hassette-0.15.1.tar.gz
- Upload date:
- Size: 100.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8320697a2370afdebff1d52c239442e41d961c4a0ddd94e8dabceff6cf3e1e37
|
|
| MD5 |
5807e62f20e06a6182b9c3d19e438ebc
|
|
| BLAKE2b-256 |
e2a5b2830e178300743c254d32eff799867c38c055abff2ee1a5b2838792b921
|
Provenance
The following attestation bundles were made for hassette-0.15.1.tar.gz:
Publisher:
python_package.yml on NodeJSmith/hassette
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hassette-0.15.1.tar.gz -
Subject digest:
8320697a2370afdebff1d52c239442e41d961c4a0ddd94e8dabceff6cf3e1e37 - Sigstore transparency entry: 661707352
- Sigstore integration time:
-
Permalink:
NodeJSmith/hassette@49a18df8d739a9bd5ea2106dbd391895c99f22bf -
Branch / Tag:
refs/tags/v0.15.1 - Owner: https://github.com/NodeJSmith
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python_package.yml@49a18df8d739a9bd5ea2106dbd391895c99f22bf -
Trigger Event:
push
-
Statement type:
File details
Details for the file hassette-0.15.1-py3-none-any.whl.
File metadata
- Download URL: hassette-0.15.1-py3-none-any.whl
- Upload date:
- Size: 143.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b70e5027ee27c05af726965e3a76c3ba8cbda5a9fc34c4bff8cd1de7a4e49306
|
|
| MD5 |
773872ab472295dee7a7e8b2da618846
|
|
| BLAKE2b-256 |
1d14033cd7c77db29b52b2e90d444fee8004d341f3768a31273dc96b083d19a7
|
Provenance
The following attestation bundles were made for hassette-0.15.1-py3-none-any.whl:
Publisher:
python_package.yml on NodeJSmith/hassette
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hassette-0.15.1-py3-none-any.whl -
Subject digest:
b70e5027ee27c05af726965e3a76c3ba8cbda5a9fc34c4bff8cd1de7a4e49306 - Sigstore transparency entry: 661707354
- Sigstore integration time:
-
Permalink:
NodeJSmith/hassette@49a18df8d739a9bd5ea2106dbd391895c99f22bf -
Branch / Tag:
refs/tags/v0.15.1 - Owner: https://github.com/NodeJSmith
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python_package.yml@49a18df8d739a9bd5ea2106dbd391895c99f22bf -
Trigger Event:
push
-
Statement type: