170 likes | 657 Views
oBIX Protocol Overview. presented by Lars Olson. 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
E N D
oBIX Protocol Overview presented by Lars Olson
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
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?
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> About 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> Read operation 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)
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> Read 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> Write operation
writeRes locale error * id display <writeRes> <locale>en-US</locale> <error> <id> setTime </id> <display> Mismatched types: enum != absTime </display> </error> </writeRes> Write operation no matching error element means operation completed successfully
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> Subscription operations <include> describes contents of both subscribeRes and default for pollRes suggested xsd:duration, the server doesn’t have to follow it
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> Subscription operations update every item, even if no change has occurred (default is “false”)
unsubscribeReq subscriptionId unsubscribeRes (empty element) <unsubscribeReq> <subscriptionId> OutsideAirTemp_subscr_1 </subscriptionId> </unsubscribeReq> <unsubscribeRes /> Subscription operations
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> Status element How do we describe the fault? How do we acknowledge the alarm? (<writeReq>?)
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> Unit 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> Facets element accuracy of the value number of decimal places URI for image file for user interface
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