All new UPnP-2-xPL gateway

It’s been more than a year since I actually updated the gateway, but this is a major overhaul, still early stage, so probably going to be buggy.

The xPL schema set has been revised and is more thorough, the entire UPnP device description will now be announced and it will be done in a more structured way (check the readme for the schema details). Obviously there is no compatibility with the previous version. But that was a piece of disposable-test-code anyway. Continue reading

Updated xPLlib, with support for large fragmented messages

After some discussion a proposal was made on the xPL forums to add fragmentation so the message size limit could be bypassed. The schema for this is ‘fragment.basic’ and support for it has been added to the xPL library for .NET in version 5.4.

There are some other minor updates too, check the changelog for those.

xPLLib for .NET is available for download on the xPLLib page

 

Some updates; xPLLib and WireShark xPL dissector

Today I posted some long overdue updates. Quite some time ago it was agreed to loosen up the xPL protocol with regard to the values in the xPL message body.

From pure ASCII it now allows UTF8 encoding for the values (keys remain ASCII only). At the same time the length restriction of 128 characters was lifted, which basically means that the value can be as long as the overall message size supports (which is set at 1500 bytes).

So todays updates are the xPLLib for .NET, version 5.3, updated to allow these changes and the WireShark dissector, version 1.1, which will now show a warning (for backward compatibility) in cases of UTF8 and long values.

There are some other minor updates too, check the changelog for those.

Continue reading

WireShark xPL dissector; a network protocol analyzer

I’ve recently turned to WireShark to do some network analysis but found tracking the bits and bytes of xPL not too easy, though still not difficult. But when I read that WireShark can be extended using Lua, I started fiddling around with that to see how I could get xPL support in WireShark. And this post is about the results…

The ‘dissector’ I wrote (download is below) will examine xPL packets, and dissect them into the underlying components. This allows you to use WireSharks filtering capabilities to find just the xPL messages you need. Beyond that it will analyze the structure of the messages received and validate that against the xPL protocol, flagging any malformed messages. Continue reading

UPnP example in Visual Basic, an improved Network Light sample

In my attempt to further automate my home, I’m trying to create UPnP devices for my appliances. The simplest examples are power switches and lights that can be controlled using the UPnP protocol. Obviously that’s not very user friendly, so I decided to experiment with a webinterface for the interaction, while keeping the UPnP functionality. The UPnP part can then be connected to the RFXcom devices for actually controlling my X10 and HomeEasy equipment (still working on my DevCom project for the hardware connection part) Continue reading

Utility to add shortcuts to a network

What is it?

A shortcut/link to a URL visible on the network, by (ab)using UPnP technology. 

What does it do?

When Windows users on a network (local subnet) browse their network, they will see icons, with a description. When they double click them, a webpage pops up. Example: On my homeserver eMule runs as a peer-2-peer file sharing application. It features a webinterface and before I had a shortcut installed on each computer/laptop in the house. Now, I have installed the app on my homeserver and they simply double click the device “eMule downloader” from the network. Continue reading

UPnP device development with the Intel UPnP stack

When starting with UPnP development, some test projects, I initially started of with the Microsoft stack, as its already included in most Windows versions. But the documentation on the microsoft UPnP stack is so sparse, all examples I could find, were in C and then still only controlpoints, no devices. Hence I started using the Developer tools for UPnP (formerly by Intel). They contain a fully functional C# UPnP stack, and a code generator that generates a C stack. Just compile the C# stack and the resulting dll can be used from any (including VB) .NET language. Besides that the toolset contains a number of very usefull UPnP utilities.

The tools where initially available as the Intel UPnP tools, and after having disappeared from the Intel website for some time they have been relaunched as open source. Currently the stack is being maintained by Ylian Saint-Hilaire (Intel), and he does a good job at it (several bugfixes and improvements I submitted landed in the code quickly). Its a pitty that there isn’t a public forum for the UPnP tools.

This post is mostly about my experiences getting things up-and-running using the C# stack, which has its peculiarities, so here is what I learned; Continue reading

Updated xPLLib 5.2 and SMS application 1.2.25

During the development of the experimental UPnP gateway, I ran into more bugs in the xPLLib, some pretty serious ones to be honest. So as of yesterday the new version is available.

The SMS application remains functionally the same, its only updated because it might be affected by the bugs fixed in the new lib.

Check the xPL page for the details and downloads.