executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
eol-resistor-calculatorCalculates and validates end-of-line (EOL, SEOL, DEOL, TEOL) resistor loops for intrusion alarm panels (Honeywell, DSC, Paradox, Bosch) with wire gauge drop and state tables. Trigger phrases: eol resistor, deol wiring, alarm zone resistor, calculate end of line, double eol tamper.
Independent GitHub snapshot · Automated classification · Original documentation governs
Accurately size, configure, and troubleshoot Single (SEOL), Double (DEOL), and Triple (TEOL) end-of-line resistor loops across major security panel architectures with copper wire drop compensation and tamper state discrimination.
Activate this skill when:
Do NOT use this skill when:
The Far-End Placement Axiom (Strict Anti-Panel Stacking):
The 4-State Double-EOL (DEOL) Truth Table:
Copper Wire Resistance Compensation Formula:
Panel Reference Resistor Standards Matrix:
ADC Voltage Divider Acceptance Windows:
| Anti-Pattern | Manifestation in Code/Workflow | Mandatory Production Counter-Rule |
|---|---|---|
| Panel-Terminal Resistor Stacking | Crimping EOL resistors into the screw terminals on the panel PCB. | Install resistors exclusively inside the remote sensor housing. |
| Vendor Value Cross-Contamination | Putting 2.0k Honeywell resistors onto a DSC panel requiring 5.6k. | Verify panel model and enforce manufacturer-specific resistance ratings. |
| DEOL Series/Parallel Inversion | Swapping series and parallel resistors on an alarm PIR contact. | Wire $R_{ALARM}$ in parallel with NC alarm switch; wire $R_{EOL}$ in series with loop. |
| Neglecting Wire Drop on Long Runs | Ignoring 40+ $\Omega$ wire resistance on a 300-meter warehouse fence zone. | Calculate loop resistance $2 \times D \times \rho$ and verify against panel budget. |
| Twist-and-Tape Resistor Splices | Twisting resistor leads by hand and wrapping with electrical tape. | Use soldered heat-shrink sleeves or grease-filled B-connectors/crimps. |
| Fire/Burg Supervised Mix-up | Applying burglar DEOL tamper logic to 2-wire latching fire zones. | Fire loops strictly require Normally Open (NO) contacts with SEOL supervision. |
| Unshielded AC Parallel Run | Running 22/4 unshielded alarm cable in parallel with 230V mains. | Maintain 300mm physical separation or use twisted shielded pair (STP). |
| Strapping Out Trouble Zones | Advising a user to twist zone wires together to clear a trouble condition. | Diagnose root cause (open wire, bad contact, corroded resistor) methodically. |
| Confusing NO and NC Contacts | Treating a magnetic reed switch (NC) like an exit request button (NO). | Verify sensor contact behavior in quiescent, non-alarm states. |
| Unrecorded Commissioning Values | Leaving an install without recording measured DC resistance values. | Deliver an audit log of measured loop ohms across Normal, Alarm, and Tamper. |
(+) ZONE TERMINAL (Panel)
│
▼ [Core 1: Field Wire]
┌───────┴────────────────────────┐
│ SENSOR HOUSING (Far End) │
│ │
│ TAMPER SWITCH (NC) │
│ ┌────[ / ]────┐ │
│ │ │ │
│ ▼ ▼ │
│ ( ) ( ) │
│ │ │ │
│ │ ALARM RELAY (NC) │
│ │ ┌────[ / ]────┐ │
│ │ │ │ │
│ │ │ R_ALARM │ │
│ │ └───[5.6k]────┘ │
│ │ │ │
│ ▼ ▼ │
│ R_EOL [5.6k] │ │
│ │ │ │
└─────┼─────────────┼────────────┘
│ │
└─────────────┘
▲
│ [Core 2: Field Wire]
(─) COMMON TERMINAL (Panel)
State Resistance:
• Secure: 5.6k Ω
• Alarm: 11.2k Ω (Alarm contact opens, forcing current through R_ALARM)
• Tamper: 0 Ω (Short circuit) or ∞ Ω (Cut wire or Tamper contact opens)
def calculate_loop_parameters(
panel_eol_nominal: float,
panel_tolerance_pct: float,
one_way_distance_m: float,
wire_gauge_awg: int = 22,
deol_mode: bool = True
) -> dict:
# Ohms per meter for solid annealed copper conductors
RESISTANCE_PER_M = {18: 0.0209, 20: 0.0333, 22: 0.0530, 24: 0.0842}
rho = RESISTANCE_PER_M.get(wire_gauge_awg, 0.0530)
wire_loop_ohms = 2.0 * one_way_distance_m * rho
normal_resistance = panel_eol_nominal + wire_loop_ohms
alarm_resistance = (panel_eol_nominal * 2.0 if deol_mode else float('inf')) + wire_loop_ohms
tol_window = panel_eol_nominal * (panel_tolerance_pct / 100.0)
normal_min = panel_eol_nominal - tol_window
normal_max = panel_eol_nominal + tol_window
is_normal_acceptable = (normal_min <= normal_resistance <= normal_max)
return {
"wire_loop_resistance_ohms": round(wire_loop_ohms, 2),
"measured_normal_expected": round(normal_resistance, 2),
"measured_alarm_expected": round(alarm_resistance, 2),
"panel_acceptance_window": (round(normal_min, 2), round(normal_max, 2)),
"is_acceptable": is_normal_acceptable,
"recommendation": "OK" if is_normal_acceptable else "Wire resistance exceeds panel tolerance! Upsize to 20 AWG or 18 AWG."
}
1. Disconnect zone loop wires from panel terminal Z1 and COM.
2. Set digital multimeter to 20k Ω DC resistance range.
3. Clip probes to black and red loop wires.
4. Read resistance:
- Reading = 0 Ω: Direct short on cable or tamper circuit pinched.
- Reading = ~5.6k Ω: Loop is secure and healthy.
- Reading = ~11.2k Ω: Sensor is currently tripped (door open, motion active).
- Reading = O.L (∞ Ω): Broken conductor, disconnected terminal, or open tamper switch.
5. Reconnect to panel and verify terminal voltage across Z1 and COM:
- Normal secure: 2.2V - 2.8V DC (on 5V pullup).
- Alarm: 3.5V - 4.1V DC.
- Tamper/Short: 0.0V DC.
- Cut/Open: 5.0V DC.
Before emitting any alarm wiring advice, schematic, or resistor calculation:
"To wire an alarm sensor, just twist the resistor onto the zone screw terminals on the panel board. A 1k resistor usually works for all panels. If you get a zone fault, just bypass the zone or short the wires together." Problems: Fatal panel-terminal stacking, generic wrong resistor value, advises bypassing safety supervision, ignores tamper discrimination.
For a DSC PowerSeries Neo panel using a Double-EOL (DEOL) PIR detector over an 80m run of 22 AWG cable:
- Resistor Placement: Install two 5.6k $\Omega$ resistors (5% tolerance, 0.25W) strictly inside the PIR housing at the far end of the run.
- Wiring Topology:
- Connect Tamper switch in series with the loop.
- Connect first 5.6k $\Omega$ resistor ($R_{EOL}$) in series with the loop.
- Connect second 5.6k $\Omega$ resistor ($R_{ALARM}$) in parallel across the NC Alarm relay contacts.
- Wire Resistance Drop: 80m of 22 AWG adds $2 \times 80 \times 0.053 = 8.48\ \Omega$. Total secure loop resistance will be $5,608.5\ \Omega$, well within DSC's $\pm 10%$ acceptance window ($5,040\ \Omega$ to $6,160\ \Omega$).
- Multimeter Diagnostic Verification:
- Secure: $5.61\text{k}\ \Omega$.
- Walk-test (Alarm): $11.21\text{k}\ \Omega$.
- Sensor cover removed (Tamper): $\infty\ \Omega$ (Open).
- Crushed wire (Short): $8.5\ \Omega$ (Panel registers Tamper Short).