Is there any information (no luck finding it yet) that discusses the differences between a platform and an add-on? Specifically using hass.io, which would I use to add support for a lighting control system that is not otherwise supported? There are libraries available for the system (in node.js and in Python, I think) and I would need to be able to send lighting commands as well as receive updates when the lights are changed externally to hass.io.
I’ve really read everything I could find on HA and hass.io, and I’ve been writing software my entire life, but I’m still not clear on how to approach this project.
What you want to achieve probably is a platform. Like the control for Philips Hue or MQTT.
For that the Developers section is where you have to start. To make it more clear: hass.io is sort of a bundled OS with Home Assistant preinstalled. It’s easy to set up, but has some limitations when it come to developing support for new hardware. For that it’s easier to work with a raw Home Assitant instance, running in a VM or similar. Essentially a dedicated development environment without the limitations hass.io brings with it.
One more thing: a add-on for hass.io only works in conjuction with hass.io. If you plan to add support for something every Home Assistant user should be able to use, then develop it that way. Anything that works with Home Assistant also works with hass.io.