Light control allows controlling lights with various sensors and buttons.
Light control has two sides:
Home Assistant automations "tie" these sides together.
Trigger event can come from multiple sources:
Route of event is different depending on source but eventually all events become events in Home Assistant.
There is custom python script that is used to adjust lights. Script adds abstraction level to light adjustments. Behavior of script can be controlled with variables, such as "start brightness", "end brightness" and "transition time". Python script could be replaced with regular Home Assistant script.
Events have different types of predefined variables. This way each event can be easily configured to produce different type of light adjustment.
The actual light adjustment is conducted by Home Assistant trough build in integrations. As there is different types of lights, there is different types of integrations.