The UK Home Automation Archive

Archive Home
Group Home
Search Archive


Advanced Search

The UKHA-ARCHIVE IS CEASING OPERATIONS 31 DEC 2024


[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

NOW: BSC UID / ID clarification .. WAS correction to previous mail



--------------060604060100010207010401
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

paul6138 wrote:
> Sorry - in my last mail I droned on about UID's and where they come
> from - what I actually meant was ID in the BSC schema (particularly as
> it is implemented in the xap conduit for homeseer).
>
>
Hi Paul - Yes.. knew what you meant...

The UID is effectively a very compact shortform version of the source
addressA UID is made up of three parts. In the current xAP 1.2 spec the
format is

*UID=NNAAAASS*

*NN*=network number
*AAAA*=application/device address
*SS*=sub address (an endpoint within the device/application)

eg

*Source=Acme.Controller.Example:Floodlight
UID=FF12FE05*

would be endpoint 05 (Floodlight)  within the device 12FE
(Acme.Controller.Example) on your local xAP network (FF).

You would use an ID=05 (or ID=*) in a xAPBSC.cmd message and
target=Acme.Controller.Example:Floodlight to control this.

The 12FE identifies Acme.Controller.Example and the 05 is the
Floodlight.  Another endpoint might be the 'Heater' and is perhaps
endpoint 9 within our 'controller' example

*Source=Acme.Controller.Example:Heater
UID=FF12FE09*

Note that because the central 4 digits of the UID have remained the same
this indicates that the xAP hardware device that actually controls the
Floodlight is the same device that controls the Heater.  A xAPBSC.cmd
message would need an ID=09 to control this (or ID=*)

Just for completeness here's a third example

*Source=Acme.Controller.Demo:Heater
UID=FF12F205*

Now we have a second device called 'Heater' that is endpoint 05 on a
different xAP device . Note the source address is different as is the
central part of the UID (12F2).   Again in a xAPBSC.cmd message you
would use an ID=05 (or ID=*) to control this but the target= line would
be different to the previous examples . It would be
target=Acme.Controller.Demo:Heater


In a xAPBSC.cmd message the target= line should match the device you
want to address and the ID= should match the last two digits of the
UID.  ( this is true in the current xAP v1.2 release but will change to
be more flexible in the next protocol update to xAP).     Note that
either or both the target= and the ID= parameters can be wildcarded -
this is a very powerful feature allowing multiple endpoints to be
addressed simultaneously.  The only wildcard available for the ID=
parameter is ID=*  which means match every endpoint that also matches
the source address.   In the source address all of  xAP's wildcarding (
*  and  > in any position ) can be used.  Note that multiple bodies are
also allowable in xAP creating a most useful ability to set the state of
many endpoints within one device totally synchronised with only one xAP
message :-)

So to turn off the Floodlight used in the example above

