-
Notifications
You must be signed in to change notification settings - Fork 35
Driver Index
##Driver Index
Part of the goal of sMAP is to foster a community support open data aquisition of many different devices. This page has a partial list of drivers distributed with sMAP as part of the smap.drivers
package.
Unless otherwise specified, arguments without a default value are required.
####XML
Module: smap.drivers.xml.XMLDriver
Communications: XML over file, http, or python loader
Data: whatever is exposed through the XSLT transform
Parameter | Decription | Default Value |
---|---|---|
URI | URI to load: supported schemes are http, https, file, and python | 30 |
Rate | Polling frequency (seconds) | |
Xslt | XSLT transformation to apply to document to convert it to sMAP-XML | |
Timeformat | python strptime string used to parse the time in the document. | %s |
Timezone | zone code for the data; the timeformat will be parsed as if it is a local timestamp in the zone. | UTC |
XSLT is a way of applying a declarative transformation to XML documents. Sometimes you can use that to very easily convert existing XML data into sMAP feeds. There are a few sample XSLT transformation available in trunk/xslt:
Stylesheet | Description |
---|---|
greenbutton.xsl | Transformation for US GreenButton data packed inside of Atom(http://naesb.org/espi) |
obvius.xsl | Generic transformation for Obvius Aquisuite XML data |
ted5000.xsl | Transform for the Ted 5000 which exports all channels |
####Expression Driver
Module: smap.drivers.expr.ExprDriver
|Parameter |Description |Default Value | --------- |:-----------------------------------------------------------------------:| |Expression |An operator expression to compute | |Restreict |An ArdQuery where-clause restricting the set of input streams | |Group |A tagname specifying how streams are groups when passed into operators |
The expression driver is a way to compute ArdQuery operator expressions over new data. This gives you a way to create new “virtual” sMAP streams based on other data. The driver will create streams corresponding to the output of the query
`apply _Expression_ to data before now where _Restrict_ group by _Group_`
As new data arrives, it will be pushed through the expression and published as a new sMAP feed. To avoid circularity, it’s a good idea to make Restrict include at least has Path and not has Metadata/Extra/Operator
.
####Dent PowerScout 18
Module: smap.drivers.dent.Dent18
Communications: Modbus over TCP
Data: 6 three-phase electric meters
Parameter | Description | Default Value |
---|---|---|
Address | Hostname of device(or Modbus/IP gateway) | |
Port | Port | 4660 |
ModbusBase | Device modbus address | 1 |
Rate | Polling frequency(seconds) | 20 |
####Veris E30 Panel Meter
Module: smap.drivers.veris.VerisDriver
Communications: Modbus over TCP
Data: 42 single-phase power and energy measurements
Parameter | Description | Default Value |
---|---|---|
Address | Hostname of device (or Modbus/IP gateway) | |
Port | Port | |
BusID | Device modbus address | 1 |
Period | Polling frequency(seconds) | 30 |
####Power Standard Lab pQube
Module: smap.drivers.pqube.PQubeModbus
Communications: Modbus/TCP
Data: Three phase energy, power, and quality measurements
Parameter | Description | Default Value |
---|---|---|
Address | Hostname of device (or Modbus/IP gateway) | 502 |
Port | Port | 1 |
SlaveAddress | Device modbus address | 7000 |
BaseRegister | Base register to start reading at | 30 |
Rate | Polling frequency (seconds) |
####TED 5000
Module: smap.drivers.ted.Ted5000Driver
Communications: HTTP/XML
Parameter | Description | Default Value |
---|---|---|
Address | URL of device data page | |
Timezone | Local timezone of device | America/Los_Angeles |
Rate | Polling frequency (seconds) | 60 |
####UC Berkeley ACme X2
Module: smap.drivers.acmex2.acmex2.ACmeX2Driver
Communications: Proprietary UDP
Data: Per-device energy and power data.
Parameter | Description | Default Value |
---|---|---|
Port | Local IPv6 port to listen on | 702 |
####Obvius Aquisuite
Module: `smap.drivers.obvius.Driver
Communications: Proprietary XML
Parameter | Description | Default Value |
---|---|---|
Url | URL to download from. Set to the link returned by the XML download link on the obvius page (e.g. http://10.0.0.1/setup/devicexml.cgi?ADDRESS=58&TYPE=DATA) | |
Username | HTTP username to authenticate as | |
Password | HTTP password | |
Period | Polling frequency (seconds) | 30 |
ObviusType | Type of device represented by the xml (see below) |
Device maps are stored in smap.drivers.obvius.sensordb
. These map the somewhat opaque mappings present in the Aquisuite XML to nicer sMAP names. You can pick one from device type on the Aquisuite Page. Current mappings are:
ObviousType | Description |
---|---|
Power Measurement ION 6200 | |
Power Measurement ION 7300 | |
Power Measurement ION 7330 | |
Shark 100 | |
Continental Control Systems LLC, WattNode MODBUS | |
Dent Power Scout A | |
Veris Full-Data Energy Meter | |
SquareD | ? |
GE Enhanced MicroVersaTrip |
####PG&E GreenButton Downloader
Module: smap.drivers.pge
+ smap.drivers.xslt.XMLDriver
Communication: Web scrape + XML
PG&E makes residential smartmeter data available, but difficult to download through their webpage. You can combine a mechanized download of the xml with an XSLT transform to create a sMAP source from your PG&E data.
Parameter | Description | Example Value |
---|---|---|
Uri | Set to tell XML driver to use the loader | python://smap.drivers.pge.update |
Xslt | Path to XSLT stylesheet. Included with the sMAP distribution | xslt/greenbutton.xsl |
Period | Frequency to poll at. PG&E data updates infrequently. | 86400 |
Username | PG&E Login | |
Password | PG&E Password | |
To | Optional; date to start download at | 1/1/2010 |
From | Optional; date to end download at | 12/31/2012 |
Type | Optional; type of data feed to use from the result | "gas" or "electric" |
Here's a full example:
[/pge-gas]
type = smap.drivers.xml.XMLDriver
Uri = python://smap.drivers.pge.update
Xslt = ~/smap-data/xslt/greenbutton.xsl
Period = 86400
Username =
Password =
# From = 1/1/2010
# To = 12/31/2012
Type = gas
####Weather Underground
Module: smap.drivers.wunderground.WunderGround
Communications: XML
Data: Current conditions for the station.
Parameter | Description | Default Value |
---|---|---|
Address | WUnderground API URL | [http://api.wunderground.com/weatherstation/WXCurrentObXML.asp |
ID | WUnderground station ID | KCABERKE25 |
Rate | Polling frequency (seconds) | 60 |
Period | Polling frequency (seconds) | 30 |
####NOAA Weather Forecasts
Module: smap.drivers.noaaforecast.NOAAForecast
Communications: XML
Parameter | Description | Default Value |
---|---|---|
lat | Latitude fro forecast | |
lon | Longitude for forecast |
####NWS Weather Forecasts
Module: smap.drivers.forecastTemp.ForecastTempDriver
Communications: XML
Parameter | Description | Default Value |
---|---|---|
Latitude | Latitude for forecast | |
Longitude | Longitude for forecast | |
LocationName | Location name |
####Vaisala WXT 520
Module: smap.drivers.vaisala.VaisalaDriver
Communications: SDI-12 (serial) over IP
Parameter | Description | Default Value |
---|---|---|
Address | Hostname of serial/io bridge | |
Port | port |
####ETCOT
Module: smap.drivers.ercot.ErcotDriver
####PJM
Module: smap.drivers.pjm.PJMDriver
####NYISO
Module: smap.drivers.nyiso.NYIsoDriver
####MISO
Module: smap.drivers.miso.MIsoDriver
####Washington BPA
Module: smap.drivers.washingtonbpa.BPADriver
####ISO NE
Module: smap.drivers.isone.IsoNEDriver
####CA ISO
Module: smap.drivers.caiso.CaIsoDriver
####CA ISO LMP Data
Module: smap.drivers.caiso_price.CaIsoPrice
Parameter | Description | Default Value |
---|---|---|
Location | LMP Node name | OAKLAND_1_N001 |
####HearX Flow Meter
Module: smap.drivers.heatx.HeatX
Communication: Modbus over TCP
Data: Description from the Central Station Steam Co. Cadillac HEATX BTU Meter
Parameter | Description | Default Value |
---|---|---|
Host | Hostname | |
Rate | Polling rate (seconds) | 20 |
####Omega iSeries Steam Gauge
Module: smap.drivers.iseries.IseriesSteam
Communication: Proprietary TCP
Parameter | Description | Default Value |
---|---|---|
Host | Hostname | |
Rate | Polling rate (seconds) | 20 |
####Labjack UE9
Module: smap.drivers.labjack.LabjackDriver
Communication: Labjack modbus. Requires updated Labjack firmware.
|Parameter |Description |Default Value | | --------- |:------------------------------------:| | |ConfModule |Python module name with configuration | |
This module is configured through a python module you must write; here is an example (in a file named labjackconf.py
:
BIP_5V = 0x08 # from the datasheet def temp_cal(x): # convert an analog reading to celsius return x*55.57-273.15+255.37 CONF = { 'labjack01' : { 'address' : '10.0.0.1', 'rate' : 10, 'channels' : { 'freezer_bat_temp' : { 'register' : 0, # Ain0 'unit' : 'C', 'calibrate' : temp_cal, 'range' : BIP_5V, }, 'freezer_air_temp' : { 'register' : 2, # Ain1 'unit' : 'C', 'calibrate' : lambda x: (x * 100) - 273.15, 'range' : BIP_5V, }, } }
####Reading DB **Module**: `smap.drivers.readingdb.Driver` **Data**: Statistics from a [readingdb](https://github.com/stevedh/readingdb) database. |Parameter |Description |Default Value | | -------- |:----------------------:| ------------ | |Port |ReadingDB database port |4242 |