Skip to content

FireDetector

Overview

Generic fire detection sensor covering smoke, heat/thermal, flame, combustion, manual call points, and suppression water-flow. Parallel to IntrusionDetector: a zone that reports fire conditions carries this function. A single device may carry both IntrusionDetector and FireDetector when the same physical zone can report either (e.g. panel zones whose reaction is configured in the panel), so the fire actions are prefixed (Fire...) to avoid colliding with the intrusion action shortcuts on the same Thing.

  • Added in: PQ Framework 2.2
  • Namespace: Pq.Adapters.Framework

When to Use

  • Smoke detectors
  • Heat / thermal detectors
  • Flame / combustion detectors
  • Manual call points (fire buttons)
  • Sprinkler / suppression water-flow switches
  • Any fire-reaction zone on an intrusion panel

States

State Status id Description
Clear detection.clear (hidden) No fire condition present
Alarm fire.alarm Fire alarm active
AlarmGeneral fire.alarm.general General fire alarm active
AlarmSection fire.alarm.section Section or zone-level fire alarm active
AlarmConditional fire.alarm.conditional Conditional fire alarm active
Prealarm fire.prealarm Pre-alarm / verification in progress
Smoke fire.smoke Smoke detected
Heat fire.heat High temperature / heat detected
Disabled fire.disabled Detector/address intentionally disabled
Test fire.test Fire detector in test mode
TestActivation fire.test.activation Test activation condition active
TestPassed fire.test.passed Tested successfully, waiting for test finish
Trouble fire.trouble Detector fault / fire trouble
Fault supervision.fault Generic supervision fault

Clear is the hidden default state: SetClear(ct) publishes no status string, so a quiet detector reports the function as cleared.

Actions

Alarm Events

FireAlarm(timestamp)

  • Description: Fire alarm triggered (generic / flame / combustion / thermal / duct)
  • Target State: Alarm
  • Events: pq.event.fire.alarm (Critical)

FireGeneralAlarm(timestamp)

  • Description: General fire alarm triggered
  • Target State: AlarmGeneral
  • Events: pq.event.fire.alarm.general (Critical)

FireSectionAlarm(timestamp)

  • Description: Section or zone-level fire alarm triggered
  • Target State: AlarmSection
  • Events: pq.event.fire.alarm.section (Critical)

FireConditionalAlarm(timestamp)

  • Description: Conditional fire alarm triggered
  • Target State: AlarmConditional
  • Events: pq.event.fire.alarm.conditional (Critical)

FirePreAlarm(timestamp)

  • Description: Fire pre-alarm / verification condition
  • Target State: Prealarm
  • Events: pq.event.fire.prealarm (Warn)

SmokeDetected(timestamp)

  • Description: Smoke detected
  • Target State: Smoke
  • Events: pq.event.fire.smoke.detected (Critical)

SmokeCleared(timestamp)

  • Description: Smoke cleared
  • Target State: Clear
  • Events: pq.event.fire.smoke.cleared (Info)

ManualFireAlarm(timestamp)

  • Description: Manual call point (fire button) activated
  • Target State: Alarm
  • Events: pq.event.fire.manual (Critical)

SuppressionFlow(timestamp)

  • Description: Water flow detected in suppression system
  • Target State: Alarm
  • Events: pq.event.fire.suppression.flow (Critical)

FireCleared(timestamp)

  • Description: Fire condition cleared, return to normal
  • Target State: Clear
  • Events: pq.event.fire.cleared (Info)

Fault Events

FireFault(timestamp)

  • Description: Fire detector fault / supervisory trouble
  • Target State: Fault
  • Events: pq.event.supervision.fault (Warn)

FireFaultRestored(timestamp)

  • Description: Fire detector fault restored
  • Target State: Clear
  • Events: pq.event.technical.fault.cleared (Info)

Test Events

FireTestStarted(timestamp)

  • Description: Fire zone test mode activated
  • Target State: Test
  • Events: pq.event.fire.test.started (Info)

FireTestEnded(timestamp)

  • Description: Fire zone test mode deactivated
  • Target State: Clear
  • Events: pq.event.fire.test.completed (Info)

FireTestActivation(timestamp)

  • Description: Fire point activated while in test mode
  • Target State: TestActivation
  • Events: pq.event.fire.test.activation (Info)

FireTestPassed(timestamp)

  • Description: Fire detector tested successfully, waiting for test finish
  • Target State: TestPassed
  • Events: pq.event.fire.test.passed (Info)

FireTestFault(timestamp)

  • Description: Fire point reported a fault while in test mode
  • Target State: TestActivation
  • Events: pq.event.fire.test.fault (Warn)

Properties

None. All configuration is adapter-specific. Define properties in adapter-registration.yaml if needed.

YAML Example

device_types:
  - type_id: SmokeDetector
    name: "Smoke Detector"
    functions:
      FireDetector:

  # A panel zone that can report either intrusion OR fire carries both functions:
  - type_id: AcmeZone
    name: "Zone"
    functions:
      IntrusionDetector:
      FireDetector:

Code Usage

// route the vendor fire event to the fire-specific action
router.When(e => e.Code is 111)   // smoke
    .WithAddress<Zone, int>(e => e.SourceNumber)
    .Handle((zone, e) => e.Restore ? zone.SmokeCleared(e.Timestamp) : zone.SmokeDetected(e.Timestamp));

router.When(e => e.Code is 115)   // manual call point
    .WithAddress<Zone, int>(e => e.SourceNumber)
    .Handle((zone, e) => e.Restore ? zone.FireCleared(e.Timestamp) : zone.ManualFireAlarm(e.Timestamp));

Notes

  • Fire-prefixed names: Actions that would otherwise collide with IntrusionDetector shortcuts on the same Thing (Cleared, Fault, PreAlarm, TestMode*) are prefixed Fire.... The generator flattens each function's actions directly onto the Thing, so overlapping names on one device would clash.
  • Thermal without temperature: Heat/thermal fire (Acme 114) maps to FireAlarm, not pq.event.fire.heat.detected, because the latter requires a measured temperature the panel does not supply.
  • EPS panels: Use FirePanel, FirePoint, FireSounder, FireRouting, and FireControlOutput for fire panel concepts that are not a physical detector.

See Also