GoodRobot server supports XML (EEML) as the data format and is also the default data format. It also supports EEMLx XML, the details of which is available here.
EEML Overview
From the website http://www.eeml.org/, EEML is a markup language that describes the data output of sensors and actuators, often in an architectural context but also in interactive environments and interface devices.... So that everyone talks the same EEML 'language', a schema has been written in XML for formatting data streams from sensors and devices. This provides a simple yet sophisticated structure for formatting environmental data, in the widest sense possible.
The XML schema for EEML is located at http://www.eeml.org/xsd/005/005.xsd. Minimal and complete examples of EEML is located at the URLs mentioned. GoodRobot will use this XML schema (EEML) for all its API. EEML is used by several devices in environments including Pachube and can help easily connecting to GoodRobot environment.
Sample EEML example
A sample XML (EEML) is listed below. In this example, a robot sends its positional and movement response and includes the HTTP headers.
PUT http://www.GoodRobot.com/api/myrobot.resource
Host: www.GoodRobot.com
Date: Fri Apr 10 13:16:35 GMT 2009
X-GoodRobotKey: Components(myrobot)_key_goes_here
..
<?xml version="1.0" encoding="UTF-8"?>
<eeml xmlns="http://www.eeml.org/xsd/005"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.eeml.org/xsd/005 http://www.eeml.org/xsd/005/005.xsd" version="5">
<environment updated="2009-04-11T18:13:51.0Z">
<title>Movement and Positional data sent by myrobot</title>
<location exposure="indoor" domain="physical" disposition="fixed">
<name>My Room</name>
<lat>11.0</lat>
<lon>77.0</lon>
<ele>0.42</ele>
</location>
<data id="0">
<tag>speed</tag>
<tag>velocity</tag>
<value minValue="-100.0" maxValue="100.0">36.2</value>
</data>
<data id="1">
<tag>direction</tag>
<tag>turn</tag>
<value minValue="-100.0" maxValue="100.0">84.0</value>
</data>
<data id="2">
<tag>gear</tag>
<value minValue="1" maxValue="5">5</value>
</data>
<data id="3">
<tag>distance</tag>
<value>2.3</value>
<unit symbol="m" type="basicSI">meter</unit>
</data>
</environment>
</eeml>
.. Response starts here...
