[Custom Integration] Windmill.dev for Home Assistant – run and monitor scripts and flows
I have released a new custom integration that connects Home Assistant to Windmill.
Windmill is an open-source workflow and script automation platform. This integration lets Home Assistant monitor a Windmill instance and run explicitly selected scripts and flows.
The integration supports both self-hosted Windmill installations and Windmill Cloud.
What it can do
Run scripts and flows
Selected Windmill scripts and flows can be started using the windmill.run action.
Arguments are validated against the runnable’s input schema before the request is sent to Windmill.
Parameterless scripts and flows can optionally be exposed as Home Assistant button entities.
Monitor jobs
The integration provides entities for:
- running jobs
- queued jobs
- last successful run
- last failed run
- instance and database status
- active workers
- worker groups and version drift
- available Windmill updates on self-hosted installations
Selected scripts and flows can also be exposed as individual Home Assistant devices showing:
- last run
- last status
- last duration
- next scheduled run
- whether the runnable is currently running
Use Windmill results in automations
A run event entity emits:
successfailurecanceled
The event includes attributes such as the job ID, script or flow path, duration and whether Home Assistant started the job.
Example:
triggers:
- trigger: state
entity_id: event.example_workspace_run
attribute: event_type
to: failure
conditions:
- condition: template
value_template: >
{{ trigger.to_state.attributes.path ==
'u/example/daily_cleanup' }}
actions:
- action: notify.notify
data:
message: >
Windmill job
{{ trigger.to_state.attributes.job_id }}
failed.
Security model
The integration deliberately does not import or expose an entire Windmill workspace.
Only scripts and flows explicitly selected in the integration options can be executed from Home Assistant, with a maximum of 25 selections per configuration entry.
Tokens are sent only in the authorization header and are excluded from logs, entity states and downloaded diagnostics.
Missing permissions disable only the affected feature instead of preventing the complete integration from loading.
Installation
The integration can currently be installed through HACS as a custom repository.
- Open HACS.
- Go to Integrations.
- Open the menu and select Custom repositories.
- Add:
https://github.com/dprinz/ha-windmill-dev
- Select the Integration category.
- Search for Windmill and install it.
- Restart Home Assistant.
- Add the Windmill integration under Settings → Devices & services.
Repository:
https://github.com/dprinz/ha-windmill-dev
Current status
The current version is 0.3.0.
It has been tested with:
- self-hosted Windmill Community Edition
- Windmill Cloud
- normal and restricted user tokens
- script and flow execution
- job cancellation
- run observation
- Home Assistant restart and reload scenarios
The project currently has more than 400 automated tests with over 95% branch coverage. HACS validation, hassfest, linting, formatting and strict type checking run in CI.
The integration is considered a public beta because the number of external installations is still small.
Feedback wanted
I would particularly appreciate feedback from users with:
- different Windmill versions
- Windmill Enterprise
- larger or busier workspaces
- restricted tokens
- multiple worker groups
- Windmill Cloud workspaces
- scripts or flows with more complex input schemas
Please report bugs and feature requests through GitHub Issues. General questions and experiences are also welcome in this thread.