View EVIROMUX SEMS Sensor Data as XML

NTI’s Enterprise Server Environment Monitoring System (ENVIROMUX-SEMS-16) provides full configuration via a web interface. NTI provides a fully functional web interface demo.
The Summary page lists all sensors, including their type, description, value, and status.
The value and status parameters for each sensor can also be monitored via an XML feed.
Although the purpose of this feed is to for the SEMS web interface itself to asynchronously update the data on the screen without requiring the user to refresh the page, it can be used by external software to periodically retrieve the data.

The XML feed can be accessed at [IP Address of the SEMS]/sensors.xml.

Here’s a sample XML:

<?xml version='1.0' encoding='ISO-8859-1'?>
<sems>
	<pows>
		<pow_v1>OK</pow_v1>
		<pow_s1>Normal</pow_s1>
	</pows>
	<ints>
		<ints_v1>91.0&amp;#0176F</ints_v1>
		<ints_s1>Normal</ints_s1>
		<ints_v2>22%</ints_v2>
		<ints_s2>Normal</ints_s2>
		<ints_v3>13.5V</ints_v3>
		<ints_s3>&lt;FONT COLOR="red"&gt;Alarm&lt;/FONT&gt;</ints_s3>
	</ints>
	<exts>
		<exts_v1>70.5&amp;#0176F</exts_v1>
		<exts_s1>Normal</exts_s1>
		...
		<exts_v32>33%</exts_v32>
		<exts_s32>Normal</exts_s32>
	</exts>
	<dinp>
		<dinp_v1>Closed</dinp_v1>
		<dinp_s1>Normal</dinp_s1>
		...
		<dinp_v5>Closed</dinp_v5>
		<dinp_s5>Normal</dinp_s5>
	</dinp>
	<rout>
		<rout_v1>Open</rout_v1>
		...
		<rout_v4>Open</rout_v4>
	</rout>
	<ipd>
		<ipd_v1>Responding</ipd_v1>
		<ipd_s1>Normal</ipd_s1>
		<ipd_v2>Responding</ipd_v2>
		<ipd_s2>Normal</ipd_s2>
	</ipd>
	<title>&lt;FONT COLOR="red"&gt;&lt;/FONT&gt;</title>
</sems>

The root node is sems. It contains:

  • pows – power supplies
  • exts – external sensors
  • ints – internal sensors
  • dinp – digital inputs
  • rout – output relays
  • ipd – IP devices
  • title – indicates an overall presence of an alert

Each of the nodes above contains as series of children nodes. Each two of the children nodes correspond to
one sensor as indicated by the ending number. The letter after the underscore indicates whether the node
content is a value (v) or a status (s). Therefore <ints_v1> and <ints_s1> describe the first internal
sensor’s value and status respectively. The only exception are the output relays which only have values, no
status.

Although the SEMS has 16 inputs you’ll notice that the
external sensor count goes up to 32.
This is because some of the physical external sensors are double-function sensors, like the
Temperature/Humidity Sensor which returns
two values and two statuses for each of the parameters it measures. The double-function sensors will act as
two separate sensors (having IDs of e.g. 1 and 2), while the single-function sensors will act as only one
omitting the second set of nodes. Here’s an example:

<exts_v1>70.8&amp;#0176F</exts_v1>
<exts_s1>Normal</exts_s1>
<exts_v2>28%</exts_v2>
<exts_s2>Normal</exts_s2>
<exts_v3>Open</exts_v3>
<exts_s3>Normal</exts_s3>
<exts_v7>73.0&amp;#0176F</exts_v7>
<exts_s7>Normal</exts_s7>

The first two sensors are the Temperature/Humidity Sensor (exts_v1, exts_s1 and exts_v2, exts_s2). The second sensor is the
Infrared Motion Detection sensor,
which occupies IDs 3 and 4. Because it is a single-function sensor the nodes with ID 4 are skipped.

In the example above sensor with ID 3 is followed by sensor with ID 5, therefore we can assume that there’s no
sensor plugged in or configured for port 3. The rule is that for a sensor port P the node IDs are P * 2 – 1 and P * 2. If you
have multiple SEMS connected in a master/slave configuration the sensor node IDs will start with the master and continue
with each following slave, so the formula for slave S (for master S will be 0) and port N will be S * 32 + P * 2 – 1 and S * 32 + P * 2.

The last node, title, indicates whether there are any sensor alerts present. If there are no alerts it will contain a only &lt;FONT COLOR=”red”&gt;&lt;/FONT&gt;, otherwise it will also contain Sensor Alerts Present (i.e. &lt;FONT COLOR=”red”&gt;Sensor Alerts Present&lt;/FONT&gt;).

A few notes:

  • The degree sign (°), whose numeric character reference value is &#0176;, ommits the trailing colon and is doubly encoded in the XML so it will appear as &amp;#0176. It will be followed by either F (Fahrenheight) or C (Celsius)
  • When a status goes into alert mode (e.g. Alarm) the value will be enclosed in an HTML encoded font tag like in the example above:
    &lt;FONT COLOR=”red”&gt;Alarm&lt;/FONT&gt; so you might want to have your software parse this out.
  • If you are only concerned with satuses, not values, you could parse the title node first to determine whether it contains Sensor Alerts Present. If it doesn’t there won’t be any need to parse the rest of the XML.

You can get more information about the web interface from the ENVIROMUX-SEMS-16 online manual or on the ENVIROMUX-SEMS-16 product page

This entry was posted in Application Note and tagged , , , . Bookmark the permalink.

Leave a Reply