diff --git a/esphome/components/sensor/sensor.cpp b/esphome/components/sensor/sensor.cpp index 11015d53ec..52533cf6f6 100644 --- a/esphome/components/sensor/sensor.cpp +++ b/esphome/components/sensor/sensor.cpp @@ -36,7 +36,7 @@ PROGMEM_STRING_TABLE(StateClassStrings, "", "measurement", "total_increasing", " const LogString *state_class_to_string(StateClass state_class) { uint8_t index = static_cast(state_class); - if (index > 4) + if (index > STATE_CLASS_LAST) index = 0; // Default to empty string (STATE_CLASS_NONE) return StateClassStrings::get_log_str(index); } diff --git a/esphome/components/sensor/sensor.h b/esphome/components/sensor/sensor.h index d9046020f6..d57f072d40 100644 --- a/esphome/components/sensor/sensor.h +++ b/esphome/components/sensor/sensor.h @@ -32,6 +32,7 @@ enum StateClass : uint8_t { STATE_CLASS_TOTAL = 3, STATE_CLASS_MEASUREMENT_ANGLE = 4 }; +constexpr uint8_t STATE_CLASS_LAST = STATE_CLASS_MEASUREMENT_ANGLE; const LogString *state_class_to_string(StateClass state_class);