Netzflocken

...was so an- und abfällt

Entries tagged "home-entertainment"

there will be light

written by dev, on 2008-03-16 12:35.

Over the last days I’ve added support for the UPnP Lighting Controls V 1.0 to Coherence.

Although there aren’t yet much application areas for this specification outside of maybe some futuristic showrooms and research laboratories - and here at my place with my little UPnP <-> EIB bridge - but that specification addresses one of the biggest obstacles when it comes to home-automation.

The need to know/to program the unique id of a new device you bring into your household and to establish the connection between a switch and that device, is in all serious automation systems diametrically opposed to the wish of the ordinary customer who just wants to buy a new lamp, plug it in and have it working.

Newer systems like digtalstrom or ZigBee take that (partially) into account, but here too UPnP has the potential to model a unified layer above the system and vendor specific peculiarities.

And having that in Coherence is a nice demonstration of the simplicity implementing a device with it anyway.

class SimpleLight(Backend):

    """ this is a backend for a simple light
        that only can be switched on or off

        therefore we need to inform Coherence
        about the state, and a method to change it

        everything else is done by Coherence
    """

    implements = ['BinaryLight']
    logCategory = 'simple_light'

    def __init__(self, server, **kwargs):
        self.name = kwargs.get('name','SimpleLight')
        self.server = server
        self.state = 0 # we start switched off
        louie.send('Coherence.UPnP.Backend.init_completed', None, backend=self)

    def upnp_init(self):
        if self.server:
            self.server.switch_power_server.set_variable(0, 'Target', self.state)
            self.server.switch_power_server.set_variable(0, 'Status', self.state)

    def upnp_SetTarget(self,**kwargs):
        self.info('upnp_SetTarget %r', kwargs)
        self.state = int(kwargs['NewTargetValue'])
        if self.server:
            self.server.switch_power_server.set_variable(0, 'Target', self.state)
            self.server.switch_power_server.set_variable(0, 'Status', self.state)
        print "we have been switched to state", self.state
        return {}
Yep, that’s all. :-)

From the three UPnP actions the SwitchPower service defines, only one is actually needed to implement, the other two actions can be handled by Coherence autonomously.

Coherence 0.5.2 - the "little leap"

written by dev, on 2008-02-29 22:06.

I’m happy to announce a new release of

Coherence 0.5.2 - the “little leap”

on this 29th of February 2008.

This is on the one hand an interim release to get into the distributions an updated package providing support for new features used by the upcoming versions of Rhythmbox and Elisa.

On the other hand there are some enhancements that are of general interest too:

  • rework of the XBox 360 support
  • refinements and improvements on the client side API, incorporating things we learned on extending the Rhythmbox UPnP plugin
  • some efforts on smoothing the “just use it as a MediaServer/-Renderer” user experience
  • rearrangements in the way multiple res elements are ordered, fixes issues which we had with some UPnP stacks and their ‘wayward’ interpretation of the specs
  • and the usual bugfixes and improvements

More details at the Coherence site

The best showcase for what can be done with Coherence is at the moment for sure the Rhythmbox UPnP plugin.

It enables Rhythmbox

  • to act as an UPnP MediaServer, serving its media files to other UPnP clients
  • be an UPnP client itself
  • and handing over control to an UPnP ControlPoint, announcing itself as an UPnP MediaRenderer
<shameless-plug>
A demonstration can be viewed in a little video over here.
</shameless-plug>

Coherence and Rhythmbox UPnP interaction

written by dev, on 2008-01-30 22:13.

I made a little video to demonstrate the new features of the upcoming next version of the Rhythmbox UPnP plugin.

It shows Rhythmbox:

  • acting as an UPnP MediaServer, serving its files to the UPnP player Media Streamer on the Nokia N800
  • being itself a client of a Coherence UPnP MediaServer
  • and in the end acting as an UPnP MediaRenderer, controlled by the ControlPoint on the N800


Original better-resolution avi here

Nokia N95 8GB gets DLNA certification

written by dev, on 2008-01-21 16:03.

A few days ago Nokia announced that the N95 8GB got - as the first mobile phone ever - a DLNA certification.

Now they have added a video demonstrating its use within a home network.

Nothing new actually in regards to the UPnP functionality - the phone acts as a MediaServer and a ControlPoint - but the video shows more than any 1000 marketing words what media sharing interoperability does mean.


Original better-resolution mpeg here

