Update 23 dec 2011:
The Zwave.ME modules are now integrated completely in my home. Also one Fibaro module (2x1.5KW) is installed in the shed controlling the shed lights and the garden lights. I added some rules so they will only turn on when the light is low and there is presence. The kitchen lights are on at the same time as the living room lights but are turned at 40% (dimmer) and when entering the kitchen they glow up to 80%
Another thing I already had was the possibility to speak through speakers and play sounds through them. But... when I am gonna throw some speakers around the house you need to direct sound to a specific speaker. So I decided to create a speaker concept in the software. Speakers are audio output devices with a certain set of capabilities. Capabilities like:
[*] Playing local files
[*] Playing URL
[*] Play a local file or URL right now
[*] Queue a local file or URL after everything which is in the queue
[*] Pause playing whatever is playing and play the given file or URL right now and then resume the previous playing audio
[*] Stop playing
[*] Pause playing
[*] Mute/Unmute/Volume set
So whenever I create a Speaker driver I can tell the system what the driver is capable of. The first driver I created was an ALSA-device. When adding such a speaker you can select the soundcard and the output which the speaker is connected to. For example I have a set of stereo speakers connected to a stereo jack and another audio output in the form of a HDMI cable to the Onkyo system. All sound actions (text-to-speech and playing files) in the system are now capable of directing to a specific Speaker!
The next speaker driver I wrote was rather odd. It is a capability of turning a web interface of the system (touchscreen interface) into a speaker. When sending commands to this speaker they are forwarded through the AJAX push mechanism I am using to the touchscreen. This then plays the sounds or does other actions! I used jPlayer for this, check it out. Rather nice web 2.0 player
I also designed some other drivers on paper, but haven't wrote them yet. An Onkyo speaker for example, Airport express and an Agent speaker (an agent is a concept which I'm using for devices which don't have a display but are capable of receiving commands from the system). Maybe in the upcoming period.... the first one will be an DLNA speaker
So now we have speakers but no content to play from. So I added the concept called ContentProviders. These can provide listings of concent and content items. Basically something like a MediaServer in DLNA terms. The idea is that on our touchscreen you can browse content and select a bunch of items to be send to a speaker without copying them to a local device etc etc. No more difficult stuff being done. For now I have the following contentproviders implemented:
[*] Local directory (plain and simple)
[*] Podcast xml feed (so we can play our favorite podcasts)
[*] Radiostations (a listing of currently dutch radio stations)
[*] Dropbox support (we all know dropbox)
[*] PogoPlug support (playing files from a disk at my brothers house)
The next contentproviders I am creating are SkyDrive, DLNA mediaserver, Shoutcast.
As always checkout the screenshots at
http://fotoboek.vandulmen.net/domotica/ha_23_dec_2011/
Some random stuff I also added:
- iSCP driver (for controlling Onkyo devices)
- Windows Messenger integrated (based on their new XMPP interface)
- Capability of cameras to be added from Motion or just plain URL's
What's next? I am thinking about the concept of a "Display". A display capable of showing images, videos and notifications. This would perfectly integrate with the contentprovider concept. Playing a directory of images as a slideshow on our touchscreen (picturelist support) or playing a list of images on our TV.