Project - Basement Control (Geo & Furnace)
up:: La Finka - Projects MOC
tags:: #lafinka #project #geo
skills:: #smarthome #electrical
lead:: @Niko
status:: #status/idea
start:: #y/2025/fall
estimated completion:: #y/2025/fall
Project - Overview
Complete basement geo control as a single DIN-based system with an analog, offline-first core and optional network augmentation. Any thermostat heat call will run the main loop pump, the active zone pump, and the blower. Network adds viewing state and remote override plus per-pump power measurement.
Insert_Image_Or_Gif
Purpose
Provide a tidy, serviceable control panel that preserves dumb reliability (no network required) while giving us visibility and optional remote control. Consolidates legacy switches (existing furnace/air-handler safety logic (Honeywell L4064 fan/limit) ) and wiring into a clear, labeled enclosure. Includes temperature logging supply/return temps and simple scheduling
Objectives
- Analog core: 24 VAC call logic, contactors for 3 pumps, blower control selector, master power, LEDs State, Manual Switches
- Main Loop run with schedule / timer / temperature; Implement on-device hysteresis with min-on/min-off, freeze-protect, and a short anti-stagnation run.
- Q:: Can we setup a call when hot water tap is opened?
- Thermostat heat call ORs to run main loop + Calling zone bump
- Blower follows Auto/Off/On selector
- Temperature Reading: loop supply and return temperatures with DS18B20 on Shelly Plus Add-on.
- Network layer (optional): view states, read temps, measure power on all 3 pumps, safe remote override.
- Provide a simple local UI for manual start/stop and status.
Background Info
- Current: main loop pump UPS15-58FC currenlty "always on."; two air-handler zones each use a Grundfos UP15-42F and blower governed by a Honeywell L4064 fan/limit; a motor control box handles the zone pump starts.
- Redesign provides HOA: Hand (always), Off, Auto (on any call)
- Requirement: offline-first; internet enhances dashboards/alerts only.
- Legacy 3-way toggles exist (Heat Source: Geo/Off/Oil; Blower: Geo/Off/On). Oil branch is parked.
- Hardware on hand: Shelly Plus 1PM and Shelly Plus Add-on (3× temp inputs supported).
Current Hardware
- Main Pump: UPS15-58FC (3 speed)
- 0.55-0.75A (60-87W)
- Heater Pumps: (2) UP15-42F
- 0.74 A (85W)
Project - Details
Scope
- Adds temperature sensing on main loop (supply/return), RC-snubbered switching of main pump, local hysteresis + schedule logic, basic logging.
- Adds status & remote switch of air handler (Pump & Blower)
- Power Monitoring of pumps
MLP - Main Line Pump
Z1P - Zone 1 Pump
Z2P - Zone 2 Pump
HOA* = Hand/Off/Auto
In (Analog Core):
Single DIN enclosure with 2 × 12" rails; 120 VAC branch protection;
Main Power Switch
3 × AC-3 Contactors (MLP, Z1P, Z2P)
24 VAC control transformer + secondary fusing
Ladder logic so any thermostat W call drives Main Loop + calling zone pump;
Blower selector (Geo/Off/On) that asserts G only when desired;
Heat Source selector (Geo/Off/Oil with Oil parked);
HOA for Main Loop;
panel LEDs for calls and pump run;
RC snubbers/MOVs across pump loads;
Class 2 vs mains separation.
In (Network Augment, non-blocking):
Shelly Pro 3EM to meter all three pumps
Shelly Pro 3 to
- expose S1–S3 input states for Z1/Z2 calls (+ optional Blower/Main), and
- provide safe remote add-call via its three dry relays driving interposing 24 VAC coils; optional DS18B20 temps via a separate Shelly if desired.
Out: Cloud dependence; modifying internal safety devices (e.g., L4064 fan/limit); Oil branch reactivation.
Shelly Pro picks (monitor + optional control):
-
Power metering: Shelly Pro 3EM with 3 CTs to monitor the three pump circuits in one DIN unit; LAN/Wi-Fi/MQTT/HTTP; 60-day on-device history at 1-min resolution; note it has no internal relay. Shelly USA+1
-
Dry-contact overrides: Shelly Pro 3 (3 potential-free relays) to parallel the 24 VAC coil feeds for Main Loop, Z1, Z2 if remote override is desired; keeps analog ladder authoritative. Shelly Knowledge Base
-
(Optional) If you only care to override the Main Loop and still use Pro 3EM for metering, you can add the Pro 3EM Switch Add-On to drive a contactor; for multiple coils, Pro 3 is cleaner. Shelly Knowledge Base+1
Milestones
Major tasks or milestones within the project timeline.
A — Schematic Freeze (Analog-first)
- Finalize ladder: W bus OR, MLP-HOA, Blower selector strategy, Heat-Source selector (Oil parked), and relay-sense for WZ1/WZ2 → Pro 3 S-inputs.
B — DIN Panel Layout & Parts
- Lock enclosure/rails/duct; select AC-3 contactors (24 VAC coils) + aux, MCB, XFMR+fuse, terminals, operators/LEDs; confirm Pro 3EM CT rating/landing; assign Pro 3 S1=Z1, S2=Z2, S3=Blower or MLP-RUN. Shelly Knowledge Base
C — Procurement & Bench Build
- Order all DIN gear and labels; bench-wire rails; verify coil voltages, selector logic, LED indications, and Class 2 segregation
- Wire rails; test W-sense relays → Pro 3 inputs; prove selector truth table; verify aux-RUN contacts; label Class-2 vs mains.
D — Field Wiring & Termination
- Land pump feeds; land W/C; park Oil; route G per selector; add snubbers/MOVs; torque/label.
E — Analog Commissioning - Testing
- Zone 1 call ⇒ Z1P+MLP;
- Zone 2 call ⇒ Z2P + <LP;
- blower selector Geo/Off/On;
- Main Loop HOA Hand/Off/Auto;
- fail-safe with network absent
F — Network Bring-Up
- Install Pro 3EM CTs on the three pump hots; verify live V/A/W and 60-day history;
- install Pro 3;
- confirm S-inputs reflect WZ1/WZ2 and that relays can “add-call” via 24 VAC interposers without backfeeding. Shelly Knowledge Base
G — Dashboard
- Build a LAN dashboard (Shelly UI/HTTP/MQTT/HA) showing: Z1/Z2 call state, MLP/Z1P/Z2P RUN, and three power channels with trends; capture screenshots.
Tasks
DIN Enclosure & Rails
- Enclosure: Polycarbonate NEMA 4X, ~16×14×7 in with 2 stacked DIN rails (top: power; bottom: control), door for 22 mm operators and LEDs. - DIN rails: two × 12″ rails inside single enclosure.
One-Line Power (ASCII)
[Service 120VAC] → Main Power Switch (lockable) → 1P MCB (pump branch)
├─→ Contactor MLP (Main Loop Pump, 2P AC-3) → TB-LOAD-MLP → Main Loop Pump ├─→ Contactor Z1P (Zone1 Pump, 2P AC-3) → TB-LOAD-Z1P → Zone1 UP15-42F ├─→ Contactor Z2P (Zone2 Pump, 2P AC-3) → TB-LOAD-Z2P → Zone2 UP15-42F └─→ 24VAC Control XFMR (40–60VA) → TB-CTRL-24V (W bus, C common) PE/Neutral bussed to each load; MOV/RC snubber across each pump load (L–N).
Control (24 VAC) — Ladder (ASCII)
Notes on blower
- Preferred: keep L4064 fan/limit to gate the blower; in Blower=GEO, you assert G on MAIN_CALL so the handler has permission, but L4064 still delays fan until coil/plenum is warm. In ON, G is forced regardless of call. In OFF, G is inhibited.
Network Augmentation (no control dependency)
- Power measurement: 1× Shelly EM (2-CT) on Z1P+Z2P branch hots, plus 1× Shelly Pro 1PM on MLP branch; or 2× EM to cover all three if you want identical meters.
- Status: Use each contactor’s aux NO into a small input bridge (e.g., Shelly Pro 2 or ESP32 optos) to view RUN states; or map from EM power > threshold.
- Temperatures (optional): One Shelly Plus Add-on with DS18B20 on main supply/return.
- Remote override: Add a Shelly Pro 1 (dry) to drive a 24 VAC slim relay whose NO contact parallels KOR NO into the MLP coil path, and optional parallels for Z1P/Z2P. Remote never interrupts the analog path; it only “adds a call.”
Front Panel (door operators, 22 mm)
- Main Power Switch (lockable). - Heat Source Selector (Geo/Off/Oil, with Oil parked). - Blower Selector (Geo/Off/On). - Main Loop HOA (Hand/Off/Auto). - LEDs: Call Z1, Call Z2, Main Pump ON, Z1 Pump ON, Z2 Pump ON. - Engraved legends matching internal terminal IDs.
Project - Resources
Budget
TBD (Phase 1 expected low — primarily enclosure/consumables; Phase 2 adds sensors/metering).
Materials & Tools (DIN bill of materials — analog core)
Network layer (optional now or later)
- [ ]
Materials & Tools
- Low-voltage enclosure, DIN-style base or relay sockets, labels [tasktype:: acq]
- M5 ESP32 dev board + 5 V PSU (wall wart) [tasktype:: acq]
- 2-channel non-invasive CT energy monitor (for two 120 VAC zone pumps) [tasktype:: acq]
- Low-voltage cable (18/2) for W/C taps and dry-contact runs; ferrules; heat-shrink [tasktype:: acq]
Equipment
- UPS15-58FC main circulation pump (existing)
- UP15-42F zone pumps ×2 (existing)
- Honeywell L4064 fan/limit (existing)
References / Examples:
- Shelly Plus 1PM knowledge base and wiring examples (inductive load + RC snubber)
- Shelly Plus Add-on pinout and DS18B20 wiring
- Grundfos UPS15-58FC and UP15-42F nameplate specs for sanity checks
- Relay-sense pattern for 24 VAC calls (W–C coil, dry-contact to logic)
- ESPHome
binary_sensor+ GPIO pull-ups example - CT-based runtime/watts correlation methods
Questions / Unknowns:
- Preferred set points: T_on and T_off targets for return (or supply) hysteresis?
- Freeze-protect threshold to force ON (e.g., 40 °F return)?
- Anti-stagnation run window acceptable at 03:00 for 5 min?
- Exact surface box location and receptacle re-feed path; any clearance constraints?
- Third sensor in Phase 1: keep spare vs. add ambient or well-return now?
- Phase 2: CT-based metering vs. using an additional 1PM as “meter-only” on each zone pump branch?
- Confirm W and C terminal availability in the motor control box per zone - Do we want any summer lockout to also mask W at the relay coils (Phase 3 idea) - Preferred dashboard: minimal ESPHome page vs. HA panel - Exact CT model preference (split-core vs. solid-core; 20–50 A range) - Any need to export data to the La Finka intranet
Documentation and Media
Photos and Videos:
Add install photos of surface box, probe mounting, wiring before/after.
Documents:
Add wiring sketch, terminal map, and exported Shelly settings (JSON/script).
Technologies
- Shelly Plus 1PM (local web UI, schedules, scripting)
- Shelly Plus Add-on (DS18B20 1-Wire)
- DS18B20 probes
- RC snubber (R-C in series across load)
- 24 VAC coil relays (call sensing)
- M5 ESP32 with ESPHome (LAN-only)
- 2-channel CT energy monitor (zone pumps)
- Optional: Home Assistant/MQTT (local)
One-Page Terminal Map
Power & Loads
| Block | Terminal | Purpose | Field Wire To |
|---|---|---|---|
| TB-LINE | L | 120 VAC line in | Branch feed |
| N | Neutral in | Branch neutral | |
| PE | Equipment ground | Bond/EGC | |
| TB-LOAD-MLP | L_out | Main Loop Pump hot (from MLP contactor) | MLP hot |
| N_out | Main Loop Pump neutral | MLP neutral | |
| PE | Ground | MLP chassis | |
| TB-LOAD-Z1P | L_out | Zone 1 Pump hot (from Z1P contactor) | Z1 pump hot |
| N_out | Zone 1 Pump neutral | Z1 pump neutral | |
| PE | Ground | Z1 chassis | |
| TB-LOAD-Z2P | L_out | Zone 2 Pump hot (from Z2P contactor) | Z2 pump hot |
| N_out | Zone 2 Pump neutral | Z2 pump neutral | |
| PE | Ground | Z2 chassis |
24 VAC Control (Class 2)
| Block | Terminal | Purpose | Field Wire To |
|---|---|---|---|
| TB-CTRL-24V | W | 24 VAC hot from transformer (fused) | Thermostat common hot bus |
| C | 24 VAC common | Thermostat common return | |
| WZ1 | Zone 1 call return from stat | From TSTAT-Z1 W | |
| WZ2 | Zone 2 call return from stat | From TSTAT-Z2 W | |
| G_out | Blower “G” output (per selector) | Air handlers G input | |
| TB-OIL | W_OIL | Parked “Oil” heat source lead | No connection (label “Not in use”) |
Coils & Interlocks
| Block | Terminal | Purpose | Notes |
|---|---|---|---|
| TB-COILS | MLP_A1 | Main Loop contactor coil | Driven by KOR NO in AUTO or HOA in HAND |
| MLP_A2 | Main Loop contactor coil return | To C | |
| Z1P_A1 | Zone 1 contactor coil | Driven by RZ1 NO when WZ1 active | |
| Z1P_A2 | Zone 1 coil return | To C | |
| Z2P_A1 | Zone 2 contactor coil | Driven by RZ2 NO when WZ2 active | |
| Z2P_A2 | Zone 2 coil return | To C | |
| TB-AUX | MLP_RUN_NO | Aux NO run status | Pair with COM |
| MLP_RUN_COM | Common for MLP aux | — | |
| Z1P_RUN_NO | Aux NO run status | Pair with COM | |
| Z1P_RUN_COM | Common for Z1P aux | — | |
| Z2P_RUN_NO | Aux NO run status | Pair with COM | |
| Z2P_RUN_COM | Common for Z2P aux | — |
Network Augment (Shelly Pro)
| Block | Terminal | Purpose | Field Wire To |
|---|---|---|---|
| TB-NET (Pro 3 inputs) | S1 | Z1 call state input | From RZ1 NO via Pro 3 L bridge |
| S2 | Z2 call state input | From RZ2 NO via Pro 3 L bridge | |
| S3 | Blower permissive (G) or MLP_RUN | From selector G output or MLP aux NO | |
| L / N | Pro 3 supply | Panel L/N | |
| 3EM CTs | CT1 | Measure MLP branch hot | Arrow → load |
| CT2 | Measure Z1P branch hot | Arrow → load | |
| CT3 | Measure Z2P branch hot | Arrow → load |
Operators (door-mounted, 22 mm)
| Device | Positions | Terminations |
|---|---|---|
| Main Power Switch-Disconnect | On/Off (lockable) | Line in / Line out to MCB |
| Heat Source Selector | GEO / OFF / OIL | W→W_GEO / open / W→W_OIL (parked) |
| Blower Selector | GEO / OFF / ON | MAIN_CALL→G / open / W→G |
| MLP HOA | HAND / OFF / AUTO | C→MLP_A1 / open / KOR NO→MLP_A1 |
Indicator LEDs
| LED | Terminations | Meaning |
|---|---|---|
| Z1 CALL | WZ1↔C (24 VAC) | Thermostat Z1 is calling heat |
| Z2 CALL | WZ2↔C (24 VAC) | Thermostat Z2 is calling heat |
| MAIN ON | MLP aux NO→W / C | Main loop pump energized |
| Z1 ON | Z1P aux NO→W / C | Zone 1 pump energized |
| Z2 ON | Z2P aux NO→W / C | Zone 2 pump energized |
Collaboration and Participation
How to Get Involved
Electrical helper for install day; photographer to document probes and wiring; reviewer to validate acceptance tests and capture baseline logs. Volunteers welcome to shadow for Phase 2 sensing add-ons.
Created: 250929-21:51
Updated: 251024-10:49