1
0
mirror of https://github.com/esphome/esphome.git synced 2026-02-08 08:41:59 +00:00

Revert API compilation_time to old locale-dependent format

Keep the API DeviceInfo compilation_time field using the old
get_compilation_time_ref() format for backward compatibility.

The text sensor build_time_str continues to use the new ISO 8601 format.
This commit is contained in:
David Woodhouse
2025-12-15 21:01:15 +00:00
parent d911ae94fe
commit d2b5398fad
2 changed files with 6 additions and 13 deletions

View File

@@ -1472,10 +1472,7 @@ bool APIConnection::send_device_info_response(const DeviceInfoRequest &msg) {
resp.set_esphome_version(ESPHOME_VERSION_REF);
// Stack buffer for build time string
char build_time_str[Application::BUILD_TIME_STR_SIZE];
App.get_build_time_string(build_time_str);
resp.set_compilation_time(StringRef(build_time_str));
resp.set_compilation_time(App.get_compilation_time_ref());
// Manufacturer string - define once, handle ESP8266 PROGMEM separately
#if defined(USE_ESP8266) || defined(USE_ESP32)

View File

@@ -26,13 +26,12 @@ async def test_build_info(
assert device_info.name == "build-info-test"
# Verify compilation_time from device_info is present and parseable
# The format is ISO 8601 with timezone: "YYYY-MM-DD HH:MM:SS +ZZZZ"
# The format is locale-dependent: "Dec 15 2025, 17:44:16"
compilation_time = device_info.compilation_time
assert compilation_time is not None
# Validate the ISO format: "YYYY-MM-DD HH:MM:SS +ZZZZ"
parsed = datetime.strptime(compilation_time, "%Y-%m-%d %H:%M:%S %z")
assert parsed.year >= time.localtime().tm_year
# Validate the format (locale-dependent, so just check it's not empty)
assert len(compilation_time) > 0
# Get entities
entities, _ = await client.list_entities_services()
@@ -110,8 +109,5 @@ async def test_build_info(
f"build_time_str '{build_time_str}' should match timestamp '{expected_str}'"
)
# Verify compilation_time matches build_time_str (they should be the same)
assert compilation_time == build_time_str, (
f"compilation_time '{compilation_time}' should match "
f"build_time_str '{build_time_str}'"
)
# Note: compilation_time (from API) uses old locale-dependent format,
# while build_time_str (text sensor) uses new ISO format