esphome: on_boot: then: - script.execute: my_script - script.execute: id: my_script_with_params prefix: "Test" param2: 0 param3: true - script.execute: id: my_script_with_array_params ints: [42, 100] floats: [1.5, 2.5] bools: [true, false] strings: ["a", "b"] - script.wait: my_script - script.stop: my_script - if: condition: - script.is_running: my_script then: - logger.log: my_script is running script: - id: my_script mode: single then: - lambda: 'ESP_LOGD("main", "Hello World!");' - id: my_script_queued mode: queued max_runs: 2 then: - lambda: 'ESP_LOGD("main", "Hello World!");' - id: my_script_parallel mode: parallel max_runs: 2 then: - lambda: 'ESP_LOGD("main", "Hello World!");' - id: my_script_restart mode: restart then: - lambda: 'ESP_LOGD("main", "Hello World!");' - id: my_script_with_array_params parameters: ints: int[] floats: float[] bools: bool[] strings: string[] then: - lambda: |- ESP_LOGD("main", "ints=%d floats=%f bools=%d strings=%s", ints[0], floats[0], (int) bools[0], strings[0].c_str()); - id: my_script_with_params parameters: prefix: string param2: uint8_t param3: bool then: - lambda: 'ESP_LOGD(prefix.c_str(), "Hello World! %u %u", param2, param3);' - if: condition: for: time: !lambda "return param2;" condition: script.is_running: my_script then: - lambda: 'ESP_LOGD("main", "API has stayed connected for at least %u minutes", param2);' - repeat: count: 5 then: - logger.log: looping!