diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..a83d776 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: DigiLive diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index ed5bcf4..d1d9d70 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -45,7 +45,7 @@ via an official social media account, or acting as an appointed representative a ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible -for enforcement at . All complaints will be reviewed and investigated promptly and fairly. +for enforcement. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the reporter's privacy and security of any incident. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 54c7a7f..9c288fc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,4 @@ -# Contributing to Mushroom Strategy +# Contributing to this project First off, thanks for taking the time to contribute! @@ -10,53 +10,61 @@ Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. -> And if you like the project, but just don't have time to contribute, that's fine. +> And if you like the project but just don't have time to contribute, that's fine. > There are other easy ways to support the project and show your appreciation, which we would also be thrilled about: > - Star the project > - Tweet about it -> - Refer this project in your project's readme +> - Refer this project at your project's readme > - Mention the project at local meetups and tell your friends/colleagues +> - Sponsor the project at GitHub Sponsors ## Table of Contents - [Code of Conduct](#code-of-conduct) - [I Have a Question](#i-have-a-question) - [I Want To Contribute](#i-want-to-contribute) - - [Reporting Bugs](#reporting-bugs) - - [Suggesting Enhancements](#suggesting-enhancements) - - [Code Contribution](#code-contribution) + - [Reporting Bugs](#reporting-bugs) + - [Suggesting Enhancements](#suggesting-enhancements) + - [Code Contribution](#code-contribution) - [Style Guides](#style-guides) - - [Code Style](#code-style) - - [Commit Messages](#commit-messages) + - [Code Style](#code-style) + - [Commit Messages](#commit-messages) + +--- ## Code of Conduct -This project and everyone participating in it is governed by -the [Mushroom Strategy Code of Conduct](CODE_OF_CONDUCT.md). -By participating, you are expected to uphold this code. Please report unacceptable behavior to . +This project and everyone participating in it is governed by the [Code of Conduct](CODE_OF_CONDUCT.md). +By participating, you are expected to uphold this code. Please report unacceptable behavior to a project leader. + +--- ## I Have a Question -> If you want to ask a question, we assume that you have read the [README](README.md) file or the -> available [Documentation](https://github.com/AalianKhan/mushroom-strategy/wiki). +> [!TIP] +> Before you ask a question, we assume that you have read the [README](README.md) file or the +> available [Documentation](../../wiki). -Before you ask a question, it is best to search for -existing [Issues](https://github.com/AalianKhan/mushroom-strategy/issues) that might help you. -In case you have found a suitable issue and still need clarification, you can write your question in this issue. +Before you ask a question, it is best to search for existing [discussions](../../discussions) or [Issues](../../issues) +that might +help you. +In case you have found a suitable topic and still need clarification, you can address your question in that topic. It is also advisable to search the internet for answers first. If you then still feel the need to ask a question and need clarification, we recommend the following: -- Open an [Issue](https://github.com/AalianKhan/mushroom-strategy/issues/new/choose). +- Open a new [discussion](../../discussions/new/choose) or [issue](../../issues/new/choose). - Provide as much context as you can about what you're running into. - Provide project and platform versions (nodejs, npm, etc), depending on what seems relevant. We will then take care of the issue as soon as possible. +--- + ## I Want To Contribute -> ### Legal Notice -> +> ![Important] +> Legal Notice: > When contributing to this project, you must agree that you have authored 100% of the content, that you have the > necessary rights to the content, and that the content you contribute may be provided under the project license. @@ -64,40 +72,38 @@ We will then take care of the issue as soon as possible. #### Before Submitting a Bug Report -A good bug report shouldn't leave others needing to chase you up for more information. -Therefore, we ask you to investigate carefully, collect information, and describe the issue in detail in your report. +A good bug report shouldn't leave others needing to chase you up for more information. +Therefore, we ask you to investigate carefully, collect information, and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible. - Make sure that you are using the latest version. -- Determine if your bug is really a bug and not an error on your side, e.g. using incompatible environment - components/versions (Make sure that you have read - the [documentation](https://github.com/AalianKhan/mushroom-strategy/wiki). +- Determine if your bug is really a bug and not an error on your side, e.g., using incompatible environment + components/versions (Make sure that you have read the [documentation](../../wiki). If you are looking for support, you might want to check [this section](#i-have-a-question)). - To see if other users have experienced (and potentially already solved) the same issue you are having, check if there - is not already a bug report existing for your bug or error in - the [bug tracker](https://github.com/AalianKhan/mushroom-strategy/issues?q=label%3Abug). + is not already a bug report existing for your bug or error in the [bug tracker](../../issues?q=label%3Abug). - Also make sure to search the internet (including Stack Overflow) to see if users outside the GitHub community have discussed the issue. - Collect information about the bug: - - Stack trace (Traceback). - - OS, Platform and Version (Windows, Linux, macOS, x86, ARM). - - Version of the interpreter, compiler, SDK, runtime environment, package manager, depending on what seems relevant. - - Possibly your input and the output. - - Can you reliably reproduce the issue? And can you also reproduce it with older versions? + - Stack trace (Traceback). + - OS, Platform and Version (Windows, Linux, macOS, x86, ARM). + - Version of the interpreter, compiler, SDK, runtime environment, package manager, depending on what seems relevant. + - Possibly your input and the output. + - Can you reliably reproduce the issue? And can you also reproduce it with older versions? #### How Do I Submit a Good Bug Report? +> [!CAUTION] > You must never report security related issues, vulnerabilities, or bugs including sensitive information to the issue -> tracker, or elsewhere in public. -> Instead, sensitive bugs must be sent by email to . +> tracker, or elsewhere in public. +> Instead, sensitive bugs must be sent by email to a project leader. We use GitHub issues to track bugs and errors. If you run into an issue with the project: -- Open an [Issue](https://github.com/AalianKhan/mushroom-strategy/issues/new/choose). +- Open an [issue](../../issues/new/choose). - Explain the behavior you would expect and the actual behavior. - Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to - recreate the issue on their own. - This usually includes your code. + recreate the issue on their own. This usually includes your code. For good bug reports, you should isolate the problem and create a reduced test case. - Provide the information you collected in the previous section. @@ -114,41 +120,39 @@ Once it's filed: ### Suggesting Enhancements This section guides you through submitting an enhancement suggestion for Mushroom Strategy, **including completely new -features and minor improvements to existing functionality**. +features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions. #### Before Submitting an Enhancement - Make sure that you are using the latest version. -- Read the [documentation](https://github.com/DigiLive/mushroom-strategy/wiki) carefully and find out if the - functionality is already covered, maybe by an individual configuration. -- Perform a [search](https://github.com/AalianKhan/mushroom-strategy/issues) to see if the enhancement has already been - suggested. +- Read the [documentation](../../wiki) carefully and find out if the functionality is already covered, maybe by an + individual + configuration. +- Search the [issue tracker](../../issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. -- Find out whether your idea fits with the scope and aims of the project. - It's up to you to make a strong case to convince the project's developers of the merits of this feature. +- Find out whether your idea fits with the scope and aims of the project. + It's up to you convince the developers of this feature's merits with a well-reasoned proposal. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library. #### How Do I Submit a Good Enhancement Suggestion? -Enhancement suggestions are tracked as [GitHub issues](https://github.com/AalianKhan/mushroom-strategy/issues). +Enhancement suggestions are tracked as [GitHub issues](../../issues). - Use a **clear and descriptive title** for the issue to identify the suggestion. - Provide a **step-by-step description of the suggested enhancement** in as many details as possible. -- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. - At this point you can also tell which alternatives do not work for you. +- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. + At this point, you can also tell which alternatives do not work for you. - You may want to **include screenshots and animated GIFs** which help you demonstrate the steps or point out the part which the suggestion is related to. - You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, - and [this tool](https://github.com/colinkeenan/silentcast) on Linux. -- **Explain why this enhancement would be useful** to most Mushroom Strategy users. +- **Explain why this enhancement would be useful** to most Mushroom Strategy users. You may also want to point out the other projects that solved it better and which could serve as inspiration. ### Code Contribution -You can contribute to this project by following the _fork -> clone -> edit -> pull request_ workflow of GitHub. +You can contribute to this project by following the _fork → clone → edit → pull request_ workflow of GitHub. #### Prevent changes to the distribution directory @@ -157,14 +161,14 @@ As a help, you can configure your local git repository to ignore this directory. ```shell git update-index --skip-worktree ./dist/ -git update-index --skip-worktree ./dist/mushroom-strategy.js +git update-index --skip-worktree ./dist/name-of-the-file-to-ignore.js ``` To revert above, run the following commands: ```shell git update-index --no-skip-worktree ./dist/ -git update-index --skip-worktree ./dist/mushroom-strategy.js +git update-index --skip-worktree ./dist/name-of-the-file-to-ignore.js ``` ##### Additional method @@ -195,7 +199,8 @@ git update-index --assume-unchanged ./dist/ ### Code Style -All files must be properly formatted according to the settings in file [.editorconfig](./.editorconfig). +All files are required to adhere to the formatting configurations specified within the [.editorconfig](.editorconfig) +file, should it be present. ### Commit Messages diff --git a/LICENSE b/LICENSE index a6b2d4f..31b9a09 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,29 @@ -MIT License +BSD 3-Clause License -Copyright (c) 2023 Aalian Khan +Copyright (c) 2025, Ferry Cools +All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md index e27bf47..82f1dc3 100644 --- a/README.md +++ b/README.md @@ -17,49 +17,45 @@ ## What is the Mushroom Dashboard Strategy? -Mushroom Dashboard Strategy provides a strategy for Home Assistant to automatically generate a dashboard using Mushroom -cards. +Mushroom Dashboard Strategy provides a strategy for Home Assistant to automatically generate a dashboard +using [Mushroom][mushroomUrl] cards. -It generates cards for your Home Assistants entities and areas, divided over several views. -Besides a Home view from where you can enter a subview of your areas, a separate view for lights, fans and other domains -are generated for easy access to your entities. +Dashboard cards are generated for your Home Assistant's entities, devices and areas, divided over several views. +Starting at the Home view, you can enter an area subview. +For easy access, separate views are generated for entities which belong to specific domains. ### Features -- 🛠 Automatically create dashboard with three lines of yaml. +- 🛠 Automatically create a dashboard with three lines of YAML. - 😍 Built-in Views for device-specific controls. - 🎨 Many options to customize to fit your needs. +- 📈 [Mini graph][miniGraphUrl] cards for sensor entities. > [!TIP] -> If you like this package, please star the [project at GitHub](https://github.com/AalianKhan/mushroom-strategy)! 🌟 +> If you like this package, please star the [project at GitHub][repositoryUrl]! ## Getting started The strategy is easily installable from [HACS][hacsUrl] (Home Assistant Community Store). -Please visit [Installation Guide](https://github.com/AalianKhan/mushroom-strategy/wiki/#installation) at our Wiki. +Please visit [Installation Guide][installationUrl] at our Wiki. ## Need some help? -Visit the [Discussions](https://github.com/AalianKhan/mushroom-strategy/discussions) page or the [Wiki](https://github.com/AalianKhan/mushroom-strategy/wiki). +Visit the [Discussions][discussionsUrl] page or +the [Wiki][wikiUrl]. ## Have an idea or want to report a bug? Make sure your idea or bug isn't discussed already in our Discussions or Issues! -Visit the [issues](https://github.com/AalianKhan/mushroom-strategy/issues/new/choose) page. +Visit the [issues][issuesUrl] page. - -## Contributors +## Collaborators * [DigiLive](https://github.com/DigiLive) [![Sponsor DigiLive][sponsorBadge]](https://github.com/sponsors/DigiLive) -* [Johan Frick](https://github.com/johanfrick) - -## Credits - -* The cards used are from [Mushroom][mushroomUrl] and [Mini graph card][miniGraphUrl]. -* Took inspiration from [Balloob battery strategy][balloobBatteryUrl]. +* [Aalian Khan](https://github.com/AalianKhan) @@ -67,16 +63,26 @@ Visit the [issues](https://github.com/AalianKhan/mushroom-strategy/issues/new/ch [sponsorBadge]: https://img.shields.io/badge/Sponsor_him-%E2%9D%A4-%23db61a2.svg?&logo=github&color=%23fe8e86 -[releaseBadge]: https://img.shields.io/badge/Release-v2.2.0-blue +[releaseBadge]: https://img.shields.io/badge/Release-v2.3.0-alpha.1-blue + + + +[repositoryUrl]: https://github.com/DigiLive/mushroom-strategy + +[releaseUrl]: https://github.com/DigiLive/mushroom-strategy/releases/tag/v2.3.0-alpha.1 + +[issuesUrl]: https://github.com/DigiLive/mushroom-strategy/issues + +[discussionsUrl]: https://github.com/DigiLive/mushroom-strategy/discussions + +[wikiUrl]: https://github.com/DigiLive/mushroom-strategy/wiki + +[installationUrl]: https://github.com/DigiLive/mushroom-strategy/wiki#installation [hacsUrl]: https://hacs.xyz -[releaseUrl]: https://github.com/AalianKhan/mushroom-strategy/releases/tag/v2.2.0 - [mushroomUrl]: https://github.com/piitaya/lovelace-mushroom [miniGraphUrl]: https://github.com/kalkih/mini-graph-card - -[balloobBatteryUrl]: https://gist.github.com/balloob/4a70c83287ddba4e9085cb578ffb161f