I have a Harmony Hub set up to do all IR Blasts.
Then, on my Raspberry Pi I have the "Harmony API" installed. There's this guy you may have heard of named Jon Maddox who has it on his GitHub. 
Every device you set up in your Harmony Hub becomes a slug that you can call over HTTP. So for instance, you could have a TV turn on/off or change HDMI inputs.
Next up, with my SmartThings hub, using the web interface I installed a Device Handler and SmartApp called "HTTP Button". Using that, I created virtual button that I can launch from SmartThings. Because SmartThings is also tied into my virtual assistance, I can ask her to do the actions, too.
You could stop there, or you could also go one step further with something like WebCore to do more automation or multi-step functions. You could also do basic automation in SmartThings and some of the add-ons, but it depends upon how detailed you'd need to get.
So, not going to lie, this is a long, complicated, and mildly expensive setup, but it does work perfectly once everything is in place!