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]

RE: Topic 1: Base Level Status Schema


  • Subject: RE: Topic 1: Base Level Status Schema
  • From: Kevin Hawkins
  • Date: Mon, 01 Sep 2003 14:22:00 +0000

This sort of summarises what I'm proposing on the status response side -
plus I have been thinking about my 'interfaces' body section as part of the
status reporting schemas and I think (as Ian suggested) it should be
divided
into two, one for inputs and one for outputs, it's the only way to tell
them
apart - now this could be done with two messages - a status.report.inputs
one and then a status.report.outputs one or there could be two bodies in
each message as follows....

Body sections now named perhaps 'inputs' and 'outputs' or 'interfaces.in'
and 'interfaces.out'

A quick example for the following 'xAPper' example device -
something with a binary mode input and output, and an analogue input and
output -

Acme.xAPper.node0 FF111100 The controller itself
Acme.xAPper.node0:OutA FF111101 Analogue (eg dimmer) - Out A
Acme.xAPper.node0:OutB FF111102 Binary (eg appliance)- Out B
Acme.xAPper.node0:InA FF111103 Analogue (eg volume)- In A
Acme.xAPper.node0:InB FF111104 Binary (eg switch) - In B

This would be the response to a targeted status request sent to
Acme.xAPper.node0:OutA - the analogue output


xap-header
{
...
uid=FF111101
class=status.report
source=Acme.xAPper.node0:OutA
}
outputs
{
OutA=50%
}

OR if we named the body sections with the sub instance name

xap-header
{
...
uid=FF111101
class=status.report
source=Acme.xAPper.node0:OutA
}
outputs.OutA
{
State=On
Level=50%
}

and this would be the 'compound' response if a status request was sent to
the whole device ie Target=Acme.xAPper.node0

xap-header
{
...
uid=FF111100
class=status.report
source= Acme.xAPper.node0
}
outputs
{
OutA=50%
OutB=Off
}
inputs
{
InA=0%
InB=ON
}


the alternative if we named the body parts and used multiple bodies would
look like...

xap-header
{
...
uid=FF111100
class=status.report
source= Acme.xAPper.node0
}
outputs.OutA
{
Level=50%
State=On
}
outputs.OutB
{
Level=NA
State=Off
}
inputs.InA
{
Level=0%
InA=Off
}
inputs.InB
{
Level=NA
InB=ON
}

Also a last option was to index the body name by the UID so for
example inputs.inB would become inputs.04.

Does that clarify it a bit ? One of the big differences is that the
subinstance name is used as a name value pair in one option but not the
other - conversely both level and state can't be reported if this is done
so
we would have to assume 0% = OFF and anything else = ON - a level device
should respond (be able to be controlled) by an ONOFF command though.
Another way of looking at this is that Level= is used to report the
level of many different devices in one option - based on which body part it
sits in whereas in the other option each sub has it's own unique name value
pair - this has ramifications in repeating name value pairs within a body
section - not unworkable - just needs consideration. MY thoughts are now
moving towards NOT using State= and Level= but the sub instance name. This
allows it's appearance in other body sections to be rapidly recognised, but
you still need to differentiate between setting it 'OutB=ON' and a status
report 'OutB=ON' based on context of the class.



Kevin






xAP_Development Main Index | xAP_Development Thread Index | xAP_Development 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.