esphome: name: api-action-timeout-test # Use a short timeout for testing (500ms instead of 30s) platformio_options: build_flags: - "-DUSE_API_ACTION_CALL_TIMEOUT_MS=500" host: logger: level: DEBUG api: actions: # Action that responds immediately - should work fine - action: action_immediate supports_response: only then: - logger.log: "ACTION_IMMEDIATE responding" - api.respond: data: !lambda |- root["status"] = "immediate"; # Action that delays 200ms before responding - should work (within 500ms timeout) - action: action_short_delay supports_response: only then: - logger.log: "ACTION_SHORT_DELAY starting" - delay: 200ms - logger.log: "ACTION_SHORT_DELAY responding" - api.respond: data: !lambda |- root["status"] = "short_delay"; # Action that delays 1s before responding - should fail (exceeds 500ms timeout) # The api.respond will log a warning because the action call was already cleaned up - action: action_long_delay supports_response: only then: - logger.log: "ACTION_LONG_DELAY starting" - delay: 1s - logger.log: "ACTION_LONG_DELAY responding (after timeout)" - api.respond: data: !lambda |- root["status"] = "long_delay";