*/xap-header
/*

*/{/*

*/    v=12/*

*/    hop=1/*

*/    uid=FF123400/*

*/    class=xAPBSC.cmd/*

*/    source=ACME.Controller.Central/*

*/    target=ACME.//Controller.Example:Floodlight/*

*/}/*

*/output.state.1/*

*/{/*

*/   ID=05/*

*/   State=OFF/*

/*}*/


NB - using ID=*  the above example would produce the exact same result
as the target address is unique

..and a more complex example to turn on both the heaters ...

*/xap-header
/*

*/{/*

*/    v=12/*

*/    hop=1/*

*/    uid=FF123400/*

*/    class=xAPBSC.cmd/*

*/    source=ACME.Controller.Central/*

*/    target=ACME.//Controller.*:Heater/*

*/}/*

*/output.state.1/*

*/{/*

*/   ID=*/*

*/   State=ON/*

/*}*/


NB (1)  - If you used ID=05 in the above example then ONLY the heater
that is controlled by the *Acme.Controller.Demo*  hardware would turn
on.  The heater on *Acme.Controller.Example *would not be controlled as
it's UID/ID is different  (09 compared to 05) and the Floodlights would
not be controlled (even though their ID matches) as the target line only
matches 'Heater'.

NB (2) It is a common mistake to not index the block names in a
xAPBSC.cmd message.    i.e. you should use *output.state.1* ,
*output.state.2* etc if there are multiple blocks in one xAP message.
Even with a single block you should name it *output.state.1* (and not
just *output.state*) . Although some xAP applications (HomeSeer and
Netiom included) are tolerant if you omit the index, your xAPBSC.cmd
message would not be to the xAPBSC v1.3 specification and will not work
with all devices or possible later revisions of current ones.  Also
duplicate block names and duplicate parameter names within one block are
either not allowed or about to be deprecated in xAP and so must not be
used. If you have a need for these you should index them (as above)
instead.

Kevin

More info in the full BSC v1.3 schema available here
http://www.xapautomation.org/modules.php?name=xAP_Content&pa=showpage&pid=xapbsc











--------------060604060100010207010401
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">


paul6138 wrote:
<blockquote cite="middpf6fo+qn5h@xxxxxxx"
type="cite">
<pre wrap="">Sorry - in my last mail I droned on about
UID's and where they come
from - what I actually meant was ID in the BSC schema (particularly as
it is implemented in the xap conduit for homeseer).

</pre>
</blockquote>
Hi Paul - Yes.. knew what you meant...<br>
<br>
The UID is effectively a very compact shortform version of the source
addressA UID is made up of three parts. In the current xAP 1.2 spec the
format is<br>
<br>
<b>UID=NNAAAASS</b><br>
<br>
&nbsp;&nbsp;&nbsp; <b>NN</b>=network
number<br>
&nbsp;&nbsp;&nbsp; <b>AAAA</b>=application/device
address<br>
&nbsp;&nbsp;&nbsp; <b>SS</b>=sub address (an
endpoint within the device/application)<br>
<br>
eg <br>
<br>
<b>Source=Acme.Controller.Example:Floodlight<br>
UID=FF12FE05</b><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; would be endpoint 05
(Floodlight)&nbsp; within the device 12FE
(Acme.Controller.Example) on your local xAP network (FF). <br>
<br>
You would use an ID=05 (or ID=*) in a xAPBSC.cmd message and
target=Acme.Controller.Example:Floodlight to control this.<br>
<br>
The 12FE identifies Acme.Controller.Example and the 05 is the
Floodlight.&nbsp; Another endpoint might be the 'Heater' and is perhaps
endpoint 9 within our 'controller' example<br>
<br>
<b>Source=Acme.Controller.Example:Heater<br>
UID=FF12FE09</b><br>
<br>
Note that because the central 4 digits of the UID have remained the
same this indicates that the xAP hardware device that actually controls
the Floodlight is the same device that controls the Heater.&nbsp; A
xAPBSC.cmd message would need an ID=09 to control this (or ID=*)<br>
<br>
Just for completeness here's a third example<br>
<br>
<b>Source=Acme.Controller.Demo:Heater<br>
UID=FF12F205</b><br>
<br>
Now we have a second device called 'Heater' that is endpoint 05 on a
different xAP device . Note the source address is different as is the
central part of the UID (12F2).&nbsp;&nbsp; Again in a xAPBSC.cmd
message you
would use an ID=05 (or ID=*) to control this but the target= line would
be different to the previous examples . It would be&nbsp;
target=Acme.Controller.Demo:Heater<br>
<br>
<br>
In a xAPBSC.cmd message the target= line should match the device you
want to address and the ID= should match the last two digits of the
UID.&nbsp; ( this is true in the current xAP v1.2 release but will
change to
be more flexible in the next protocol update to
xAP).&nbsp;&nbsp;&nbsp;&nbsp; Note that
either or both the target= and the ID= parameters can be wildcarded -
this is a very powerful feature allowing multiple endpoints to be
addressed simultaneously.&nbsp; The only wildcard available for the ID=
parameter is ID=*&nbsp; which means match every endpoint that also
matches
the source address.&nbsp;&nbsp; In the source address all
of&nbsp; xAP's wildcarding (
*&nbsp; and&nbsp; &gt; in any position ) can be used.&nbsp;
Note that multiple bodies
are also allowable in xAP creating a most useful ability to set the
state of many endpoints within one device totally synchronised with
only one xAP message :-)<br>
<br>
So to turn off the Floodlight used in the example above<br>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family: Verdana;">xap-header<br>
</span></i></small></small></b></big></p>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family:
Verdana;">{<o:p></o:p></span></i></small></small></b></big></p>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;&nbsp;
</span>v=12<o:p></o:p></span></i></small></small></b></big></p>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;&nbsp;
</span>hop=1<o:p></o:p></span></i></small></small></b></big></p>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;&nbsp;
</span>uid=FF123400<o:p></o:p></span></i></small></small></b></big></p>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;&nbsp;
</span>class=xAPBSC.cmd<o:p></o:p></span></i></small></small></b></big></p>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;&nbsp;
</span>source=<st1:stockticker
w:st="on">ACME</st1:stockticker>.Controller.Central<o:p></o:p></span></i></small></small></b></big></p>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;&nbsp;
</span>target=ACME.</span></i><i><span
style="font-family:
Verdana;">Controller.Example:Floodlight</span></i></small></small></b></big></p>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family:
Verdana;">}<o:p></o:p></span></i></small></small></b></big></p>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family:
Verdana;">output.state.1<o:p></o:p></span></i></small></small></b></big></p>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family:
Verdana;">{<o:p></o:p></span></i></small></small></b></big></p>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;
</span>ID=05<o:p></o:p></span></i></small></small></b></big></p>
<p
class="PreformattedText"><big><b><small><small><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;
</span>State=OFF<o:p></o:p></span></i></small></small></b></big></p>
<p class="PreformattedText"><i><span
style="font-family:
Verdana;"><big><b><small><small>}</small></small></b></big><o:p></o:p></span></i></p>
<br>
NB - using ID=*&nbsp; the above example would produce the exact same
result
as the target address is unique<br>
<br>
..and a more complex example to turn on both the heaters ...<br>
<br>
<p
class="PreformattedText"><small><b><i><span
style="font-family: Verdana;">xap-header<br>
</span></i></b></small></p>
<p
class="PreformattedText"><small><b><i><span
style="font-family:
Verdana;">{<o:p></o:p></span></i></b></small></p>
<p
class="PreformattedText"><small><b><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;&nbsp;
</span>v=12<o:p></o:p></span></i></b></small></p>
<p
class="PreformattedText"><small><b><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;&nbsp;
</span>hop=1<o:p></o:p></span></i></b></small></p>
<p
class="PreformattedText"><small><b><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;&nbsp;
</span>uid=FF123400<o:p></o:p></span></i></b></small></p>
<p
class="PreformattedText"><small><b><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;&nbsp;
</span>class=xAPBSC.cmd<o:p></o:p></span></i></b></small></p>
<p
class="PreformattedText"><small><b><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;&nbsp;
</span>source=<st1:stockticker
w:st="on">ACME</st1:stockticker>.Controller.Central<o:p></o:p></span></i></b></small></p>
<p
class="PreformattedText"><small><b><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;&nbsp;
</span>target=ACME.</span></i><i><span
style="font-family:
Verdana;">Controller.*:Heater</span></i></b></small></p>
<p
class="PreformattedText"><small><b><i><span
style="font-family:
Verdana;">}<o:p></o:p></span></i></b></small></p>
<p
class="PreformattedText"><small><b><i><span
style="font-family:
Verdana;">output.state.1<o:p></o:p></span></i></b></small></p>
<p
class="PreformattedText"><small><b><i><span
style="font-family:
Verdana;">{<o:p></o:p></span></i></b></small></p>
<p
class="PreformattedText"><small><b><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;
</span>ID=*<o:p></o:p></span></i></b></small></p>
<p
class="PreformattedText"><small><b><i><span
style="font-family: Verdana;"><span
style="">&nbsp;&nbsp;
</span>State=ON<o:p></o:p></span></i></b></small></p>
<p class="PreformattedText"><i><span
style="font-family:
Verdana;"><small><b>}</b></small><o:p></o:p></span></i></p>
<br>
NB (1)&nbsp; - If you used ID=05 in the above example then ONLY the
heater
that is controlled by the <b>Acme.Controller.Demo</b>&nbsp;
hardware would
turn on.&nbsp; The heater on <b>Acme.Controller.Example
</b>would not be
controlled as it's UID/ID is different&nbsp; (09 compared to 05) and
the
Floodlights would not be controlled (even though their ID matches) as
the target line only matches 'Heater'.<br>
<br>
NB (2) It is a common mistake to not index the block names in a
xAPBSC.cmd message. &nbsp;&nbsp; i.e. you should use
<b>output.state.1</b> , <b>output.state.2</b>
etc if there are multiple blocks in one xAP message. Even with a single
block you should name it <b>output.state.1</b> (and not just
<b>output.state</b>)
. Although some xAP applications (HomeSeer and Netiom included) are
tolerant if you omit the index, your xAPBSC.cmd message would not be to
the xAPBSC v1.3 specification and will not work with all devices or
possible later revisions of current ones.&nbsp; Also duplicate block
names
and duplicate parameter names within one block are either not allowed
or about to be deprecated in xAP and so must not be used. If you have a
need for these you should index them (as above) instead.<br>
<br>
Kevin<br>
<br>
More info in the full BSC v1.3 schema available here<br>
<a class="moz-txt-link-freetext" href="http://www.xapautomation.org/modules.php?name=xAP_Content&pa=showpage&pid=xapbsc";>http://www.xapautomation.org/modules.php?name=xAP_Content&amp;pa=showpage&amp;pid=xapbsc</a><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>



