Netzflocken

...was so an- und abfällt

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>

Talk about Coherence @ FOSDEM 2008

written by dev, on 2008-02-17 21:42.

I’ll have the pleasure to talk about Coherence at the FOSDEM 2008.

The talk will be on Sunday afternoon at 16:40 in room Ferrer and will have a special focus on the UPnP integration in Rhythmbox.

So if you are in Brussels, be sure to drop by and do not miss it. :-)

If you want to meet me, speak about DLNA/UPnP in general, or have a revolutionary idea for Coherence, please ping me on irc.

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

Coherence 0.5.0 release

written by dev, on 2008-01-01 12:54.

Exactly one year after Coherence went public, I had the pleasure to release version 0.5.0.

The topics of this release are:

  • better DLNA support, in particular for the Sony Playstation 3
  • a MediaServer backend for Shoutcast internet radio streams
  • an experimental last.fm MediaServer backend for the last.fm service
  • methods to remove local devices from a Coherence instance
  • slow move to an XML based configuration file
  • support for BSD systems - thx kraft!
  • an emerging D-Bus interface
  • more platform independency for our Twisted inotify module,
    using libc when possible
  • and a lot more of the usual bugfixes and enhancements

A Happy New Year!

Merry Christmas 2007

written by dev, on 2007-12-24 10:50.

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. :)