Archived source flow
Technical notes
Local branch priority
The loop samples four buttons and a float input, then follows the first matching LOW branch. The first button changes LED1 only when the cached level changes; the later buttons drive indicator branches with blocking waits.
What the active code does
Button2 and Button3 compare millis() with a shared timestamp plus 5000 or 3000, then clear their indicators. These are not reliably button-relative delays. Button4, the float branch and InterruptFunction() clear three indicator LEDs.
Unfinished hardware logic
Relay and solenoid pins are initialized, while their intended operating actions are commented out. GPIO2 is configured first as an interrupt input and later as a solenoid output. A cached input value is also used as a pin number in one read. The source does not establish working BLE, emergency-stop or safe pump control.