I have been working on a new integration for the Rotel RSP-1570 processor and I think that it is in a state where it might be possible to contribute it to the HA distribution. However, I have a couple of questions.
Firstly, what is the protocol regarding using brand logos. I’ve pulled the Rotel logo from their web site and added it into source/images/supported_brands ready for contribution with my documentation. However, I’m concerned about copyright/trademarks etc. Apparently names can’t be copyrighted but a logo that combines a name with other artistic or design elements can be subject to copyright as an artistic work. Is there any guidance on this?
Secondly, I’m wondering whether it should be contributed in its current form. My integration is called rotel_rsp1570 and is specifically for the Rotel RSP-1570 processor. I don’t see any other integrations that are named so specifically. It would be possible to refactor the underlying library to handle other similar devices but unfortunately Rotel changed their RS232 protocol in such a way that my integration would probably only ever be re-useable for devices of a similar vintage. Plus I don’t have access to any other similar devices so the probability is quite low that it will ever happen unless I find a collaborator. Therefore I deliberately didn’t use a general platform name for it like “Rotel” but I wasn’t sure whether I’m breaking some standard.
On the other hand, the very first time I looked on this community I found another person interested in the same device so perhaps it isn’t as niche as I thought?
Is it worth contributing or should I just make it available as a custom component from my own GitHub repository?
Finally, I wasn’t sure whether this question belonged in “Third Party Integrations” or “Development”. Hopefully I made the right choice?
Anyway, I must say that I’ve enjoyed this little project and I’m really impressed with Home Assistant!
I’m far from being an expert in this area but my suggestion would be to initially release it as a custom component. There’s no vetting process involved so your handiwork becomes immediately available to others who can test-drive it and provide you with valuable feedback.
Once you’re satisfied it runs well, you may wish to submit it as an official component. Home Assistant’s developer community will examine it and recommend modifications to ensure it complies with Home Assistant’s architectural and coding standards.For example, if any part of your component is communicating directly, via RS-232, to the Rotel device, you’ll be required to move all of that code out and into a separate module hosted on PyPi. (you’ve already done it)
Whatever you choose to do, good luck and thanks for contributing to Home Assistant.
EDIT
I overlooked to mention that you did a great job documenting the component.
No, we are only using the logo to show the brand. We are not saying that they support or endorse us. Also, we are not using the logo to sell something nor abusing the reputation of the brand owner.
rotel is fine.
Sure, it’s as a lot of people are not comfortable to run custom_component from other people.
Thanks to you both for the information and the encouragement. Given your input I think that I will try to submit this as an official component soon. I’m keen to see what the developers think of it and I’ll fix anything that they don’t like.
FYI, I found a Rotel logo on commons.wikimedia.org that claims to be freely reusable so I plan to use that to be double sure that there are no copyright issues.
There are several advantages to releasing it as a custom_component:
The community can use it NOW. This also means you get feedback and bugfixes NOW. When submitting it as an official component, you’ll likely spend a few days just fixing the “style” errors (one space after a comma, indent more with multi line statements, use a constant for this and that). Then you’ll spend days or weeks waiting for someone to look at it and approve it. Most likely they’ll have something else you need to change as well. Then it has to be approved again. I’ve submitted very simple PRs that sat for weeks before being closed saying “we merged this other thing instead that does the same thing”.
if you wish to enhance your component, you are once again on the HASS time table. So these enhancements take time to make it through the process before they can be used.
A Custom Component is more accessible to other programmers. They can fiddle with it easier and submit PRs back to you more easily. With an official component, a fellow user would need to have an entire checkout of HASS in order to alter your code and try a bugfix. Custom Components are just a directory of files that’s very easy to tinker with.
The benefit of an official component is that a user doesn’t have to install anything extra to get it working. And you can use config flow. That’s pretty much it.