<!-- **begin egp html banner** -->

<br><br>
<div style="width:500px; text-align:right; margin-bottom:1px;
color:#909090;">
<tt>SPONSORED LINKS</tt>
</div>
<table bgcolor=#e0ecee cellspacing="13"
cellpadding="0" width=500px>
<tr valign=top>
<td style="width:25%;">
<tt><a href="http://groups.yahoo.com/gads?t=ms&k=Workflow+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=F4tRNBO_G_ZzajQmbmwe7Q";>Workflow
automation</a></tt>
</td>
<td style="width:25%;">
<tt><a href="http://groups.yahoo.com/gads?t=ms&k=Automation+equipment&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=9-eliEiH2rHCvwCe6xpvLw";>Automation
equipment</a></tt>
</td>
<td style="width:25%;">
<tt><a href="http://groups.yahoo.com/gads?t=ms&k=Industrial+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=xI5A0mNmlPHiPI__bxZwUQ";>Industrial
automation</a></tt>
</td>
</tr>
<tr valign=top>
<td style="width:25%;">
<tt><a href="http://groups.yahoo.com/gads?t=ms&k=Test+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=babdTZ-cZ8AbgxQRUJqztw";>Test
automation</a></tt>
</td>
<td style="width:25%;">
<tt><a href="http://groups.yahoo.com/gads?t=ms&k=Sales+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=-x7c78RB2nUpuPBRifr1YA";>Sales
automation</a></tt>
</td>
<td style="width:25%;">
<tt><a href="http://groups.yahoo.com/gads?t=ms&k=Factory+automation&w1=Workflow+automation&w2=Automation+equipment&w3=Industrial+automation&w4=Test+automation&w5=Sales+automation&w6=Factory+automation&c=6&s=145&.sig=zQtSND_pDmyn0UaMn4LPgQ";>Factory
automation</a></tt>
</td>
</tr>
</tr>
</table>

