I have a variety of “media devices” (in the widest sense) in my house. This includes 3 TVs, three set top boxes, an AV receiver, a DVD player, a Raspberry Pi running XBMC, a couple of game consoles and a variety of PCs, laptop, tablets and phones. Other people will have other devices, such as Blueray players, Apple TVs, Rokus, and other wireless streaming devices.
Most of these are controlled by Infrared remotes, but some can be controlled by Wifi, or other protocols.
I have commands and protocols in HouseControl that work, to some extent, for my system, but which are not very flexible.
I am trying to design a flexible set of commands and protocols for all this.
Media devices let you select a variety of things such as channels, sources, playlists and files. They let you search for things by name or by other attributes. They provide specific services like program guides. There are various stores of media such as libraries of recordings on a DVR, services such as Spotify, Youtube etc.
There are lots of things that you can control, such as volume levels and the playback of a specific media item with controls like play, pause, stop, fast forward etc.
How can I unify this with a set of HouseControl commands and protocols?
I currently treat media devices as separate devices, such as TVs, set top boxes, receivers, music servers etc. This is not a good idea as there is so much overlap between them.
I think I need a command syntax along the lines:
device service item action
TiVo channel BBC1 play
Musicserver spotify playlist1 play
Receiver source DVD select
Wii Youtube search cats
With a suitable set of defaults and abbreviations, I should just be able to type something like:
to change the living room TV to BBC1, or
to play the Rolling Stones playlist on the music server PC in the living room.
Sometimes, I would an to qualify this by room or floor, such as:
I’m not sure that a natural language interface would help a lot here, as I do not want to have to type or say:
Play the Rolling Stones Spotify playlist in the Living room on the music server at volume level high.
This clearly needs more thought and experimentation.