An xPL gateway for CurrentCost wireless energy monitors.

The Current Cost devices are wireless energy monitors, similar to the Electrisave and the Owl. A device consists of a sensor/transmitter unit which sits in your meter cupboard, measuring how much electricity you use and sends the data wirelessly to a display unit inside your house. The idea is that if you can easily see how much electricity you are using in real time, you can change your habits to reduce your consumption. The display unit also contains a digital thermometer.

CurrentCost Classic

Where the Current Cost devices differ from similar products is that the display unit features a serial port, allowing the data to be read by a PC connected via a serial or USB data cable. The cable is not included with the device, but can be obtained as an accessory from Current Cost themselves from their ebay shop, or you could build your own.

xPLCurrentCost is an xPL gateway for the Current Cost Classic and CC128 devices. It installs as a Windows service, and broadcasts power and temperature readings as xPL sensor.basic messages. xPLCurrentCost is not immediately useful by itself as it is intended to form part of an xPL network. It broadcasts CurrentCost data for other xPL applications to make use of. For more information on xPL, visit the xPL project website.


  • A Windows PC. xPLCurrentCost has been tested on Windows 2000, XP and Vista (32 bit)
  • The .net framework 2.0
  • A Current Cost device with serial or USB cable. xPLCurrentCost has been tested with the 9600 baud version of the Current Cost Classic, and the CC128 (whole house sensor only at present. Support for individual Appliance modules will be added when they become available). It should also work with the older 2400 baud Classic version.
  • An xPL hub. The xPL Monkey hub is recommended
  • An xPL manager (eg xPLHal or DCM) for configuration


xPLCurrentCost is free software, released under the GNU General Public Licence.

Source Code

The vb.net source code for xPL CurrentCost is available from the xPL Project Google Code subversion repository.


  1. Download the installer (the current version is xPLCurrentCost_0.2.msi, 438kb)
  2. Run the installer, following the onscreen prompts


If you are using xPLHal Manager, you should ensure that you have the latest version of the SLATEBLU vendor plugin by choosing Update plug-in library from the Help menu. DCM should update plugins automatically.

Run your xPL manager program and find the CURRCOST device from the vendor SLATEBLU (under xPL Devices/Awaiting configuration in xPLHal, or the Need Configuration tab in DCM)


Double click on the CURRCOST entry and change the configuration parameters as required. As a minimum you need to specify which serial port the Current Cost device is connected to (comport), and if you have an older Classic model or a CC128 you will need to change the baud rate (baud) to 2400 or 57600 respectively.

Other configuration options may be modified if necessary:

ch1-enabled, ch1-name, ch2-enabled, ch2-name, ch3-enabled, ch3-name, temp-enabled and temp-name determine whether readings from channels 1, 2 and 3 and the temperature sensor will be reported via xPL and if so, the name to be used on the device line of the sensor.basic message. The default is to report Channel 1 and the temperature as this is the most likely scenario. Enabling channels 2 and 3 is only useful if you have fitted additional sensor jaws to your Current Cost device. As the CC128 only sends readings for connected sensors, readings for channels 2 and 3 will not be sent if the sensors are not connected even if they are enabled in the configuration.

changed-only controls whether the gateway sends an xPL message for every reading that it receives from the Current Cost device (which is approximately one reading every 6 seconds) or whether it only sends a message when the value changes. The latter is the correct behaviour according to the sensor.basic specification, but I prefer the former, so it is the default. In practice there will probably be very little difference between these two options as far as the power values are concerned, but the number of temperature readings will be reduced if this option is enabled.


To make sure that everything is working, start the xPLMonitor from the Tools menu in xPLHal Manager. You should see Current Cost sensor.basic messages appear in the list, for example:




Version History

0.2 (2nd March 2009) Added support for the CC128

0.1 (12th October 2008) Initial release


  1. belu says:

    I have some trouble with xpl-currentcost when i lunch :
    xpl-currentcost -v /dev/ttyUSB0 my cc128 respond :

    Listening on
    Sending on
    xpl-trig/sensor.basic: bnz-ccost.BerieHome -> * – cc128.00024.0.1[current]=2.05416666666667
    xpl-trig/sensor.basic: bnz-ccost.BerieHome -> * – cc128.00024.0[current]=2.05416666666667
    xpl-trig/sensor.basic: bnz-ccost.BerieHome -> * – cc128.00024.0[temp]=21.0
    xpl-trig/sensor.basic: bnz-ccost.BerieHome -> * – cc128.00024.0.1[current]=2.00833333333333
    xpl-trig/sensor.basic: bnz-ccost.BerieHome -> * – cc128.00024.0[current]=2.00833333333333
    xpl-trig/sensor.basic: bnz-ccost.BerieHome -> * – cc128.00024.0[temp]=21.0
    Discarding: 3c
    … [snip] …
    Discarding: 3c

    can you help me ?

  2. Tim says:

    I don’t think you’re using my software (which is for Windows). That looks like the currentcost module that is part of xPL-Perl. You could try asking on the mailing list mentioned there, or on the xPL forums.

Leave a Reply