matrix_keypad: id: keypad rows: - pin: 1 - pin: 2 columns: - pin: 3 - pin: 4 keys: "1234" has_pulldowns: true key_collector: - id: reader source_id: keypad min_length: 4 max_length: 4 on_progress: - logger.log: format: "input progress: '%s', started by '%c'" args: [ 'x.c_str()', "(start == 0 ? '~' : start)" ] on_result: - logger.log: format: "input result: '%s', started by '%c', ended by '%c'" args: [ 'x.c_str()', "(start == 0 ? '~' : start)", "(end == 0 ? '~' : end)" ] on_timeout: - logger.log: format: "input timeout: '%s', started by '%c'" args: [ 'x.c_str()', "(start == 0 ? '~' : start)" ]