Pachube EEML from Arduino Ethernet Shield - No PC

My goal is to create a Pachube manual update client on the arduino that pushes EEML XML format to Pachube directly, without a PC in the middle. I want to do this because the XML format is a lot better than the CSV one: it allows me to tag the data from within the code with labels and units. It is also cleaner to understand.

I also want to use the same EEML XML format for my own purposes. So the same Arduino + Ethernet Shield that sends the data, I want it to provide the data itself as a web server for my internal applications.

Eventually I will equip this machine with an XBEE to serve as a gateway to other applications, much like what Funnel IO is trying to do but eliminating the need for a PC in the middle. (No sense in having a small device if it has to be connected to a full featured PC).

If someone has a better library, please let me know where to find it. Here is a link to the code I am using to accomplish this purpose. So far it is working well enough. Some interesting points: * I had to print directly to the stream (ethernet in or out), because creating an EEML XML string was too much for the small memory of the Arduino. Direct writing as a stream solves that. * I still want to avoid the reset every time it uploads to pachube (took that from the pachube CSV example).

The code sample of what I have is on: http://actionsresults.com/blog/2010/02/18/pachube/

Let me know if there is a better way of doing it. I would rather use someone else's code if it will accomplish it better.

For a book project I implemented an application that updates the pachube feeds by calling an eeml update script. This script (PHP) is located on a intranet or intranet webserver. The arduino board calls this update script via the ethernet shield. The call from the arduino is a simple URL call with a couple parameters:

myserver.com/updata-pachube.php?feedid=1234&feeddata0=123&feeddata1=789

This way I don't need a running pc and on the arduino board runs a simple script that reads data from sensors.