hassette


Namehassette JSON
Version 0.14.0 PyPI version JSON
download
home_pageNone
SummaryHassette is a simple, modern, async-first Python framework for building Home Assistant automations.
upload_time2025-10-19 23:53:18
maintainerNone
docs_urlNone
authorJessica
requires_python<3.14,>=3.11
licenseNone
keywords home-assistant automation async typed framework smart-home iot
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Hassette

[![PyPI version](https://badge.fury.io/py/hassette.svg)](https://badge.fury.io/py/hassette)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Documentation Status](https://readthedocs.org/projects/hassette/badge/?version=stable)](https://hassette.readthedocs.io/en/latest/?badge=stable)
[![codecov](https://codecov.io/github/NodeJSmith/hassette/graph/badge.svg?token=I3E5S2E3X8)](https://codecov.io/github/NodeJSmith/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

## Comparison to Other Frameworks

We have detailed comparisons in the docs for the two most popular frameworks. Open an issue or PR if you'd like additional comparisons!

- [AppDaemon Comparison](https://hassette.readthedocs.io/en/latest/comparisons/appdaemon.html)
- [Pyscript Comparison](https://hassette.readthedocs.io/en/latest/comparisons/pyscript.html)

## ๐Ÿ“– Examples

Check out the [`examples/`](https://github.com/NodeJSmith/hassette/tree/main/examples) directory for more complete examples:
- Based on AppDaemon's examples:
  - [Battery monitoring](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/battery.py)
  - [Presence detection](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/presence.py)
  - [Sensor notifications](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/sensor_notification.py)
- Cleaned up versions of my own apps:
  - [Office Button App](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/office_button_app.py)
  - [Laundry Room Lights](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/laundry_room_light.py)
- `docker-compose.yml` example: [docker-compose.yml](https://github.com/NodeJSmith/hassette/blob/main/examples/docker-compose.yml)
- `hassette.toml` example: [hassette.toml](https://github.com/NodeJSmith/hassette/blob/main/examples/config/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](https://github.com/users/NodeJSmith/projects/1) (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

[MIT](LICENSE)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "hassette",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.14,>=3.11",
    "maintainer_email": null,
    "keywords": "home-assistant, automation, async, typed, framework, smart-home, iot",
    "author": "Jessica",
    "author_email": "Jessica <12jessicasmith34@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/44/1d/bff7aaeffaee8ae9560aae35d3e27bba221267c70e7e3ca1fb0fd39cadad/hassette-0.14.0.tar.gz",
    "platform": null,
    "description": "# Hassette\n\n[![PyPI version](https://badge.fury.io/py/hassette.svg)](https://badge.fury.io/py/hassette)\n[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Documentation Status](https://readthedocs.org/projects/hassette/badge/?version=stable)](https://hassette.readthedocs.io/en/latest/?badge=stable)\n[![codecov](https://codecov.io/github/NodeJSmith/hassette/graph/badge.svg?token=I3E5S2E3X8)](https://codecov.io/github/NodeJSmith/hassette)\n\nA simple, modern, async-first Python framework for building Home Assistant automations.\n\nDocumentation: https://hassette.readthedocs.io\n\nWhy Hassette?\n-------------\n- \ud83c\udf1f **Modern developer experience** with typed APIs, Pydantic models, and IDE-friendly design\n- \u26a1 **Async-first architecture** designed for modern Python from the ground up\n- \ud83d\udd0d **Simple, transparent framework** with minimal magic and clear extension points\n- \ud83c\udfaf **Focused mission**: does one thing well \u2014 run user-defined apps that interact with Home Assistant\n\n## Comparison to Other Frameworks\n\nWe have detailed comparisons in the docs for the two most popular frameworks. Open an issue or PR if you'd like additional comparisons!\n\n- [AppDaemon Comparison](https://hassette.readthedocs.io/en/latest/comparisons/appdaemon.html)\n- [Pyscript Comparison](https://hassette.readthedocs.io/en/latest/comparisons/pyscript.html)\n\n## \ud83d\udcd6 Examples\n\nCheck out the [`examples/`](https://github.com/NodeJSmith/hassette/tree/main/examples) directory for more complete examples:\n- Based on AppDaemon's examples:\n  - [Battery monitoring](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/battery.py)\n  - [Presence detection](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/presence.py)\n  - [Sensor notifications](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/sensor_notification.py)\n- Cleaned up versions of my own apps:\n  - [Office Button App](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/office_button_app.py)\n  - [Laundry Room Lights](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/laundry_room_light.py)\n- `docker-compose.yml` example: [docker-compose.yml](https://github.com/NodeJSmith/hassette/blob/main/examples/docker-compose.yml)\n- `hassette.toml` example: [hassette.toml](https://github.com/NodeJSmith/hassette/blob/main/examples/config/hassette.toml)\n\n## \ud83d\udee3\ufe0f Status & Roadmap\n\nHassette is brand new and under active development. We follow semantic versioning and recommend pinning a minor version while the API stabilizes.\n\nHassette development is tracked in [this project](https://github.com/users/NodeJSmith/projects/1) (still a slight work-in-progress) - open an issue or PR if you'd like to contribute or provide feedback!\n\n### Current Focus Areas\n\n- \ud83d\udcda **Comprehensive documentation**\n- \ud83d\udd10 **Enhanced type safety**: Service calls/responses, additional state types\n- \ud83c\udfd7\ufe0f **Entity classes**: Include state data and service functionality (e.g. `LightEntity.turn_on()`)\n- \ud83d\udd04 **Enhanced error handling**: Better retry logic and error recovery\n- \ud83e\uddea **Testing improvements**:\n  - \ud83d\udcca More tests for core and utilities\n  - \ud83d\udee0\ufe0f Test fixtures and framework for user apps\n  - \ud83d\udeab No more manual state changes in HA Developer Tools for testing!\n\n## \ud83e\udd1d Contributing\n\nHassette is in active development and contributions are welcome! Whether you're:\n\n- \ud83d\udc1b Reporting bugs\n- \ud83d\udca1 Suggesting features\n- \ud83d\udcdd Improving documentation\n- \ud83d\udd27 Contributing code\n\nEarly feedback and contributions help shape the project's direction.\n\n## \ud83d\udcc4 License\n\n[MIT](LICENSE)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Hassette is a simple, modern, async-first Python framework for building Home Assistant automations.",
    "version": "0.14.0",
    "project_urls": {
        "Bug Reports": "https://github.com/nodejsmith/hassette/issues",
        "Changelog": "https://github.com/nodejsmith/hassette/blob/main/CHANGELOG.md",
        "Documentation": "https://github.com/nodejsmith/hassette#readme",
        "Homepage": "https://github.com/nodejsmith/hassette",
        "Repository": "https://github.com/nodejsmith/hassette"
    },
    "split_keywords": [
        "home-assistant",
        " automation",
        " async",
        " typed",
        " framework",
        " smart-home",
        " iot"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3d9c83d8a230a0f526cb745e9ec5b736b3538e0548adb7da175e9eff5008df82",
                "md5": "7ae5327239be4f29834c0e3ca7322748",
                "sha256": "205803f97a965dc6e1e03a0349f1aabc78e785d586eff7040b377549f4d564e5"
            },
            "downloads": -1,
            "filename": "hassette-0.14.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7ae5327239be4f29834c0e3ca7322748",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.14,>=3.11",
            "size": 138169,
            "upload_time": "2025-10-19T23:53:17",
            "upload_time_iso_8601": "2025-10-19T23:53:17.233138Z",
            "url": "https://files.pythonhosted.org/packages/3d/9c/83d8a230a0f526cb745e9ec5b736b3538e0548adb7da175e9eff5008df82/hassette-0.14.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "441dbff7aaeffaee8ae9560aae35d3e27bba221267c70e7e3ca1fb0fd39cadad",
                "md5": "2d98377d75e7adf3b17d02a344e99760",
                "sha256": "ab519319d26ac56a07330fe907903788b5b9230fa4a0278eecf1c7442d604dc8"
            },
            "downloads": -1,
            "filename": "hassette-0.14.0.tar.gz",
            "has_sig": false,
            "md5_digest": "2d98377d75e7adf3b17d02a344e99760",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.14,>=3.11",
            "size": 95446,
            "upload_time": "2025-10-19T23:53:18",
            "upload_time_iso_8601": "2025-10-19T23:53:18.965602Z",
            "url": "https://files.pythonhosted.org/packages/44/1d/bff7aaeffaee8ae9560aae35d3e27bba221267c70e7e3ca1fb0fd39cadad/hassette-0.14.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-19 23:53:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "nodejsmith",
    "github_project": "hassette",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "hassette"
}
        
Elapsed time: 3.63865s