Skip to content

nitobuendia/yaml-custom-components

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

YAML Components - Home-Assistant

ADR-010 has officially deprecated YAML support for integrations which interacts with devices on Home-Assistant.

This component is a response to this decision by providing resources and solutions to this polemic decision and it is open to anyone who wants to contribute to a temporary or long-term solution.

Contents of this Repository

The component is divided in the following contents:

Content: Articles and Argumentation

Folder: content/

This folder contains arguments in favour of YAML Configuration support and in the search of a long-term solution for the Home-Assistant community. Some of these posts are meant to be published in the community, others in Home-Assistant repositories and others are for internal consumption.

  • The reasons behind YAML deprecation (Published in the Community): Provides counterarguments to the reasons behind the YAML deprecation and why it is a negative result to do it.

  • Broken user flows (Published in the Community): Provides a comprehensive list of all the user flows and experiences that are broken due to the YAML deprecation. This is a compilation based on all the reasons mentioned on the post.

  • How to fix YAML support (WIP): Provides suggestions and alternatives to YAML deprecation to provide a good path forward without most of the negative consequences given in ADR-0010.

  • What to do after YAML deprecation (WIP): Provides a list of actions that both developers and users can take to fight against the deprecation, from very basic to very advanced.

Experiments: Showcase of Solutions and Alternatives

Folder: experiments/

This folder contains experiments that aim at finding a solution to the YAML problem. This is not code that should be implemented on your Home-Assistant, but rather showcases of fixes that would allow Home-Assistant to provide YAML support with minimal cost.

  • Roomba: downgraded version of Roomba core component with full explanations on how you can revert any component to its YAML version using custom_components.

  • PS4: first and minimal custom component that explains how to minimize cost of maintaining YAML by simply providing an Adapter that changes the data structure and delegates the implementation of the devices from async_setup_platform to async_setup_entry.

  • Hue: custom component that showcases how the UI workflow could be used to generate both YAML configuration and the UI configuration. This flow allows YAML power users to have the last word and easily copy/paste YAML into the files. The objective is to have a self-documenting UI to reduce the cost of maintenance for component owners, while providing full functionality to all users.

Custom Components: Core Components with YAML Support

Folder: custom_components/

This contains a folder of official core components, which has been modified to add YAML support.

As a developer, you can foster and solve this problem for many users. As a user, you can keep your YAML configuration for core components even after the support has been removed.

Contribute

Feel free to contribute by improving the article, creating or improving custom components or creating solutions / experiments to the YAML problem. You can also suggest your ideas and improvements on the Issues section.

If this work represents you, you can also support our voice on the Community, official GitHub repositories or on the Sponsor link above.

About

Home-Assistant core components with YAML support

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages