Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions src/xeto/ph.points/boiler.xeto
Original file line number Diff line number Diff line change
@@ -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 }
18 changes: 18 additions & 0 deletions src/xeto/ph.points/misc.xeto
Original file line number Diff line number Diff line change
Expand Up @@ -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 <abstract> {
runtime
unit: Unit <quantity:"time"> "hr"
}

// Sensor for liquid level as a percentage where
// 0% indicates empty and 100% indicates full
LevelSensor : NumberPoint & SensorPoint <abstract> {
level
unit: Unit <fixed> "%"
}

// Sensor for water level as a percentage where
// 0% indicates empty and 100% indicates full
WaterLevelSensor : LevelSensor { water }
5 changes: 5 additions & 0 deletions src/xeto/ph/entity.xeto
Original file line number Diff line number Diff line change
Expand Up @@ -1268,6 +1268,11 @@ PhEntity: Entity <abstract> {
// 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

Expand Down