An inexpensive IR sensor such as a TSOP1838 can be connected to a device running Tasmota. Configure a free device GPIO as 'IRrecv (51)'. When Tasmota receives an IR message, the data portion of the payload has the same format as the IRsend
parameter.
{"IrReceived":{"Protocol":"","Bits":,"Data":}}
This JSON payload data can be used in a rule such as: ON IrReceived#Data= DO ENDON
If the data is received on an unknown protocol, setoption58 1
See here.