The Energy Detective Meter Driver
The TED-Pro is an energy monitoring system that can measure energy consumption of multiple mains and supports sub-metering of individual circuits. This driver connects to a TED Pro Energy Control Center (ECC) and can collect information from multiple Measuring Transmitting Units (MTUs) and Spyder sub-metering devices connected to the ECC.
Configuration
The TED Pro device interface is configured as follows. You’ll need the ip address or hostname of the ECC on a network segment accessible from the VOLTTRON instance, if configured to use a port other than 80, you can provide it as shown below, following a colon after the host address.
{
"driver_type": "ted_meter",
"driver_config": {
"device_address": "192.168.1.100:8080",
"username": "username",
"password": "password",
"scrape_spyder": true,
"track_totalizers": true
}
}
Parameters
username - Username if the TED Pro is configured with Basic Authentication
password - Password if the TED Pro is configured with Basic Authentication
device_address - Hostname or IP address of the TED Pro ECC, a non-standard port can be included if needed
scrape_spyder - Default true, enables or disables collection of the sub-metering data from spyder devices connected to the TED Pro
track_totalizers - Default true, enables or disables tracking of lifetime totals in the VOLTTRON Driver
Note
The TED Pro does not expose its internal lifetime “totalized” metering, instead offering month to date (MTD) and daily totals (TDY). Using the “track_totalizers” setting, the ted-meter driver will attempt to maintain monotonically increasing lifetime totalizers. To do so, it must retain state regarding the running total and the last read value. The driver makes use of the VOLTTRON Config subsystem to store this state. To reset these totals, delete the 1state/ted_meter/<device_path>1 config from the platform driver config store and restart the platform driver.
Note
This driver does not make use of the registry config. Because it is able to determine the configuration of the TED Pro Device via the API, it simply creates registers for each data source on the TED Pro
Note
This driver is internally aware of the appropriate HayStack Tags for its registers, however, the Platform Driver makes no provision for publishing those tags during a scrape. Therefore, integration of the tagging data is left to the end user.
Examples
The above configuration in the TED will result in the following scrape from the ted-meter driver on the message bus:
[
{
'mtu-1/load_kva': 0.271,
'mtu-1/load_kw': 0.203,
'mtu-1/phase_angle': 195,
'mtu-1/phase_current-a': '0',
'mtu-1/phase_current-b': '0',
'mtu-1/phase_current-c': '0',
'mtu-1/phase_voltage-a': '0',
'mtu-1/phase_voltage-b': '0',
'mtu-1/phase_voltage-c': '0',
'mtu-1/power_factor': 0.749,
'mtu-1/voltage': 121.30000000000001,
'spyder-1/AHU/load': 0.0,
'spyder-1/AHU/mtd': 0.0,
'spyder-1/AHU/mtd_totalized': 0.0,
'spyder-1/C/U/load': 0.0,
'spyder-1/C/U/mtd': 0.0,
'spyder-1/C/U/mtd_totalized': 0.0,
'spyder-1/Fridge/load': 0.0,
'spyder-1/Fridge/mtd': 0.056,
'spyder-1/Fridge/mtd_totalized': 0.056,
'spyder-1/HW/load': 0.0,
'spyder-1/HW/mtd': 0.14400000000000002,
'spyder-1/HW/mtd_totalized': 0.14400000000000002,
'spyder-1/Toaster/load': 0.0,
'spyder-1/Toaster/mtd': 0.24,
'spyder-1/Toaster/mtd_totalized': 0.24,
'system/mtd': 0.652,
'system/mtd_totalized': 0.652
},
{
'mtu-1/load_kva': {'type': 'integer', 'tz': u'', 'units': 'kVA'},
'mtu-1/load_kw': {'type': 'integer', 'tz': u'', 'units': 'kW'},
'mtu-1/phase_angle': {'type': 'integer', 'tz': u'', 'units': 'degrees'},
'mtu-1/phase_current-a': {'type': 'integer', 'tz': u'', 'units': 'Amps'},
'mtu-1/phase_current-b': {'type': 'integer', 'tz': u'', 'units': 'Amps'},
'mtu-1/phase_current-c': {'type': 'integer', 'tz': u'', 'units': 'Amps'},
'mtu-1/phase_voltage-a': {'type': 'integer', 'tz': u'', 'units': 'Volts'},
'mtu-1/phase_voltage-b': {'type': 'integer', 'tz': u'', 'units': 'Volts'},
'mtu-1/phase_voltage-c': {'type': 'integer', 'tz': u'', 'units': 'Volts'},
'mtu-1/power_factor': {'type': 'integer', 'tz': u'', 'units': 'ratio'},
'mtu-1/voltage': {'type': 'integer', 'tz': u'', 'units': 'Volts'},
'spyder-1/AHU/load': {'type': 'integer', 'tz': u'', 'units': 'kW'},
'spyder-1/AHU/mtd': {'type': 'integer', 'tz': u'', 'units': 'kWh'},
'spyder-1/AHU/mtd_totalized': {'type': 'integer', 'tz': u'', 'units': 'kWh'},
'spyder-1/C/U/load': {'type': 'integer', 'tz': u'', 'units': 'kW'},
'spyder-1/C/U/mtd': {'type': 'integer', 'tz': u'', 'units': 'kWh'},
'spyder-1/C/U/mtd_totalized': {'type': 'integer', 'tz': u'', 'units': 'kWh'},
'spyder-1/Fridge/load': {'type': 'integer', 'tz': u'', 'units': 'kW'},
'spyder-1/Fridge/mtd': {'type': 'integer', 'tz': u'', 'units': 'kWh'},
'spyder-1/Fridge/mtd_totalized': {'type': 'integer', 'tz': u'', 'units': 'kWh'},
'spyder-1/HW/load': {'type': 'integer', 'tz': u'', 'units': 'kW'},
'spyder-1/HW/mtd': {'type': 'integer', 'tz': u'', 'units': 'kWh'},
'spyder-1/HW/mtd_totalized': {'type': 'integer', 'tz': u'', 'units': 'kWh'},
'spyder-1/Toaster/load': {'type': 'integer', 'tz': u'', 'units': 'kW'},
'spyder-1/Toaster/mtd': {'type': 'integer', 'tz': u'', 'units': 'kWh'},
'spyder-1/Toaster/mtd_totalized': {'type': 'integer', 'tz': u'', 'units': 'kWh'},
'system/mtd': {'type': 'integer', 'tz': u'', 'units': 'kWh'},
'system/mtd_totalized': {'type': 'integer', 'tz': u'', 'units': 'kWh'}
}
]