Serving DivX/XviD content with UPnP to the Playstation 3

written by dev, on 2007-12-18 14:12.

Since today the new firmware 2.10 is out and the Playstation 3 has DivX-Support. :-B

And Coherence with changeset 699 serves these filetypes via UPnP to the Playstation 3 too.

The only thing needed for the UPnP MediaServer is to replace the common mimetype for avi containers from video/x-msvideo with video/avi or video/divx. The DLNA profile seems actually not to be necessary for the video files at all.

Not all DivX flavours are supported, follow the comments here for more details.

PS3 support for DivX playback as this years Christmas present?

written by dev, on 2007-12-14 21:51.

According to this post at Gizmodo the long awaited support to play DivX files on the Playstation 3 seems to be on its way.

So let’s see what DLNA adventures will be in store for us and keep your fingers crossed.

Coherence UPnP MediaServer backend for Last.fm approaching

written by dev, on 2007-12-09 22:34.

Today on #coherence:
[22:12]	* Crazy_Morty	is just listening to his first track from LastFM!
[22:14]	<Crazy_Morty>	Skipping works like a charm!
[22:18]	<Crazy_Morty>	Two days of work. Learning Python included....
[22:18]	<Crazy_Morty>	Nice Backend. :)

Xbox 360 update brings AVI playback

written by dev, on 2007-12-03 20:26.

The new firmware update, scheduled for the 4th of December, will bring AVI (MPEG-4 Part 2, Simple Profile and Advanced Simple Profile) playback to the Xbox 360.

Sony, I’m sure you have heard of Sun Tzu? Shouting out what you do next and allowing your opponent to pull the rabbit out of the hat - even worse if the rabbit is such a highly anticipated feature - is hardly found in one of the thirteen chapters of the ‘Art of War’. ;-)

Anyway, and that’s the main reason for this post, Coherence should - more or less out of the box - stream these kind of video files to both video game consoles.

Coherence 0.1.0 release

written by dev, on 2007-02-16 00:40.

I did it!

Today I tagged the 0.1.0 release of Coherence and made it public with an entry in the Python Cheeseshop, and it got downloaded already several dozen times.

During the next days the new Elisa release will get announced too, using now, aside from the UPnP MediaServer, Coherence for the UPnP client too.

Somehow I’m now waiting in suspense for new bug reports – not too many I hope , feature requests and new ideas on what to change, to improve or to enhance.

Things that are on the list for the next releases:

  • improve the web UI so we get closer to a web-based UPnP ControlPoint
    Coherence-cp-20070216
    For now we just show all found devices, but thanks to Athena at least in real time when they announce or log off themself.
  • testing of other devices, a first step into the Intel UPnP Device Spy direction
  • “port” Coherence to the Maemo platform, so we’ll can use the UPnP MediaServer and the UPnP MediaRenderer on the Nokia N800
  • switching to Flickrpc - Ross Burtons Twisted based Flickr library
  • start with a DAAP->UPnP bridge and export in a first step DAAP provided content via UPnP

Coherence in conjunction with Media Streamer on a Nokia N800

written by dev, on 2007-02-05 21:58.

N800Thanks to Nokias generosity I now have the possibility to test Coherence with and against the UPnP stack shipped with the N800 and used e.g. by Media Streamer or Canola and the UPnP plugin for the gnome-vfs layer.

So far I used the file manger application and Media Streamer, and there have been pleasant and promising results.

The Coherence powered devices are spotted by the N800 and the content retrieval from the MediaServers - even the Flickr one - works fine.

N800 media streamer screenshot

Albeit from the file manger application which seems to circle sometimes.

The GStreamer MediaRenderer backend is recognized too and can be controlled, with the restriction that the Media Streamer UI does not follow the state changes. I’m still unsure whether this is on behalf of Coherence or on the Media Streamer side, but whatever it is, it can’t be anything more than a mere nothing.

Meaning we are probably only one little bug apart from being able to control Elisa with the N800.

Regarding Media Streamer acting itself as a controllable MediaRenderer, there it is fallen a bit short of my expectations, as it doesn’t provide anything at all – neither controlling nor eventing.

That’s definitily another good reason to get Coherence up and running on the Maemo platform.

PS: If your are like me looking for something to take a screenshot on the N800, I have been lucky with load-applet-run, and I was told @ irc://freenode.net/#maemo that the Maemo screen grabber together with the osso-screenshot-tool should work too.