Investigation of 2026-09-05, on a residential WaterFurnace Premier heat pump with an original-generation IntelliZone panel and two ecobee thermostats. Four service visits had replaced parts and adjusted settings without resolving the complaint. This records what was measured, what it established, and what it ruled out.
The software built to do the measuring is sprint 4.54 (docs/userstories/sprint-4.54-the-thermostats-own-record-read-over-ecobees-web-client-flow.md); the board's observed state is the appendix beside it. This document is the reasoning.
1. The complaint
The first floor ran far colder than its setpoint while the second floor could never reach its own, and the compressor ran nearly continuously. Workarounds in place before the investigation: the second-floor thermostat held in continuous fan to keep its damper open, and blower speed raised by a technician. Prior repairs: zone damper motors replaced; the complaint returned each time.
2. Equipment
| Heat pump | WaterFurnace NDV038A111CTR, S/N 100802944, nominal 3 ton, R410A |
| Electrical | 208/230 V 1φ; compressor RLA 16.6 / LRA 82.0; blower 1/2 HP |
| Unit control | WaterFurnace Premier logic board |
| Compressor diagnostics | Emerson Comfort Alert, two-stage |
| Zone panel | Premier IntelliZone, board 1086-83-100, 4 zones, 2 commissioned |
| Zone firmware | EPROM ZONE CONTROL SOFTWARE 17P519A01 REV D, 1500301D.PRG, 04/06/2005 |
| Dampers | ZONEFIRST ZDB1214, 12"x14", 24 VAC, power closed / spring open, body label date code 1102 |
| Thermostats | two ecobee — Home (zone 2, second floor), Office (zone 1, first floor) |
Zone map, from the operator: zone 1 = first floor = Office, zone 2 = second floor = Home. A damper body is hand-labelled 2ND FLOOR / 2ND ZONE.
3. What the data established
Source: the ecobee runtime report, five-minute intervals, 2026-08-29 to 2026-09-05, both thermostats — 2,304 intervals each, 192 hours. Measured by infrastructure-ecobee, not by reading rows.
| Home (2nd floor) | Office (1st floor) | |
|---|---|---|
| Cool stage 1 | 139.7 h (73 % of the week) | 0.1 h |
| Cool stage 2 | 96.2 h (50 %) | 0.0 h |
| Fan | 142.2 h | 84.6 h |
| Longest unbroken cooling | 298 intervals — 24.8 h | 2 intervals |
| Below its own setpoint | 3.2 h (1.7 %) | 170.6 h (89 %) |
| Degree-minutes below setpoint | 155 | 63,866 |
The cross-feed measurement — the one the tool exists for:
Home ran the compressor while Office called nothing for **1,844 intervals (153.7 h)**. Office was below its own setpoint in **1,844 of those 1,844 — 100 %**, averaging **6.2 °F below** its own setpoint throughout.
There is no five-minute window in the week where the second floor ran the equipment and the first floor was not already colder than it had asked to be. That is not a tendency; it is every interval.
Three things follow directly. The zones are not separated. The first floor's thermostat is barely a participant — it asked for cooling for six minutes in a week, because it never gets warm enough to ask. And the second floor cannot satisfy, running half the week at second stage and once for 24.8 hours unbroken.
4. Fault B — a cooling call no thermostat made
Observed at the zone panel with both thermostats off: zone 2's Y1 input LED lit, along with G. G is explained — an ecobee drives G for continuous fan even in System Mode Off. Y1 has no legitimate explanation; a thermostat set to Off does not call for cooling.
Established by substitution: removing the second-floor ecobee entirely stopped the phantom operation. Not the panel, not the cable — the thermostat.
The published mechanism fits: an IntelliZone supplying 27–29 VAC instead of 24 pushes past the 30 VAC rating of the thermostat's protection device, which leaks and asserts a call the thermostat never made. ecobee moved to a 40 VAC part in SI units built after March 2013 for this reason. (source)
It also explains the history's shape. It began when the ecobees went in; the original WaterFurnace thermostats tolerated the same supply. And it is invisible to a technician with a meter at the thermostat, because a leak through a protection device does not look like a short.
5. Fault A — a damper that cannot stay closed
Sequence of observations, each correcting the last:
1. Both damper blocks are wired COM + CLOSE with OPEN empty — two wires on a three-wire block. Initially read as a wiring error. 2. The label settles it: "Power Closed — Spring Open." Two wires is correct for this actuator, and every damper's default, de-energized state is open. 3. The first-floor actuator is warm — so the panel is energizing it. Command side is fine. 4. It does close the blade. "Will not close" was wrong. 5. It buzzes continuously while held closed, then stops, then starts again.
That last pattern is a thermal protector cycling: the motor holds by stalling against the stop, overheats, drops out — and the instant it drops out, the spring opens the blade. The damper closes; it cannot stay closed. A five-minute interval needs only part of that to register cooling, which is how a damper observed closing correctly still produces cross-feed in 1,844 of 1,844 intervals.
Blade friction is implicated independently. With zone 2's wire disconnected the second-floor blade had to be moved by hand before airflow returned. On a spring-open damper with no power, the spring should have opened it unaided. It could not overcome the blade's own friction. Both dampers were then confirmed open with no power, so mounting orientation is correct and inversion is ruled out.
The damper bodies carry date code 1102 while the motors are recent. The likely history is that prior service replaced motors onto original blades, bearings and seals — which is why new motors did not fix it and then failed themselves.
6. The unifying hypothesis, not yet measured
If control voltage is really 27–29 V, a 24 VAC damper motor held in stall runs about 15 % over voltage in its worst duty. It overheats, cycles its protector, and eventually dies. One condition would then produce both faults:
- overvoltage → the thermostat's protection device leaks → phantom call
- overvoltage → the damper motor overheats in stall → drops out → first floor cross-fed
An ordinary cause is available: the nameplate reads 208/230 V, so the control transformer has dual primary taps. Landed on the 208 tap with a 240 V supply, the secondary reads 24 x 240/208 = 27.7 V — inside the documented failure band, tolerated by the old thermostats, intolerable to the new ones, and wrong since installation.
This is a hypothesis with a named measurement, not a finding. It stands or falls on R → C at the panel.
7. Ruled out, with the evidence that ruled it out
| Ruled out | By what |
|---|---|
| Panel inventing calls | Zone 1's inputs dark while zone 2's were lit, only zone 2's status LED on; and removing the thermostat stopped it |
| Thermostats miscounting or misreporting | Both reported sensibly across 2,304 intervals; Office asked for almost nothing, Home asked constantly and correctly |
| The basement supply stealing the air | Closing it did not restore second-floor airflow. It is original, deliberate, and keeps the basement from freezing and growing mould — it stays |
| Actuators mounted inverted | Both blades open with no power |
| A compressor fault | Comfort Alert TRIP and ALERT both dark, POWER lit |
| Blower speed as a cause | It is a technician's compensation for a starved zone, not the origin; the fault predates it |
| Dampers as parts | Replaced already, twice over, with no effect — because the bodies were never replaced |
8. Actions taken 2026-09-05
- Zone 2's Y1 lifted at the panel; phantom call stopped.
- Second-floor damper blade freed by hand; airflow to the second floor returned.
- Both ecobees removed; with the second-floor unit fully removed the phantom operation
ceased.
- Zone panel RESET pressed and breakers cycled. This cleared any latched fault,
including the Comfort Alert flash code — future codes must be read before the next reset.
- System left with both dampers spring-open: both floors fed, low static pressure, no
phantom call, no stalled motor. Stable, not final.
9. Open measurements
1. R → C at the zone panel — 24, or 27–29? This is the one that decides section 6. 2. L1 → L2 at the unit — 208 or 240? 3. The control transformer's primary tap — which terminal the lead is on. 4. Bare-shaft test, both dampers. Actuator off, turn the shaft by hand: smooth, or stiff? Then part-open the blade and release — the spring must return it fully open unaided. 5. First-floor damper's minimum-position stop. Never photographed. The second floor's reads at or past the closed end. 6. SW3-2 on the unit's Premier logic board. The panel's own sticker requires it in the "off"/"zone" position with a zone panel fitted. Photographed twice, too dark to read. 7. Comfort Alert flash code, if the blower fault returns — count the yellow LED.
10. Repair sequence
1. Voltage readings (items 1–3). If the transformer is on the wrong tap, correct it first — everything downstream is a consequence. 2. Bare-shaft test both dampers. Clean and free whatever fails it: blade edge seals go hard and tacky with age and glue the blade shut; shaft bushings pack with grit. Dry PTFE lubricant, never oil or grease — oil in a duct collects dust and returns the fault worse. 3. Crank-arm set screws tight on the shafts; minimum-position stops set deliberately and recorded. 4. Reassemble, energize, and watch each blade actually travel its full range in both directions. 5. Thermostats: only after the supply voltage is known. If it reads 28 V, new thermostats of any brand will eventually do the same thing. 6. Pull a fresh runtime report and re-run infrastructure-ecobee. The number to watch is the cross-feed: 1,844 of 1,844, 100 %. If the repair is real, it collapses. Same measurement, directly comparable.
11. Corrections made during the investigation
Recorded because the sequence is the method, and a case file that hides its wrong turns teaches nothing.
- ROPG was named as the ecobee auth path; ecobee's Auth0 rejects it. Authorization-code
with PKCE is the real flow.
- The phantom call was called unsupported after the first photographs, correctly on that
evidence — zone 1's inputs were dark and zone 2 had a genuine 79-against-74 demand. New evidence (both thermostats off, Y1 lit) reinstated it.
- The basement supply was described as a dump zone added by a technician. It is original
and deliberate. The operator corrected this.
- The first-floor damper was said not to close. It closes; it cannot stay closed.
- A bespoke 0600 credential file was specified before checking the registry;
infrastructure-secrets already exists for it.
- Sprint 4.54 was numbered by hand rather than through
tools-artifact-scaffold, which
allocates from the git-tracked registry.
12. What the manual decodes
Source, cited not copied: WaterFurnace, IntelliZone Installation Manual, IM1958, https://www.waterfurnace.com/literature/intellizone/im1958.pdf. Companion specification catalogue SP1958. Only the answers this workspace needs are reproduced here; the manual remains the source of truth. (An earlier attempt fetched IM1678EW by mistake — that is IntelliZone2 • 24V, a 2017 Modbus product, and none of its tables apply to this board.)
SW1–SW4, per zone (p.13). Switch 1 selects Comfort or Economy. Switches 2 and 3 set the zone's share of the load: 2 on = 25 %, 3 on = 45 %, both on = 70 %, and — the line that matters — "If both DIP 2 and 3 are off, the zone is inactive and dampers will be closed." The manual also states the zone percentages "should always add up to over 100%." My photographic reading was all three sliders OFF on every zone, flagged uncertain. If that reading is right, both commissioned zones are configured inactive at 0 %, and this is a third fault underneath the two found by measurement. Unresolved: needs a square-on photograph of SW1 and SW2.
Economy mode is worth quoting, because it describes air movement without a compressor call: "A Y1 call from a zone in the economy mode position will open the damper to the zone and call for the fan. It will use the return air from the remaining zones to condition this zone."
SW6, 8 position (p.14), decoded against the observed positions:
| # | Function (OFF / ON) | Observed | Reads as |
|---|---|---|---|
| 1 | Test / Normal speed | ON | Normal — correct |
| 2 | Central zone / Multizone | ON | Multizone — correct |
| 3 | No RPM / RPM | OFF | No RPM — correct for a PSC blower |
| 4 | Dehumid / Normal | ON | — |
| 5 | Single-speed / Dual capacity | ON | Dual capacity |
| 6 | staging | OFF | see table |
| 7 | staging | OFF | see table |
| 8 | Dampers spring (2-wire) / IntelliZone (3-wire) | OFF | 2-wire spring — correct for the ZDB1214 |
Staging configuration (p.14): Normal = 6 ON / 7 ON · Quicker = OFF / ON · Faster = ON / OFF · Faster with Timer = OFF / OFF. The observed pair is OFF/OFF, so this system is set to the most aggressive option the panel offers — the one the manual says "should be reserved for the most demanding and aggressive situations." It force-upstages after a 15-minute continuous call, which on a zone that can never satisfy means it stays upstaged.
Damper drive (p.14), which retires the "wired wrong" reading entirely. "'2-wire' dampers typically use a 'stall' motor to close and a spring to open. In this position, the opening and closing damper relays are continually energized to power close the dampers for maximum close off pressure." So COM + CLOSE with OPEN empty is the documented hookup, and a continuously energized, humming stall motor is normal operation. The failure is the thermal cycling that follows, not the buzz.
SW5, 12 position (p.15). "Only five DIP switches can be in the ON position. The first ON switch determines the continuous fan operation; the second, the low speed; the third, the medium-low speed; the fourth, the medium-high speed and the fifth, the high speed." Observed 2, 3, 5, 7, 8 — exactly five, so the setting is structurally valid.
SW8, a jumper, not a switch (p.15). "This is to match the IntelliZone with the thermostats being used. It should be on the center post and 'AT' when a TA32E12 thermostat is used. When using a 24 volt AC thermostat, it should be on the center post and '24V'." The ecobees are 24 VAC. If this jumper was never moved when they replaced the original thermostats, the panel's zone inputs are matched to the wrong thermostat type — a plainer explanation for a call asserted with the thermostat off than a leaking protection device, and one that fits the same timeline. Position never observed.
Transformer (p.10). The IntelliZone carries its own 24 VA transformer. "For 208 volt operation, the red and blue transformer wires must be switched." This names the specific leads behind the overvoltage hypothesis in §6.
Unit control board, required settings when a zone panel is fitted (p.5). DIP 3-2 OFF — the panel's own warning sticker. DIP 2-8 ON, continuous 'L' signal. DIP 3-3 NO RPM. None of the three has been verified; the board was photographed twice, too dark to read.
The flashing Status LED (p.12). "A slowly flashing 'fault' light during unit operation indicates a thermostat wiring problem. A rapidly flashing fault light indicates an airflow fault." Those are this investigation's two faults, told apart by flash rate. The photographs establish that it flashes but not how fast — dark at 01:32:46 and through the video, green at 01:33:09. A video long enough to time the rate is owed, and it must be taken before the next power cycle, since the reset of 2026-09-05 cleared whatever was latched.
Indicator table (p.12). The panel's unit-side outputs decode directly: heating first stage is Y1 on, G on, O off; cooling energizes O. The observed unit strip — Y1, Y2, O and G lit, W dark — is second-stage cooling, which agrees with the thermostat record.
`P11` is not in the manual. The modular jack beside P10 appears in no figure or terminal description. Unresolved.
13. Reproducing the numbers
cargo run -q -p infrastructure-ecobee -- <home-report>.csv <office-report>.csv
Pure functions over the report text — no clock, no network, no database — so any measurement here can be re-derived from the same files indefinitely. Seven tests, each naming the mutation it kills.