A xeto equipment spec will commonly declare mandatory points for validation under the points tag. When using fit to validate against this spec it calls the inverse of ph::Point.equips which performs an equipRef+ traversal from the points perspective. This means that an equipment will check the points of all sub-equipment for a match.
Problem
I'm finding this behavior troublesome for validating chilled water plants specifically. For example, it is common to have a run-cmd point on a chilled water plant that puts the plant into operation. However, it is also extremely common to have run-cmd on the chillers and cooling towers that will be a sub-equipment of the plant. The pump-run-cmd points will also be returned by this query. This results in an ambiguous match error making it impossible to validate that there is a run-cmd point on the plant.
This will also be a problem for systems that "aggregate" sub-equipment. For example, a chilled water plant or header will likely have common temperature sensors (e.g. CHWST, CHWRT, CWST, CWRT, etc.). Chillers and cooling towers are also likely to have these sensors local to the machines, resulting in the same issue as querying for run-cmd.
I can also see this issue extending into chillers and packaged units with nested compressors and circuits as well.
Proposal
I believe it is very important that we have the ability to limit the scope of a point validation check to the local equip. An idea might be to add the following queries to Point and Equip respectively.
An elegant solution might provide syntax sugar to add a "+" within the existing points tag on an equip spec to toggle behavior. However, to preserve compatibility with existing specs, it might be best to add a localPoints tag within which the Equip.localPoints query is called while those within points tag retain the current beahvior of using Equip.points
Francis Mahony Tue 19 Nov 2024
Current Behavior
A xeto equipment spec will commonly declare mandatory points for validation under the
pointstag. When using fit to validate against this spec it calls the inverse ofph::Point.equipswhich performs anequipRef+traversal from the points perspective. This means that an equipment will check the points of all sub-equipment for a match.Problem
I'm finding this behavior troublesome for validating chilled water plants specifically. For example, it is common to have a
run-cmdpoint on a chilled water plant that puts the plant into operation. However, it is also extremely common to haverun-cmdon the chillers and cooling towers that will be a sub-equipment of the plant. Thepump-run-cmdpoints will also be returned by this query. This results in an ambiguous match error making it impossible to validate that there is arun-cmdpoint on the plant.This will also be a problem for systems that "aggregate" sub-equipment. For example, a chilled water plant or header will likely have common temperature sensors (e.g. CHWST, CHWRT, CWST, CWRT, etc.). Chillers and cooling towers are also likely to have these sensors local to the machines, resulting in the same issue as querying for
run-cmd.I can also see this issue extending into chillers and packaged units with nested compressors and circuits as well.
Proposal
I believe it is very important that we have the ability to limit the scope of a point validation check to the local equip. An idea might be to add the following queries to Point and Equip respectively.
An elegant solution might provide syntax sugar to add a "+" within the existing
pointstag on an equip spec to toggle behavior. However, to preserve compatibility with existing specs, it might be best to add alocalPointstag within which theEquip.localPointsquery is called while those withinpointstag retain the current beahvior of usingEquip.points