Home

Awesome

Please :star: this repo if you find it useful

Notice

The component and platforms in this repository are not meant to be used by a user, but as a "blueprint" that custom component developers can build upon, to make more awesome stuff.

HAVE FUN! 😎

Why?

This is simple, by having custom_components look (README + structure) the same it is easier for developers to help each other and for users to start using them.

If you are a developer and you want to add things to this "blueprint" that you think more developers will have use for, please open a PR to add it :)

What?

This repository is an extension and addition to the integration_blueprint repository. It is regularly updated with all the edits from parent repository and makes it easy to apply new edits to your project. This way you can easily keep it up to date.

This repository contains multiple files, here is a overview:

FilePurpose Documentation
.devcontainer.jsonUsed for development/testing with Visual Studio Code.Documentation
.github/ISSUE_TEMPLATE/*.ymlTemplates for the issue trackerDocumentation
.vscode/tasks.jsonTasks for the devcontainer.Documentation
custom_components/integration_blueprint/*Integration files, this is where everything happens.Documentation
tests/*Integration unit tests.
CONTRIBUTING.mdGuidelines on how to contribute.Documentation
LICENSEThe license file for the project.Documentation
README.mdThe file you are reading now, should contain info about the integration, installation and configuration instructions.Documentation
requirements.txtPython packages used for development/lint/testing this integration.Documentation

How?

After these steps, your repository will developing on a own branch. But in parallel there will be this blueprint repository, new changes in which you can always apply with a couple of simple commands:

./scripts/update
git merge blueprint/dev

Then:

  1. Rename all instances of the integration_blueprint to custom_components/<your_integration_domain> (e.g. custom_components/awesome_integration).
  2. Rename all instances of the Integration Blueprint to <Your Integration Name> (e.g. Awesome Integration).

If you need to work on the python library in parallel of this integration (sampleclient in this example) there are different options. The following one seems easy to implement:

Next steps

These are some next steps you may want to look into: