- b_combo prefix 2 detection: reset (if fire active) vs watchman
- Added "reset" mode with proper state handling
- Continuous fire station handling (immediate FIRE, CLEAR on bus stop)
- Howe Follower effect - output mirrors incoming signal
- Round-robin detection improvements
- Per-station round tracking
- Predictive state logic - trigger states early when unambiguous
- V-stations: immediate state from prefix (5=FIRE, 6=CLEAR)
- Watchman: immediate trigger (always 1 round)
- General Alarm: immediate trigger (requires break glass + key turn)
- Round 2+: predictive fire/presignal/waterflow (resets are always 1 round)
- Interim summary - summarize stations that drop out mid-transmission
- Detects when station misses full rotation while others continue
- Applies full 5-round/1-round logic to interim summaries
-
chime_seqeffect for 4-bar xylophone chimes (E5, D5, C5, G4) - Pattern syntax: note names (E/D/C/G), * for all, space for rest, | for dividers
- Non-repeating melodies with auto-off on completion
- 14 doorbell melodies (Westminster, Turkey, Camptown, etc.)
- Split howe_panel.yaml from howe_decoder.yaml
- howe_panel.yaml includes howe_decoder.yaml (panel users get both)
- howe_decoder.yaml standalone for users without panel integration
- Clean separation of concerns
- Station database implemented in howe_stations.yaml
- ESPHome custom component (howe_stations) with YAML schema
- Per-station
continuousandtamperflags - Decoder integration with enriched logging
Station ID = digits AFTER prefix (e.g., "1-4-5" not "2-1-4-5") Prefix indicates MODE, not part of station identity.
Station Types & Prefix Mappings:
combo_5round = 1:watchman, 2:fire (5-round). Usually BJ stations.
combo_continuous = 1:fire (continuous), 2:watchman/reset. Usually B stations.
combo_presignal = 1:watchman, 2:presignal, 3:GA. Usually BJ stations.
fire_5round = 1/2:fire (5-round). Can be B or BJ stations.
fire_continuous = 1:fire (continuous). Usually B stations.
fire_presignal = 2:presignal, 3:GA. Can be B or BJ stations.
fire_v = 5:alarm, 6:reset (single round). Usually B stations (V133, etc).
waterflow = 3:waterflow (tamper=true by default). Usually B stations.
Round Count Logic (most modes):
- 5 rounds = ALARM
- 1 round = RESET
- 6 rounds = ALARM + RESET (reset while running)
Exceptions:
- Watchman: always 1 round (no alarm/reset distinction)
- V-stations (fire_v): always 1 round, prefix determines alarm (5) vs reset (6)
- Continuous stations (continuous=true): transmit continuously while active
- Immediate FIRE state on first round
- CLEAR state when bus stops (detected via interim summary)
- No round counting - presence = alarm, absence = clear
- Combo: prefix 2 becomes "reset" if fire was active, otherwise watchman
- Tamper detection (tamper=true, default for waterflow): 7+ rounds = TAMPER
- Mutually exclusive with continuous (can't be both)
- TAMPER clears when station stops transmitting
Presignal Behavior:
- Prefix 2 = presignal (early warning, limited response)
- Prefix 3 = general alarm (full evacuation)
- If both seen from same station, prefix 3 takes precedence
- OLED display integration - show active stations with round progress
- Howe display mode - scrollable list of recent incoming codes
- Switch display into "Howe mode" during transmission
- Show previous codes with their status
- Scroll through history
- Status indicator on display header
- Shorten "FireSeq" or rework first line to fit status
- Show system state: OK / TBL / ALM / WM / FIRE
- Priority: FIRE > ALM > TBL > WM > OK
- Maybe invert for alarm states?
- Home Assistant integration - expose stations as sensors with attributes
- Auto-discover stations as entities
- Track round_count, prefix, last_seen, status
- Enable automations on station events
- Alarm pulse output - trigger panel on Howe alarm
- PC817 optocoupler + 1N4148 diode for D-bus isolation
- TESTED: 400ms pulse required for Simplex 2001 alarm activation
- GPIO pulse when any station goes to FIRE/ALM/GENERAL_ALARM
- Steady 24V outputs for alarm/presignal level switching
- MIC2981 8-channel high-side driver installed
- GPIO22 (alarm), GPIO21 (presignal) active
- L298 H-bridge retained for SmartSync (polarity inversion, tight timing)
- Panel switches trigger 400ms pulse on turn_on
- Alarm and presignal switches auto-pulse when activated
- Works from both Howe decoder AND manual HA toggle
- Remote Ack output (GPIO4) - 400ms pulse
- Remote Reset output (GPIO26) - 2s pulse
- Trouble Reset output (GPIO2) - 750ms pulse after main reset
- GPIO2 used (held LOW at boot, safe for MIC2981)
- Oscillator-triggered Howe Follower workflow
- Oscillator start → trigger pulse output + switch to "Howe Follower" effect
- Code output follows incoming signal during transmission
- Transmission complete → determine final result (presignal/alarm)
- Switch code output back to previous effect (before Howe Follower)
- Trigger presignal or alarm output based on result
- Trouble output - TBD what counts as "trouble"
- Watchman-only stations? Supervisory?
1 = Watchman (BJ) / Fire (B-types, continuous)
2 = Fire (BJ) / Presignal / Watchman (B) / Reset (B, if fire active)
3 = General Alarm / Waterflow
5 = Alarm (V-stations only, single round)
6 = Reset (V-stations only, single round)
B = Howe-in-a-can with terminal blocks
- Usually continuous fire (no round wheel), but some are 5-round
- combo_continuous, fire_continuous, fire_5round, fire_presignal, fire_v, waterflow
BX = Howe-in-a-can with molex (Federal Signal era)
BJ = Horizontal mount with banana plug pins
- Usually 5-round capable (has round wheel)
- combo_5round, combo_presignal, fire_5round
Note: Physical type (B/BJ) doesn't strictly determine behavior. Use station type + continuous/tamper flags to configure actual behavior.
- 1-2-1-2: 1930s Phone Combo Station (Type B)
- 2-1-2: 1930s Round Combo Station (Type B)