From detection to diagnosis — automatically.
Overview
Until now, Willow's industry-leading real-time analytics engine, Activate Technology, has been able to watch how your equipment operates and flag when something looks like it may be broken or failing. But detecting a possible fault is only half the story — confirming it has still meant inference, trend review, or sending a technician into the field just to verify what the system is recommending as a possible cause. Functional Testing closes that gap. When an insight is raised, Willow can now run targeted, automated tests directly against your equipment — for example, confirming whether a terminal unit damper is actually actuating — so you get a confirmed answer instead of an educated guess. It brings a routine part of the commissioning process into the platform, where it runs on demand from the Willow App or on a schedule you set.
Because the entire workflow lives in one place, there's no need to leave Willow, open your building's control system, and manually override points to check what's wrong. Pre-defined tests attach directly to recommendations, giving anyone a one-click way to run diagnostics — no controls expertise or BMS navigation required. And as you build trust in the results, tests can run automatically the moment an insight is raised, so you open an insight to find the diagnosis already done: either the root cause is identified, or a step has been ruled out and you can move on. This is the shift from fault detection to fault diagnosis.
The payoff shows up where it matters most — in the field and on the balance sheet. Verifying faults remotely means fewer unnecessary truck rolls, and when a technician does go out, they arrive with the right diagnosis, tools, and parts the first time. Time-to-resolution compresses from days of dispatch-investigate-report-re-dispatch into hours of insight-test-targeted-fix, which means shorter fault durations, less wasted energy, and fewer comfort complaints. At commissioning scale, digitally pre-screening a thousand-plus terminal units points your commissioning agent only at the ones that failed — turning what used to be an order-of-magnitude labor problem into a focused, efficient effort.
Users can create their own tests or customize existing tests in the Willow skills library. Let's take a deeper dive at getting started with creating, running, and reviewing tests.
Anatomy of a Functional Test
A functional test is actually a series of steps which are run. Each step has sub-steps which execute and report back an overall result which determines if the next step will continue. The steps are:
Pre-checks
Sequences
Diagnostics
Pre-Checks
Before any commands are sent to the equipment, Willow's test orchestrator evaluates a set of live-data checks to confirm that the test can produce a valid result. If conditions aren't right, Willow aborts the test before touching the BMS - no unnecessary overrides, no misleading results. Pre-checks are defined with a severity level which determines the behavior of whether the proceed to the sequences:
Severity levels
| Severity | Behavior |
|---|---|
| Fail | Aborts the test immediately. Display a clear message to the user explaining why (e.g., "Serving AHU is not Occupied. The AHU must be running to provide adequate duct pressure."). No commands are sent. |
| Warning | Proceeds with the test but surfaces a note in the composite report (e.g., supplemental points offline means the time series plot will be incomplete, but the pass/warning/fail verdict is still valid). |
Example pre-checks for a damper actuation test:
| Check | Severity | Why |
|---|---|---|
| VAV Occupied | Fail | Damper testing in Unoccupied mode doesn't reflect real operating conditions |
| AHU Enabled | Fail | No airflow supply means no airflow to measure, regardless of damper position |
| AHU Pressure Adequate | Fail | Insufficient duct pressure produces invalid airflow readings |
| Critical Points Online | Fail | Damper command, discharge airflow, and airflow setpoint must be reporting -- test cannot proceed without reliable data |
| Supplemental Points Online | Warning | AHU static pressure, static pressure setpoint, and VFD speed are used for time series context only. Missing them degrades the report but not the verdict |
After the pre-checks are complete, the test proceeds to the sequences.
Sequences
A user can add one or more sequences to the test. Using our damper actuation test example, there may be two sequences - 1) Fully Open Damper and 2) Fully Close Damper.
Sequences have the following parameters which are configurable:
| Parameter | Description |
|---|---|
| Wait Time | The duration to wait between the commands being sent and the evaluations being determined - Pass/Warning/Fail. |
| Stabilization Time | The duration to wait after the evaluations before the next sequence begins. This let's the equipment settle before the next command. |
Commands | The list of commands to execute simultaneously. |
Feedback Verification | An evaluation to check whether the commanded point successfully performed. Provides useful diagnostic information but does not impact overall sequence pass/warning/fail result. |
Success Criteria | An evaluation to check whether the equipment's behavior changed as a result of the command. This is generally checking an actual sensor - flow, pressure, temperature - for a change - to prove the intended result. This evaluates individual expressions for pass/warning/fail which determines the overall sequence result. |
Diagnostics
Diagnostics are evaluations done after the sequences are complete. They are an opportunity to examine the results of all sequences and provide precise reasoning for why the test did not pass and also recommendations for what to do next. Using oure damper actuation test example, the diagnostics can indicate whether there is an issue with the airflow sensor or the damper actuator based on the combination of the Feedback Verification and Success Criteria across both sequences.
Other important functionality
Functional tests are backed by a sophisticated set of command, execution, and safety guadrails to ensure proper evaluation while also not impact broader system behvior.
- While tests are running, Willow increases the polling frequency by bursting its reading of the present value of the points involved in the evaluations of the test. This helps provide a detailed picture of the equipment's behvaior during the test.
- After diagnostics are complete, Willow properly releases the points which were commanded back to their original states.
- While tests are running, Willow suppresses all other insights also being evaluated on the equipment so as not to raise false positives.
Running a Functional Test from an Insight
Willow allows users to integrate running functional tests directly into their workflows of reviewing and actioning insights. This allows users to focus on running tests when it matters and where it matters. On an insight page, there are often recommendations to verify equipment is behavior properly. Now, directly on the same page the list of available tests for that equipment allows users to perform that test directly from the page and navigate to the Tests tab to start the test.
After selecting Start Test, the test will begin and you can see the in-progress test in the same tab or the Functional Testing page.
Running an Ad-hoc Functional Test
Functional tests can also be run ad-hoc on one or more equipment as a batch. To start an ad-hoc set of functional tests first go to Functional Testing in the navigation menu where you can view a list of all previously run tests.
Select the Start New Test button and select the test you want to begin:
After selecting the test, you can choose which assets to execute the test on. Note that only the twins which have the appropriate points to properly perform the test will be presented as Available.
Lastly, confirm you want to proceed with starting the tests which will perform the supervisory commands on the selected assets:
Track the progress by selecting the test that is running from the Functional Testing page:
Comments
Please sign in to leave a comment.