Minerva
Linux Home Automation for the Masses

About infostreams

Information streams are a method of retrieving arbitrary information from Minerva about itself, such as the weather or, sunrise times. The data here is provided by applications within Minerva itself, and so needs to be 'pushed' into the system, before it can be retrieved.

There are three types of information stream:

  • action
  • status
  • event
These cover instantaneous actions, static status information and timed events, respectively. They can be retrieved by commands such as:
getinfostream status weather
and
getinfostream status media

Adding data to the stream

The only way data will appear in any stream is if it's been added by a suitable application. This is done with a command such as:
addinfostream action The front door has been opened
addinfostream status Steev is listening to Pink Floyd
Unless data is added to the stream, all information returned with getinfostream might be considered stale.

Generally, data will be added to the streams with the updateinfostream command. This processes all the standard stream handlers in etc/infostream, which look at the current system state, and update the stream messages accordingly.

Publishing the information

Information itself is useless, unless it's presented to someone. To this end, the publishinfostream command will push data to one, or more, targets. These targets are specified in /usr/local/minerva/conf/infostream and include Facebook, Twitter, and Bluetooth based photo frames. These configuration files are, in fact, scripts which specific the exact data they wish to publish (TV currently showing, the weather, etc) and how to publish it.
publishinfostream facebook	# by default, publishes the most recent action
publishinfostream # does everything, which might be slow

Info streams with the API

This simply calls the getinfostream call under the hood. So now command is necessary. Simply invoke:
getinfostream.php?user=xxx&pass=xxx&filter=tv
Typical filters are tv, weather, and media playing.

Valid HTML 4.01 Transitional