Add MEASUREMENT_ANGLE to SensorStateClass (#12085)

This commit is contained in:
Jakub Čermák
2025-11-29 23:26:25 +01:00
committed by GitHub
parent cf444fc3b8
commit 1f47797007
8 changed files with 18 additions and 0 deletions

View File

@@ -589,6 +589,7 @@ enum SensorStateClass {
STATE_CLASS_MEASUREMENT = 1;
STATE_CLASS_TOTAL_INCREASING = 2;
STATE_CLASS_TOTAL = 3;
STATE_CLASS_MEASUREMENT_ANGLE = 4;
}
// Deprecated in API version 1.5

View File

@@ -51,6 +51,7 @@ enum SensorStateClass : uint32_t {
STATE_CLASS_MEASUREMENT = 1,
STATE_CLASS_TOTAL_INCREASING = 2,
STATE_CLASS_TOTAL = 3,
STATE_CLASS_MEASUREMENT_ANGLE = 4,
};
#endif
enum LogLevel : uint32_t {

View File

@@ -179,6 +179,8 @@ template<> const char *proto_enum_to_string<enums::SensorStateClass>(enums::Sens
return "STATE_CLASS_TOTAL_INCREASING";
case enums::STATE_CLASS_TOTAL:
return "STATE_CLASS_TOTAL";
case enums::STATE_CLASS_MEASUREMENT_ANGLE:
return "STATE_CLASS_MEASUREMENT_ANGLE";
default:
return "UNKNOWN";
}

View File

@@ -182,6 +182,7 @@ STATE_CLASSES = {
"measurement": StateClasses.STATE_CLASS_MEASUREMENT,
"total_increasing": StateClasses.STATE_CLASS_TOTAL_INCREASING,
"total": StateClasses.STATE_CLASS_TOTAL,
"measurement_angle": StateClasses.STATE_CLASS_MEASUREMENT_ANGLE,
}
validate_state_class = cv.enum(STATE_CLASSES, lower=True, space="_")

View File

@@ -44,6 +44,8 @@ const LogString *state_class_to_string(StateClass state_class) {
return LOG_STR("total_increasing");
case STATE_CLASS_TOTAL:
return LOG_STR("total");
case STATE_CLASS_MEASUREMENT_ANGLE:
return LOG_STR("measurement_angle");
case STATE_CLASS_NONE:
default:
return LOG_STR("");

View File

@@ -31,6 +31,7 @@ enum StateClass : uint8_t {
STATE_CLASS_MEASUREMENT = 1,
STATE_CLASS_TOTAL_INCREASING = 2,
STATE_CLASS_TOTAL = 3,
STATE_CLASS_MEASUREMENT_ANGLE = 4
};
const LogString *state_class_to_string(StateClass state_class);

View File

@@ -1346,6 +1346,9 @@ STATE_CLASS_NONE = ""
# The state represents a measurement in present time
STATE_CLASS_MEASUREMENT = "measurement"
# The state represents a measurement in present time for angles measured in degrees (°)
STATE_CLASS_MEASUREMENT_ANGLE = "measurement_angle"
# The state represents a total that only increases, a decrease is considered a reset.
STATE_CLASS_TOTAL_INCREASING = "total_increasing"

View File

@@ -236,3 +236,10 @@ sensor:
- multiply: 2.0
- offset: 10.0
- lambda: return x * 3.0;
# Testing measurement_angle state class
- platform: template
name: "Angle Sensor"
lambda: return 42.0;
update_interval: 1s
state_class: "measurement_angle"