Skip to content

NodeJSmith/hassette

Repository files navigation

Hassette

PyPI version Python 3.11+ License: MIT Documentation Status

A simple, modern, async-first Python framework for building Home Assistant automations.

Documentation: https://hassette.readthedocs.io

Why Hassette?

  • 🌟 Async-first core built on asyncio
  • 🔧 Typed events, states, and API interactions
  • 📝 Typed app configuration, typed events, typed states, typed API, typed everything
  • 🚌 Powerful event bus with predicates, debounce, and throttle
  • ⏰ Flexible scheduling (cron and intervals)
  • ⚙️ Simple, TOML-based configuration with Pydantic validation

📖 Examples

Check out the examples/ directory for more complete examples:

🛣️ Status & Roadmap

Hassette is brand new and under active development. We follow semantic versioning and recommend pinning a minor version while the API stabilizes.

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!

See the full roadmap for details - open an issue or PR if you'd like to contribute or provide feedback!

🤝 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

MIT

About

Modern, async-first Python framework for building Home Assistant automations

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •  

Languages