A component will be loaded on start if a section (ie.
light:) for it exists in the config file. A component can also be loaded if another component is loaded that depends on it. When loading a component Home Assistant will check the following paths:
<config directory>/custom_components/<component name>
homeassistant/components/<component name>(built-in components)
Once loaded, a component will only be setup if all dependencies can be loaded and are able to setup. Keep an eye on the logs to see if your component could be loaded and initialized.
You can override a built-in component by having a component with the same name in your
config/custom_components folder. If the build-in component is inside a subfolder, take care to place your customization in a folder with the same name in
config/custom_components/*folder*. Note that overriding build-in components is not recommended and will probably break things!
Home Assistant will use the directory that contains your config file as the directory that holds your customizations. By default this is the
config folder in your current work directory. You can use a different folder by running Home Assistant with the –config argument:
python3 homeassistant --config /YOUR/CONFIG/PATH/.