<!-- **end egp html banner** -->



<!-- **begin egp html banner** -->

<br>
<div style="text-align:center; color:#909090;
width:500px;">
<hr style="border-bottom:1px; width:500px;
text-align:left;">
<tt>YAHOO! GROUPS LINKS</tt>
</div>
<br>
<ul>
<tt><li type=square>&nbsp;Visit your group "<a
href="http://groups.yahoo.com/group/xap_automation";>xap_automation</a>"
on the web.<br>&nbsp;</tt>
<tt><li type=square>&nbsp;To unsubscribe from this group,
send an email to:<br>&nbsp;<a href="mailto:xap_automation-unsubscribe@xxxxxxx?subject=Unsubscribe";>xap_automation-unsubscribe@xxxxxxx</a><br>&nbsp;</tt>
<tt><li type=square>&nbsp;Your use of Yahoo! Groups is
subject to the <a href="http://docs.yahoo.com/info/terms/";>Yahoo!
Terms of Service</a>.</tt>
</ul>
<br>
<div style="text-align:center; color:#909090;
width:500px;">
<hr style="border-bottom:1px; width:500px;
text-align:left;">
</div>
</br>

<!-- **end egp html banner** -->


</body>
</html>

--------------060604060100010207010401--




xAP_Automation Main Index | xAP_Automation Thread Index | xAP_Automation Home | Archives Home

Comments to the Webmaster are always welcomed, please use this contact form . Note that as this site is a mailing list archive, the Webmaster has no control over the contents of the messages. Comments about message content should be directed to the relevant mailing list.