Had some fun playing with the Channels API. I came up with a simple HomeKit scene for my wife: say "Fixer Upper" and it:

Uses ADB to turn on the TV with a Fire TV Stick,

Reads the upnext list from the DVR, to find the ID of the next unwatched episode of her show,

Plays that recording

It's powered by the fixerupper Python3 script, below, and I use a homebridge plugin called cmdswitch2 for the HomeKit/Siri tie-in to a command. You need to turn on ADB Debugging on the FireStick, and generate an adb "key" (which I did with a python module called adb_shell and its keygen command ).

The only hitches: it takes some time for the TV to be powered up over ADB (~15sec or so), and by then the playback has started, but the Fire TV pauses it. So I monitor for a pause for 25 second, and use the API to resume if one is encountered.

Also, sometimes the Channels API goes down and is unreachable (Cannot connect to host 192.168.0.XX:57000). Restarting Channels on the Fire Stick manually resolves this. Possibly it was getting overwhelmed with too many requests during testing...

I had hoped it would work that way. It would be preferable because using ADB is quite slow and was a pain to setup. The TV does have CEC, but the api play commands don't turn it on. It's an older Vizio with a Fire Stick 4K. Hitting Home Key on Fire Stick remote does turn it on, which I presume uses CEC. In fact all androidtv does is connect, authorize, hit the "POWER" key, and hit the "HOME" key.