Open connorjcantrell opened 1 year ago
Hi @connorjcantrell -- thanks for the detailed proposal! I don't think I've ever seen this exposed in a BMS before -- would a calibration command take on the units of whatever it is calibrating? Is a calibration command always going to be used with a sensor? Do you have a suggestion for how we might relate the calibration command to the sensor (or whatever else it is calibrating?)
I think this should be relatively straightforward to model -- do you want to take a stab at adding this to brick in a PR?
Would a calibration command take on the units of whatever it is calibrating?
This is a good question. From my understanding, the calibration command would offset the signal outputted by the sensor, and would not need to reference the actual units that the control signal represents.
Is a calibration command always going to be used with a sensor?
I have only observed this point for sensors, however it is possible for a Calibration Command to be used with other devices or components that require periodic adjustment or calibration to maintain their performance (I am not aware such use cases).
Do you have a suggestion for how we might relate the calibration command to the sensor (or whatever else it is calibrating?
To relate the Calibration Command to the sensor or the device it is calibrating, perhaps we could introduce a relationship in our ontology, such as "calibrates". For example, if we have a pressure sensor and a Calibration Command is associated with it, perhaps we could create a relationship like this:
Calibration Command --calibrates--> Pressure Sensor
I am also open to suggestions as to how it would be implemented from others in the community to refine the proposed relationship further.
The term "Calibration Command" is a broad term that includes both the Auto and Manual Zero functions, as well as other similar functions. While the closest concept to a Calibration Command in our ontology is the Reset Command, it is important to note that the two serve different purposes.
A Reset Command is used to restore a system to its original state or starting point after a malfunction or unexpected event. It wipes all settings, data, and configurations, effectively starting fresh.
In contrast, a Calibration Command is used to maintain the accuracy of sensor readings over time. It periodically corrects for long-term drift or variation in sensor readings, ensuring that the system operates as intended. This is a critical function for systems that rely on precise sensor data for optimal performance.
Therefore, it is essential to distinguish between the two commands in our ontology. I propose that we add a Calibration Command to better represent this important functionality.
For example, a pressure sensor measures the building static pressure, and this information is used to determine the required speed of the fans to achieve the desired building static setpoint. By maintaining the accuracy of the pressure readings through the Calibration Command, the speed of the fans can be controlled more accurately, resulting in improved energy efficiency and better HVAC system performance.
However, the readings from the pressure sensor may drift over time due to various factors, leading to inaccurate readings and issues with the HVAC system. To compensate for this drift, the pressure sensing device has an Auto Zero function, which corrects for long-term offset variations in the pressure sensor.
To ensure accurate pressure readings, the Calibration Command periodically corrects for offset drift by sampling the sensor output when a known reference, such as atmospheric pressure, is applied to the sensor. The microcontroller then follows a series of steps to determine the precise value of the pressure sensor's offset:
The Calibration Command can be triggered automatically at set intervals or manually through a user interface. By adding the Calibration Command to our ontology, we can ensure we are classifying these types of command correctly.