From 51f9dcf4f4c86d4cc3666192cebf7416d9b2a933 Mon Sep 17 00:00:00 2001 From: Andrew Garnhart Date: Mon, 9 Mar 2026 18:30:21 -0600 Subject: [PATCH 1/2] Add boiler point specs with runtime and level sensor bases Add boiler-specific point specs and the abstract base types they require that do not yet exist in the library: New abstract base types (misc.xeto): - RuntimeSensor: cumulative equipment runtime duration (hours) - LevelSensor: liquid level percentage (0-100%) - WaterLevelSensor: water-specific level sensor New global tag (entity.xeto): - runtime: cumulative time duration tracking how long equipment runs Boiler point specs (boiler.xeto): - BoilerHeatRunCmd: on/off command (extends HeatRunCmd) - BoilerHeatRunSensor: on/off status (extends HeatRunSensor) - BoilerEnableCmd: interlock enable (extends HeatEnableCmd) - BoilerHeatModulatingCmd: burner capacity 0-100% (extends HeatModulatingCmd) - BoilerWaterLevelSensor: water level 0-100% (extends WaterLevelSensor) - BoilerRuntimeSensor: cumulative runtime hours (extends RuntimeSensor) --- src/xeto/ph.points/boiler.xeto | 26 ++++++++++++++++++++++++++ src/xeto/ph.points/misc.xeto | 9 +++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/xeto/ph.points/boiler.xeto diff --git a/src/xeto/ph.points/boiler.xeto b/src/xeto/ph.points/boiler.xeto new file mode 100644 index 0000000..ac68a2e --- /dev/null +++ b/src/xeto/ph.points/boiler.xeto @@ -0,0 +1,26 @@ +// +// 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. +// Used as an interlock with a run command. +BoilerEnableCmd : HeatEnableCmd { boiler } + +// Command for modulating boiler heating capacity 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 7abc15f..844d223 100644 --- a/src/xeto/ph.points/misc.xeto +++ b/src/xeto/ph.points/misc.xeto @@ -108,3 +108,12 @@ RuntimeSensor : NumberPoint & SensorPoint { runtime unit: Unit "hr" } + +// Sensor for liquid level as a percentage from 0% (empty) to 100% (full) +LevelSensor : NumberPoint & SensorPoint { + level + unit: Unit "%" +} + +// Sensor for water level as a percentage from 0% (empty) to 100% (full) +WaterLevelSensor : LevelSensor { water } From 87d57b8a1572f70391d8211ee34491ebaf81f8ad Mon Sep 17 00:00:00 2001 From: Andrew Garnhart Date: Mon, 9 Mar 2026 18:37:41 -0600 Subject: [PATCH 2/2] Improve documentation to match Haystack conventions Update comments on new specs and global tags to follow upstream documentation patterns: cross-references with bracket notation, multi-line descriptions for complex concepts, and consistent phrasing with existing specs. --- src/xeto/ph.points/boiler.xeto | 5 +++-- src/xeto/ph.points/misc.xeto | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/xeto/ph.points/boiler.xeto b/src/xeto/ph.points/boiler.xeto index ac68a2e..d80da8a 100644 --- a/src/xeto/ph.points/boiler.xeto +++ b/src/xeto/ph.points/boiler.xeto @@ -13,10 +13,11 @@ BoilerHeatRunCmd : HeatRunCmd { boiler } BoilerHeatRunSensor : HeatRunSensor { boiler } // Command to permit/prohibit a boiler to run. -// Used as an interlock with a run command. +// Enable is used as an interlock with a run command. BoilerEnableCmd : HeatEnableCmd { boiler } -// Command for modulating boiler heating capacity from 0% to 100% +// 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) diff --git a/src/xeto/ph.points/misc.xeto b/src/xeto/ph.points/misc.xeto index 844d223..e434234 100644 --- a/src/xeto/ph.points/misc.xeto +++ b/src/xeto/ph.points/misc.xeto @@ -109,11 +109,13 @@ RuntimeSensor : NumberPoint & SensorPoint { unit: Unit "hr" } -// Sensor for liquid level as a percentage from 0% (empty) to 100% (full) +// Sensor for liquid level as a percentage where +// 0% indicates empty and 100% indicates full LevelSensor : NumberPoint & SensorPoint { level - unit: Unit "%" + unit: Unit "%" } -// Sensor for water level as a percentage from 0% (empty) to 100% (full) +// Sensor for water level as a percentage where +// 0% indicates empty and 100% indicates full WaterLevelSensor : LevelSensor { water }