I’m bumping this since I am now in a position to reproduce consistently. I hope this helps:
Summary
When multiple automation programs are active at the same time and triggered by Pulse VWC conditions, They are executed in a serialized (blocking) manner.
One automation program runs repeatedly until it reaches its OFF threshold before the second program is allowed to run, even though both are eligible at the same time. This delays one program’s P1 until the previous program’s P1 has been entirely completed.
Automation Setup
Program A — Ghost Fish
-
Active Time: 09:00–12:00
-
Trigger ON: VWC ≤ 35%
-
Trigger OFF: VWC ≥ 44%
-
Cooldown: 10 minutes
Stations:
- S1: 10s
- S2: 0s
- S3: 120s
- S4: 10s
Execution pattern:
S1 → S3 → S4
Program B — Grave Flower
-
Active Time: 09:00–12:00
-
Trigger ON: VWC ≤ 35%
-
Trigger OFF: VWC ≥ 44%
-
Cooldown: 10 minutes
Stations:
- S1: 10s
- S2: 90s
- S3: 0s
- S4: 10s
Execution pattern:
S1 → S2 → S4
Observed Behavior
At 09:00, both automation programs are active and below the trigger threshold.
Observed behavior:
- One automation program starts
- It irrigates → cooldown → re-checks
- If still below OFF threshold, it repeats
- This continues for multiple cycles
- Only after reaching OFF threshold does the second program begin
This results in one zone being irrigated repeatedly while the other remains dry.
Log Evidence (09:00–21:00 only)
Station Mapping (OpenSprinkler base-0 → configured stations)
-
0 = S1 → Pre-irrigation flush (fresh nutrient solution, does NOT go to plants)
-
1 = S2 → Irrigates Grave Flower
-
2 = S3 → Irrigates Ghost Fish
-
3 = S4 → Post-irrigation flush (same valve as S1, does NOT go to plants)
Block 1 — Grave Flower repeatedly irrigated
Apr 19 09:30:46 — S1 (flush)
Apr 19 09:32:21 — S2 (Grave Flower irrigation)
Apr 19 09:32:36 — S4 (flush)
Apr 19 09:34:31 — S1 (flush)
Apr 19 09:36:06 — S2 (Grave Flower irrigation)
Apr 19 09:36:21 — S4 (flush)
Apr 19 09:38:16 — S1 (flush)
Apr 19 09:39:51 — S2 (Grave Flower irrigation)
Apr 19 09:40:06 — S4 (flush)
Apr 19 09:42:01 — S1 (flush)
Apr 19 09:43:36 — S2 (Grave Flower irrigation)
Apr 19 09:43:51 — S4 (flush)
Observation:
Grave Flower is irrigated repeatedly across multiple cycles while Ghost Fish does not run.
Block 2 — Ghost Fish only starts after
Apr 19 09:44:55 — S1 (flush)
Apr 19 09:46:20 — S3 (Ghost Fish irrigation)
Apr 19 09:46:35 — S4 (flush)
Apr 19 09:48:30 — S1 (flush)
Apr 19 09:49:55 — S3 (Ghost Fish irrigation)
Apr 19 09:50:10 — S4 (flush)
Apr 19 09:52:05 — S1 (flush)
Apr 19 09:53:30 — S3 (Ghost Fish irrigation)
Apr 19 09:53:45 — S4 (flush)
Key Observation
- Irrigation is grouped by program, not shared
- One zone (Grave Flower) receives repeated irrigation cycles
- The other zone (Ghost Fish) receives no irrigation during that time
- Programs are not alternating during cooldown windows
Desired Behavior
Automation programs should operate independently based on their own cooldown timers and trigger conditions.
Desired execution model
-
Program A runs → enters cooldown
-
Program B runs → enters cooldown
-
After cooldown:
- if program still meets trigger condition runs again
-
Repeat until each program reaches OFF threshold
Example of desired log pattern
S1 → S2 → S4 (Grave Flower)
S1 → S3 → S4 (Ghost Fish)
-- cooldown --
S1 → S2 → S4 (Grave Flower)
S1 → S3 → S4 (Ghost Fish)