matrix_keypad: id: keypad rows: - pin: ${pin_r0} - pin: ${pin_r1} columns: - pin: ${pin_c0} - pin: ${pin_c1} 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)"]