Upload
francis-curtis
View
217
Download
1
Embed Size (px)
Citation preview
IllinoisSecurity Lab
oBIX Protocol Overview
presented by Lars Olson
IllinoisSecurity Lab
2
oBIX
• oBIX = Open Building Information Exchange– XML vocabulary for control systems– OASIS working draft
• currently 0.6, 2 December 2004• some sections are not yet written
– Links for general public, technical information
• Technical committee– Representatives from Cisco, Echelon, IBM, LonMark, OASIS,
Trane, Tridium, UNC
• Subcommittees:– Technical standards– Power systems (metering, analysis, generation)– Security systems (access control, intrusion detection, CCTV
monitoring, fire detection & life safety systems)– Enterprise requirements, Roadmap
IllinoisSecurity Lab
3
oBIX Data Model
• ?????
• Objects are queried as trees– How are they organized? (Depends on the
system designer?)– Is a tree appropriate?
• e.g. Motion sensors could be part of both security system and lighting system
• Then again, we could clone duplicate entries to create a tree
• Use cases?
IllinoisSecurity Lab
4
About operation
• aboutReq– locale
• aboutRes– locale– serverName– serverTime– serverBootTime– vendorName– vendorUrl– productName– productUrl– productVersion– locales– services
<aboutReq><locale>en</locale>
</aboutReq>
<aboutRes><locale>en</locale><serverName>Server B</serverName><serverTime>
2004-09-02T03:20:36+05:00</serverTime>
<vendorName>Acme</vendorName><productName>My oBIX Server</productName><productVersion>1.2.34</productVersion><locales>
<locale>en</locale><locale>fr</locale>
<locales><services>
<service><id>http://obix.com/ns/sys/1.0</id>
</service><service>
<id>http://obix.com/ns/hist/1.0</id></service>
</services></aboutRes>
IllinoisSecurity Lab
5
Read operation
• readReq– locale– depth– include
• id• value• status• display• facets• ext *
– id *
<readReq>
<locale>en</local>
<depth>0</depth>
<include>
<id>true</id>
<status>false</status>
<ext>
http://obix.com/ns/hist/1.0
</ext>
</include>
<id>OutsideAirTemp 1</id>
<id>OutsideAirTemp 2</id>
</readReq>
objects in the data model are
trees (no default specified?)what values should
be returned (defaults for all but
<ext> are true)
metadata about the object (I’ll
cover this later)
IllinoisSecurity Lab
6
Read operation
• readRes– locale– object *
• id
• [value] (<bool>, <int>, <str>, <unit>, etc.)
• status (described later)
• display
• facets
• ext
• children– object *
– error *• id
• display
<readRes><locale>en</locale><object>
<id>OutsideAirTemp 1</id><real>75.201</real><status>
<quality>ok</quality></status><display>75.2F</display><facets>
<min>-100</min><max>300<max>
</facets></object><object>
<id>OutsideAirTemp 2</id>...
</object></readRes>
IllinoisSecurity Lab
7
Write operation
• writereq– locale– write *
• id• [value], one of:
– <bool>– <int>– <real>– <enum>– <str>– <absTime>– <relTime>– <object>
» id» [value]» children
<writeReq><write>
<id>/Zone2/Lights.on</id><bool>true</bool>
</write><write>
<id>Fan.speed</id><enum>fast</enum>
</write><write>
<id>Site.streetAddress</id><object>
<children><object>
<id>street</id><str>...</str>
</object><object>
<id>city</id><str>...</str>
</object>...
</children></object>
</write></writeReq>
IllinoisSecurity Lab
8
Write operation
• writeRes– locale– error *
• id• display
<writeRes><locale>en-US</locale><error>
<id>setTime
</id><display>
Mismatched types:enum != absTime
</display></error>
</writeRes>
no matching error element means
operation completed successfully
IllinoisSecurity Lab
9
Subscription operations
• subscribeReq, extends readReq– locale, depth, include,
id *– lease
• subscribeRes, extends readRes– locale, object *, error *– subscriptionId– lease
<subscribeReq><locale>en</local><depth>0</depth><include>
<id>true</id><status>false</status><ext>
http://obix.com/ns/hist/1.0</ext>
</include><id>OutsideAirTemp 1</id><lease>PT5M</lease>
</subscribeReq>
<subscribeRes>[readRes elements]<subscriptionId>
OutsideAirTemp_subscr_1</subscriptionId><lease>PT2M</lease>
<subscribeRes>
<include> describes contents of both
subscribeRes and default for pollRes
suggested xsd:duration, the
server doesn’t have to follow it
IllinoisSecurity Lab
10
Subscription operations
• pollReq– locale– subscriptionId– forceAll– include
• pollRes, extends readRes– locale, object *, error *– invalid
• display
<pollReq>
<subscriptionId>
OutsideAirTemp_subscr_1
</subscriptionId>
</pollReq>
<pollRes>
<invalid>
<display>
Lease time expired
</display>
</invalid>
</pollRes>
update every item, even if no change
has occurred (default is “false”)
IllinoisSecurity Lab
11
Subscription operations
• unsubscribeReq– subscriptionId
• unsubscribeRes (empty element)
<unsubscribeReq>
<subscriptionId>
OutsideAirTemp_subscr_1
</subscriptionId>
</unsubscribeReq>
<unsubscribeRes />
IllinoisSecurity Lab
12
Status element
• status– quality
• “ok” (default if not present)
• “overridden”• “disabled”• “fault”
– alarm• inAlarm• unacked
– timestamp– param *
<status>
<quality>ok</quality>
<alarm>
<inAlarm>false</inAlarm>
<unacked>false</unacked>
</alarm>
<timestamp>
2004-09-02T10:27:00
</timestamp>
<display>OK</display>
<param name="...">
xs:string
</param>
<param name="...">
xs:string
</param>
</status>
How do we describe the
fault?
How do we acknowledge the
alarm? (<writeReq>?)
IllinoisSecurity Lab
13
Unit element
• unit– id– display– symbol– dimension
• kg, m, sec, K, A, mol, cd
– scale– offset
• Example shown is kilowatt, 1000 m2kg/sec3
<unit>
<id>kilowatt</id>
<display>kilowatt</display>
<symbol>kW</symbol>
<dimension>
<m>2</m>
<kg>1</kg>
<sec>-3</sec>
</dimension>
<scale>1000</scale>
</unit>
IllinoisSecurity Lab
14
Facets element
• facets– min– max– resolution– precision– writable– icon– range
• declare by reference with “id=…” attribute
• or enumerate with item *– id– display
– units
<facets><min>0</min><max>100</max><resolution>0.25</resolution>
</facets>
<facets><icon>
/icons/equipment.png</icon><range>
<item><id>true</id><display>On</display>
</item><item>
<id>false</id><display>Off</display>
</item></range>
</facets>
accuracy of the value
number of decimal placesURI for image
file for user interface
IllinoisSecurity Lab
15
Other protocols
• LonTalk– Not an open protocol– Can download reference for free, license agreement required
• Modbus– 48 members– Specs available for download
• OPC– 393 members, including GM, HP, Hitachi, Microsoft, Mitsubishi,
NIST, Philip Morris (?), Siemens, various universities (mostly foreign)
– Requires free registration to download specs
• ZigBee (wireless sensor net protocol)– 183 members, including Motorola, Philips, Samsung, Cisco– Requires free registration to download specs– Presentations and white papers