HouseControl: how to control media devices?

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

For example:

TiVo channel BBC1 play

or

Musicserver spotify playlist1 play

or

Receiver source DVD select

or

Wii Youtube search cats

With a suitable set of defaults and abbreviations, I should just be able to type something like:

BBC1

to change the living room TV to BBC1, or

Stones

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:

Living-room BBC1

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.

Advertisements
This entry was posted in Home automation and tagged , . Bookmark the permalink.

3 Responses to HouseControl: how to control media devices?

  1. bigkevmcd says:

    I’d say “Location Device Operation”, perhaps optimising so that if we get a “Location” that is unknown, we look for devices in each location, assuming that there’s no way to determine where the request came from.

    • Geek Grandad says:

      Knowing what location a request came from would be helpful, but is not always possible. Currently I assume the request came from the living room for things like “lights on” or “tv on” when there is no location. I could use the IP or Mac address for fixed devices, but phones, tablets, and laptops move around. I could see what rooms are occupied and if only one is occupied, assume the request came from there. If I ever put fixed microphones in some of the rooms, they would know the location. Gesture control does not suffer from these problems, and I am definitely going to try that with the Kinect and the Leap Motion controller when that is available. But perhaps, the Leap does have the problem if it is connected to a laptop. Perhaps some sort of set location command would be useful. Gesture control with a Leap probably needs a picture of the room and finger motion detection, whereas gesture control with a Kinect or Asus Xtion would need arm and hand waving.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s