Embedded Building Application Stack Stephen Dawson-Haggerty
Overview Current state of world: building data exists in application stovepipes – SCADA/building management systems – Sensors accessed over RS485/Modbus Goal: break open the data silos and make the data available to consumers, developers Start with the sensor: make it smarter – Not too smart, though: keep things small
System Design or, REST in 36kB Build on blip, embedded IPv6 stack Use HTTP for control channel Standards in IETF, IEEE moving along nicely, but don’t get held up by them! TinyOS/BLIP HTTP Engine Application Interface Link 6lowpan HC HYDRO Routing TCP
Meter Interface: HTTP + JSON Use HTTP as app-level control protocol JSON is concise object transport – Also defined a compressed application/x-binaryjson content type Distinguish metering from sensing Integrate raw data with metadata – Calibration – Engineering units Reporting support allows pushing of sensor data
Meter Interface /meter # meters of quantities of flow provide this service [GET] /channelID # a particular channel [GET] /reading # meter reading [GET] /format # calibration and units [GET/POST] /parameter # sampling parameter [GET/POST] /profile # history of readings [GET] /report # create and query periodic reports [GET/POST] POST requests supply JSON objects as arguments: POST: { "ReportResource" : "/meter/*/reading", "ReportDeliveryLocation" : " "Period" : 60, "Minimum" : 50, "Maximum" : 100 }
More information LayerCode Size (bytes) JSON API936 HTTP542 TCP3534 IPv6 + Routing12.5k Link5k Schema + API Documentation BLIP