So now that practically my entire house is HomeKit compatible, (Hue, August, Chamberlain MyQ) I am finally able to control my TV in very cool ways.
First off, some background (and details likely for another discussion). I previously setup Homebridge to control iTunes and my Pioneer VSX-1130 receiver. It sends telnet commands for power on, volume, and changing inputs. I mostly used this for whole home audio. While I have a HomePod and really want to use Airplay 2.0, my receiver isn’t capable and it controls living room and outside speakers. It’s hooked up to an AppleTV, but I would need another AppleTV to separately control outside audio AND it still doesn’t have the same featureset as when iTunes is controlling the sound. You also can’t tell Siri to “Play Everywhere” and have the music automatically start on AppleTVs. The basis for all this working is the Homebridge-Applscript-File-Lightbulb which can run AppleScript commands based on fake Homekit Lightbulb/Switches. It’s complex but it works.
As far as my TV goes, I don’t have a SmartTV but have a Caavo Control Center. If you haven’t heard of it, it is a smart universal remote control. This second-generation product works very well, and recently got IFTTT integration. (I REALLY want Caavo to integrate Trakt so that it can truly be a one-stop shop for your TV watching between all services, but we aren’t quite there yet.) However, Caavo Control Center does have very good voice commands, and automatically changes inputs if you use any device remote or it senses Airplay to an AppleTV, etc.)
A few weeks ago, I added IFTTT WebHooks and the AppleScript Homebridge lightbulb to send the Webhook URL for On/Off. This shows up in HomeKit, so I can say “Turn on my TV”. Homebridge sends the following command:
do shell script “curl http s://maker.ifttt.com/trigger/CaavoOn/with/key/XXXXXXXXXXXXXX”
(Sorry above link has an extra space after http as new users cannot add more than two links to a post)
Last night, I realized I can make this even better! The Caavo IFTTT widget can also send any voice command. This means you can change channels, watch a specific show, almost anything you can do through the voice remote control, but with Siri Shortcuts instead. (Instead of doing it through HomeKit… I doubt it would be possible with the variables).
The Shortcut is very simple, but. If any device runs the specific Webhook URL, IFTTT sees it and runs the receipt on IFTTT with the “Send Command to Caavo” THAT recipe component. As you cannot share recipes anymore, I will attach a screenshot.
End result, I can tell Siri “Watch something on Caavo” and a few seconds later I can dictate any show, channel, or search and Caavo will execute the command as if I am using the stock remote.