Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.appliedaifoundation.org/llms.txt

Use this file to discover all available pages before exploring further.

The bwts_iot_telemetry table contains 65+ fields. All field names below use the frontend underscore format as returned by the API (not the raw PostgreSQL column names). See Schema Overview for the column naming convention.

System metadata

FieldTypeDescription
timestampdatetimeUTC timestamp of the reading
system_idstringBWTS system identifier
operation_typestringBALLAST or DEBALLAST
locationstringPort name where the operation occurred
monthintegerMonth number (1–12)

UV Reactor (UVR_)

FieldUnitDescription
UVR_INTENSITYW/m²Raw UV sensor reading — primary compliance metric
UVR_INTENSITY_NORMALIZEDW/m²Temperature and turbidity corrected intensity
UVR_POWER_OUTPUT% of ratedActive power delivered to the lamp array
UVR_POWER_SETPOINT%Target power level commanded to the LDC
UVR_WATER_TEMP°CBallast water temperature at the reactor
UVR_LEVELstringUV level descriptor (e.g., HIGH, MED, LOW)

Lamp Drive Controller (LDC_)

FieldUnitDescription
LDC_AIR_TEMP°CCompartment air temperature
LDC_FAN_SPEEDRPMCooling fan speed
LDC_FAN_STATUSstringFan operational state
LDC_WATER_ALARMbooleanWater ingress alarm — true if alarm active

Filter System (FLT_)

FieldUnitDescription
FLT_DIFF_PRESSUREbarDifferential pressure across the filter element
FLT_MOTOR_STATUSstringFilter motor state
FLT_BACKFLUSH_ACTIVEbooleanTrue when automatic backflush is in progress
FLT_BACKFLUSH_COUNTintegerCumulative number of backflush cycles

Flow and Pressure (SYS_)

FieldUnitDescription
SYS_FLOW_RATEm³/hBallast water flow rate
SYS_PRESSUREbarSystem pressure
SYS_VALVE_POSITION%Control valve opening (0 = closed, 100 = fully open)
SYS_TOTAL_BALLAST_VOLCumulative ballast volume processed
SYS_TOTAL_DEBALLAST_VOLCumulative deballast volume processed
SYS_EXTERNAL_FEEDbooleanTrue when external water feed is active

PLC Controller (PLC_)

FieldUnitDescription
PLC_CPU_USAGE%PLC processor utilisation
PLC_RAM_USAGE%PLC memory utilisation
PLC_CPU_TEMP°CPLC processor temperature

Process State

FieldTypeDescription
PROCESS_STATEstringController state machine value
COMPLIANCE_MODEstringOperating compliance mode
WATER_QUALITYstringWater quality descriptor
WATER_QUALITY_FACTORnumberNumeric multiplier for intensity normalisation
CIP_HOURS_SINCE_LASThoursHours since last Clean-in-Place cycle

Lamp Summary (aggregate across all 16 lamps)

FieldUnitDescription
AVG_LAMP_EFFICIENCY%Mean efficiency of all 16 lamps
FAILED_LAMP_COUNTintegerCount of lamps with STATUS = FAILED
DEGRADATION_IMPACT_PCT%UV output reduction attributable to lamp aging
POWER_COMPENSATION_PCT%Extra power consumed to compensate for degradation

Per-lamp fields (× 16 lamps)

Each lamp XX (01 through 16) has four fields following the pattern LAMP_XX_FIELD:
Field patternUnitDescription
LAMP_XX_STATUSstringACTIVE, STANDBY, or FAILED
LAMP_XX_EFFICIENCY%Current lamp efficiency (0–100)
LAMP_XX_RUNTIMEhoursCumulative operating hours
LAMP_XX_POWERWCurrent power draw
Access dynamically in TypeScript:
const lampId = 5
const status = telemetry[`LAMP_${String(lampId).padStart(2, '0')}_STATUS`]
const efficiency = telemetry[`LAMP_${String(lampId).padStart(2, '0')}_EFFICIENCY`]
This pattern is used throughout the dashboard components to iterate over all 16 lamps without repetition.