1
0
mirror of https://github.com/moparisthebest/xeps synced 2025-01-31 07:20:09 -05:00

Rev 0.5 of XEP-0323

This commit is contained in:
Peter Waher 2015-03-02 17:30:25 -03:00
parent 84a1fd7035
commit 1c9b4f50d1

View File

@ -30,19 +30,40 @@
<uri>http://www.linkedin.com/in/peterwaher</uri> <uri>http://www.linkedin.com/in/peterwaher</uri>
</author> </author>
<revision> <revision>
<version>0.3</version> <version>0.5</version>
<date>2014-04-07</date> <date>2015-03-02</date>
<initials>pw</initials> <initials>pw</initials>
<remark> <remark>
<p>Updated IQ-error stanzas for <link url='#readoutrejected'>readout rejections</link> to make them compliant with RFC-6120.</p> <p>
<p>The element <strong>rejected</strong> is no longer used and has been removed.</p> Added '<strong>cancel</strong>' and '<strong>cancelled</strong>' elements to the XML schema.
These elements where previously available in <link url='#cancelreadout'>use cases</link>, but not documented in the XML schema.
</p>
</remark>
</revision>
<revision>
<version>0.4</version>
<date>2014-03-31</date>
<initials>pw</initials>
<remark>
<p>
Updated IQ-error stanzas for <link url='#readoutrejected'>readout rejections</link> to make them compliant with RFC-6120.
</p>
<p>
The element <strong>rejected</strong> is no longer used and has been removed.
</p>
<p> <p>
Harmonization of data types between XEP-0323 and XEP-0325. This has resulted in the addition of the following new field types: <strong>date</strong>, Harmonization of data types between XEP-0323 and XEP-0325. This has resulted in the addition of the following new field types: <strong>date</strong>,
<strong>int</strong>, <strong>long</strong> and <strong>time</strong>. The <strong>timeSpan</strong> type has been renamed <strong>duration</strong>. <strong>int</strong>, <strong>long</strong> and <strong>time</strong>. The <strong>timeSpan</strong> type has been renamed <strong>duration</strong>.
</p> </p>
<p>The term Field Status Value has been renamed <link url='#fieldqosvalues'>Field Quality of Service Value</link>, to make it clearer.</p> <p>
<p>Added a <link url='#fieldqosvalues'>inProgress</link> field quality of service value.</p> The term Field Status Value has been renamed <link url='#fieldqosvalues'>Field Quality of Service Value</link>, to make it clearer.
<p>Added a section giving an example of the <link url='#estimatesvsreadouts'>difference between estimates and normally read values</link>.</p> </p>
<p>
Added a <link url='#fieldqosvalues'>inProgress</link> field quality of service value.
</p>
<p>
Added a section giving an example of the <link url='#estimatesvsreadouts'>difference between estimates and normally read values</link>.
</p>
<p> <p>
A new field attribute named <link url='#control'>writable</link> has been added. It can be used to inform clients that the corresponding value can be controlled A new field attribute named <link url='#control'>writable</link> has been added. It can be used to inform clients that the corresponding value can be controlled
using XEP-0325. using XEP-0325.
@ -51,11 +72,18 @@
</remark> </remark>
</revision> </revision>
<revision> <revision>
<version>0.2</version> <version>0.3</version>
<date>2014-03-10</date> <date>2014-02-17</date>
<initials>pw</initials> <initials>pw</initials>
<remark> <remark>
<p>Changed the id attrobutes of IQ stanzas, to highlight they are different from sequence numbers used in requests.</p> <p>Changed the id attrobutes of IQ stanzas, to highlight they are different from sequence numbers used in requests.</p>
</remark>
</revision>
<revision>
<version>0.2</version>
<date>2013-05-07</date>
<initials>pw</initials>
<remark>
<p>Fixed links to documents with new numbers.</p> <p>Fixed links to documents with new numbers.</p>
<p>Changed namespace urn:xmpp:sn to urn:xmpp:iot:sensordata</p> <p>Changed namespace urn:xmpp:sn to urn:xmpp:iot:sensordata</p>
</remark> </remark>
@ -105,8 +133,12 @@
<remark> <remark>
<p>Corrected some errors in XML examples.</p> <p>Corrected some errors in XML examples.</p>
<p>English corrected.</p> <p>English corrected.</p>
<p>Added <strong>errors</strong> elements to the <strong>rejected</strong> element.</p> <p>
<p>Added <strong>cancel</strong> command with corresponding <strong>cancelled</strong> response.</p> Added <strong>errors</strong> elements to the <strong>rejected</strong> element.
</p>
<p>
Added <strong>cancel</strong> command with corresponding <strong>cancelled</strong> response.
</p>
</remark> </remark>
</revision> </revision>
<revision> <revision>
@ -130,7 +162,7 @@
<p> <p>
Sensor networks contains many different architectures and use cases. For this reason, the sensor network standards have been divided into multiple XEPs according to the following table: Sensor networks contains many different architectures and use cases. For this reason, the sensor network standards have been divided into multiple XEPs according to the following table:
</p> </p>
<table caption='Sensor Network XEPs'> <table caption='Internet of Things XEPs'>
<tr> <tr>
<th>XEP</th> <th>XEP</th>
<th>Description</th> <th>Description</th>
@ -139,10 +171,6 @@
<td>xep-0000-IoT-BatteryPoweredSensors</td> <td>xep-0000-IoT-BatteryPoweredSensors</td>
<td>Defines how to handle the peculiars related to battery powered devices, and other devices intermittently available on the network.</td> <td>Defines how to handle the peculiars related to battery powered devices, and other devices intermittently available on the network.</td>
</tr> </tr>
<tr>
<td>xep-0000-IoT-Discovery</td>
<td>Defines the peculiars of sensor discovery in sensor networks. Apart from discovering sensors by JID, it also defines how to discover sensors based on location, etc.</td>
</tr>
<tr> <tr>
<td>xep-0000-IoT-Events</td> <td>xep-0000-IoT-Events</td>
<td>Defines how sensors send events, how event subscription, hysteresis levels, etc., are configured.</td> <td>Defines how sensors send events, how event subscription, hysteresis levels, etc., are configured.</td>
@ -172,8 +200,10 @@
</tr> </tr>
<tr> <tr>
<td>XEP-0323</td> <td>XEP-0323</td>
<td>This specification. Provides the underlying architecture, basic operations and data structures for sensor data communication over XMPP networks. <td>
It includes a hardware abstraction model, removing any technical detail implemented in underlying technologies. This XEP is used by all other sensor network XEPs.</td> This specification. Provides the underlying architecture, basic operations and data structures for sensor data communication over XMPP networks.
It includes a hardware abstraction model, removing any technical detail implemented in underlying technologies. This XEP is used by all other sensor network XEPs.
</td>
</tr> </tr>
<tr> <tr>
<td>XEP-0324</td> <td>XEP-0324</td>
@ -195,6 +225,10 @@
<td>XEP-0336</td> <td>XEP-0336</td>
<td>Defines extensions for how dynamic forms can be created, based on &xep0004;, &xep0122;, &xep0137; and &xep0141;.</td> <td>Defines extensions for how dynamic forms can be created, based on &xep0004;, &xep0122;, &xep0137; and &xep0141;.</td>
</tr> </tr>
<tr>
<td>XEP-0347</td>
<td>Defines the peculiars of sensor discovery in sensor networks. Apart from discovering sensors by JID, it also defines how to discover sensors based on location, etc.</td>
</tr>
</table> </table>
</section1> </section1>
<section1 topic='Glossary' anchor='glossary'> <section1 topic='Glossary' anchor='glossary'>
@ -214,8 +248,10 @@
</di> </di>
<di> <di>
<dt>Field</dt> <dt>Field</dt>
<dd>One item of sensor data. Contains information about: Node, Field Name, Value, Precision, Unit, Value Type, Status, Timestamp, Localization information, etc. <dd>
Fields should be unique within the triple (Node ID, Field Name, Timestamp).</dd> One item of sensor data. Contains information about: Node, Field Name, Value, Precision, Unit, Value Type, Status, Timestamp, Localization information, etc.
Fields should be unique within the triple (Node ID, Field Name, Timestamp).
</dd>
</di> </di>
<di> <di>
<dt>Field Name</dt> <dt>Field Name</dt>
@ -250,17 +286,22 @@
<dd> <dd>
Graphs contain nodes and edges between nodes. In Internet of Things, sensors, actuators, meters, devices, gateways, etc., are often depicted as nodes whereas links between sensors (friendships) Graphs contain nodes and edges between nodes. In Internet of Things, sensors, actuators, meters, devices, gateways, etc., are often depicted as nodes whereas links between sensors (friendships)
are depicted as edges. In abstract terms, it's easier to talk about a Node, rather than list different possible node types (sensors, actuators, meters, devices, gateways, etc.). are depicted as edges. In abstract terms, it's easier to talk about a Node, rather than list different possible node types (sensors, actuators, meters, devices, gateways, etc.).
Each Node has a Node ID.</dd> Each Node has a Node ID.
</dd>
</di> </di>
<di> <di>
<dt>Node ID</dt> <dt>Node ID</dt>
<dd>An ID uniquely identifying a node within its corresponding context. If a globally unique ID is desired, an architecture should be used using a universally accepted <dd>
ID scheme.</dd> An ID uniquely identifying a node within its corresponding context. If a globally unique ID is desired, an architecture should be used using a universally accepted
ID scheme.
</dd>
</di> </di>
<di> <di>
<dt>Parameter</dt> <dt>Parameter</dt>
<dd>Readable and/or writable property on a node/device. The XEP-0326 &xep0326; deals with reading and writing parameters <dd>
on nodes/devices. Fields are not parameters, and parameters are not fields.</dd> Readable and/or writable property on a node/device. The XEP-0326 &xep0326; deals with reading and writing parameters
on nodes/devices. Fields are not parameters, and parameters are not fields.
</dd>
</di> </di>
<di> <di>
<dt>Peak Value</dt> <dt>Peak Value</dt>
@ -268,14 +309,18 @@
</di> </di>
<di> <di>
<dt>Precision</dt> <dt>Precision</dt>
<dd>In physics, precision determines the number of digits of precision. In sensor networks however, this definition is not easily applicable. Instead, precision <dd>
In physics, precision determines the number of digits of precision. In sensor networks however, this definition is not easily applicable. Instead, precision
determines, for example, the number of decimals of precision, or power of precision. Example: 123.200 MWh contains 3 decimals of precision. All entities parsing and determines, for example, the number of decimals of precision, or power of precision. Example: 123.200 MWh contains 3 decimals of precision. All entities parsing and
delivering field information in sensor networks should always retain the number of decimals in a message.</dd> delivering field information in sensor networks should always retain the number of decimals in a message.
</dd>
</di> </di>
<di> <di>
<dt>Sensor</dt> <dt>Sensor</dt>
<dd>Device measuring at least one digital value (0 or 1) or analog value (value with precision and physical unit). Examples: Temperature sensor, pressure sensor, etc. <dd>
Sensor values are reported as fields during read-out. Each sensor has a unique Node ID.</dd> Device measuring at least one digital value (0 or 1) or analog value (value with precision and physical unit). Examples: Temperature sensor, pressure sensor, etc.
Sensor values are reported as fields during read-out. Each sensor has a unique Node ID.
</dd>
</di> </di>
<di> <di>
<dt>SN</dt> <dt>SN</dt>
@ -420,7 +465,7 @@
</p> </p>
<section2 topic='Request Read-out of momentary values' anchor='readmomentary'> <section2 topic='Request Read-out of momentary values' anchor='readmomentary'>
<p> <p>
The client that wishes to receive momentary values from the sensor initiates the request using the <strong>req</strong> request sent to the device. The client that wishes to receive momentary values from the sensor initiates the request using the <strong>req</strong> element sent to the device.
</p> </p>
<example caption='Read-out request of momentary values from a device'> <example caption='Read-out request of momentary values from a device'>
<![CDATA[ <![CDATA[
@ -782,8 +827,10 @@
</query> </query>
</iq>]]> </iq>]]>
</example> </example>
<p>In order for an application to determine whether an entity supports this protocol, where possible it SHOULD use the dynamic, presence-based profile of service discovery defined <p>
in &xep0115;. However, if an application has not received entity capabilities information from an entity, it SHOULD use explicit service discovery instead.</p> In order for an application to determine whether an entity supports this protocol, where possible it SHOULD use the dynamic, presence-based profile of service discovery defined
in &xep0115;. However, if an application has not received entity capabilities information from an entity, it SHOULD use explicit service discovery instead.
</p>
</section1> </section1>
<section1 topic='Implementation Notes' anchor='impl'> <section1 topic='Implementation Notes' anchor='impl'>
<section2 topic='String lengths' anchor='stringlengths'> <section2 topic='String lengths' anchor='stringlengths'>
@ -792,9 +839,11 @@
affected negatively by this for two reasons: affected negatively by this for two reasons:
</p> </p>
<ul> <ul>
<li>For sensors with limited memory, or where package size is important, &xep0322; is supposed to be used. <li>
For sensors with limited memory, or where package size is important, &xep0322; is supposed to be used.
EXI compresses strings as normalized index values, making the string appear only once in the packet. Therefore, shortening string length doesn't affect packet EXI compresses strings as normalized index values, making the string appear only once in the packet. Therefore, shortening string length doesn't affect packet
size much. Element and attribute names in known namespaces are furthermore only encoded by index in schema, not by name.</li> size much. Element and attribute names in known namespaces are furthermore only encoded by index in schema, not by name.
</li>
<li>If limited memory or package size is not a consideration, readability and ease of implementation is preferred to short messages.</li> <li>If limited memory or package size is not a consideration, readability and ease of implementation is preferred to short messages.</li>
</ul> </ul>
</section2> </section2>
@ -1429,6 +1478,18 @@
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name='cancel'>
<xs:complexType>
<xs:attribute name='seqnr' type='xs:int' use='required'/>
</xs:complexType>
</xs:element>
<xs:element name='cancelled'>
<xs:complexType>
<xs:attribute name='seqnr' type='xs:int' use='required'/>
</xs:complexType>
</xs:element>
<xs:element name='fields'> <xs:element name='fields'>
<xs:complexType> <xs:complexType>
<xs:sequence minOccurs='0' maxOccurs='unbounded'> <xs:sequence minOccurs='0' maxOccurs='unbounded'>
@ -1633,6 +1694,6 @@
</ul> </ul>
</section1> </section1>
<section1 topic='Acknowledgements' anchor='ack'> <section1 topic='Acknowledgements' anchor='ack'>
<p>Thanks to Joachim Lindborg, Karin Forsell, Tina Beckman, Kevin Smith and Tobias Markmann for all valuable feedback.</p> <p>Thanks to Flemon Ghobrial, Joachim Lindborg, Karin Forsell, Tina Beckman, Kevin Smith and Tobias Markmann for all valuable feedback.</p>
</section1> </section1>
</xep> </xep>