This is held in homeassistant/generated/integrations.json where it states config_flow: false. There is also a config_flows.py in this directory where it lists integrations with flows.
Agreed, after looking there are a number of issues with your code but none of these stop the config flow starting (maybe lack of strings.json). It is these genrated files that need updating by running:
python -m script.hassfest --action=generate
When you do this however, it will error that your manifest.json is not ordered correctly and you have an invalid strings.json file.
Manifest.json should be ordered domain, name, all other keys alphabetical
{
"domain": "lutron",
"name": "Lutron",
"codeowners": ["@cdheiser"],
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/lutron",
"iot_class": "local_polling",
"loggers": ["pylutron"],
"requirements": ["pylutron==0.2.8"]
}
Strings.json needs to have entries for your flow.
{
"config": {
"flow_title": "Lutron Setup",
"step": {
"user": {
"title": "Lutron Setup",
"description": "Please enter the details",
"data": {
"ip_address": "IP Address",
"username": "Username",
"password": "Secret Key"
}
}
},
"abort": {
"already_configured": "Device is already configured"
}
}
}
I am sure this used to be in the docs and not sure if running in dev container if there is a task to run or you are supposed to update manually. I have not developed a core integration only custom ones where you do not need to update generated files.
EDIT: You also have an error in your config_flow.py with duplicate imports of DOMAIN constant. You should not import it from homeassistant.const
EDIT2: Was having issues getting dev env to run in vscode. How I have, you just run it in the terminal inside the dev container.