diff --git a/src/xeto/ph.points/boiler.xeto b/src/xeto/ph.points/boiler.xeto new file mode 100644 index 0000000..d80da8a --- /dev/null +++ b/src/xeto/ph.points/boiler.xeto @@ -0,0 +1,27 @@ +// +// Copyright (c) 2026, Project-Haystack +// Licensed under the Academic Free License version 3.0 +// +// History: +// 12 Feb 2026 Adam Garnhart Creation +// + +// On/off command to run a boiler +BoilerHeatRunCmd : HeatRunCmd { boiler } + +// Sensor for on/off state of a boiler +BoilerHeatRunSensor : HeatRunSensor { boiler } + +// Command to permit/prohibit a boiler to run. +// Enable is used as an interlock with a run command. +BoilerEnableCmd : HeatEnableCmd { boiler } + +// Command for modulating boiler heating capacity +// as a percentage from 0% to 100% +BoilerHeatModulatingCmd : HeatModulatingCmd { boiler } + +// Sensor for boiler water level from 0% (empty) to 100% (full) +BoilerWaterLevelSensor : WaterLevelSensor { boiler } + +// Sensor for cumulative runtime duration of a boiler +BoilerRuntimeSensor : RuntimeSensor { boiler } diff --git a/src/xeto/ph.points/misc.xeto b/src/xeto/ph.points/misc.xeto index babb441..9b8ace8 100644 --- a/src/xeto/ph.points/misc.xeto +++ b/src/xeto/ph.points/misc.xeto @@ -102,3 +102,21 @@ HeatModulatingSensor : HeatModulatingPoint & SensorPoint // Command for modulating heating capacity as a percentage from 0% to 100%. HeatModulatingCmd : HeatModulatingPoint & CmdPoint + +// Sensor for cumulative runtime duration of equipment. +// Runtime is measured as total operating hours. +RuntimeSensor : NumberPoint & SensorPoint { + runtime + unit: Unit "hr" +} + +// Sensor for liquid level as a percentage where +// 0% indicates empty and 100% indicates full +LevelSensor : NumberPoint & SensorPoint { + level + unit: Unit "%" +} + +// Sensor for water level as a percentage where +// 0% indicates empty and 100% indicates full +WaterLevelSensor : LevelSensor { water } diff --git a/src/xeto/ph/entity.xeto b/src/xeto/ph/entity.xeto index e84490c..a394cc9 100644 --- a/src/xeto/ph/entity.xeto +++ b/src/xeto/ph/entity.xeto @@ -1268,6 +1268,11 @@ PhEntity: Entity { // on in order to run the equipment. *run: Marker + // Cumulative time duration tracking how long an [ph::PhEntity.equip] has + // been running. Paired with [ph::PhEntity.sensor] to report total operating + // hours. See [ph::PhEntity.run] for the on/off state of equipment. + *runtime: Marker + // Scalar is an atomic value kind *scalar: Obj