I used Broadlink Manager [1] and [2] to capture IR codes with RM4C mini.
Then I defined bunch of scripts for different buttons, e.g.:
sharp_tv_volume_up_ir:
alias: 'Sharp TV IR volume up'
sequence:
service: remote.send_command
target:
entity_id: remote.rm4c_remote
data:
command: b64:JgCoAAkZCRgJGQgZCBoIGQg7CBoJOggaCBoIGQc8CRkHAAYQCToJGQkZCRgIGQg8CToIGgk6CRkJOgk7CDsJGQg7CgAFhAk7CBkJGAgaCRkIGAgaCToIGgg8CBkJGQgZCDsIGggABhwJOwgZCRgIGgkZBzwJOgkZCDsJGQg7CTsJOgkZCToIAAWTBzwJGQgZCBkJGQgaCBkIPAgZBz0IGQcaCRkJOgkZCQANBQAAAAAAAAAAAAAAAAAA=
[1] https://en.techblog.co.il/2020/06/24/installing-broadlinkmanager-on-raspberry-pi/
[2] Broadlink Manager - Nicer way to Learn and Send IR/RF commands