Skip to content

Technical details of the EDF EcoManager and accessories

Jack Kelly edited this page Jan 5, 2016 · 37 revisions

Table of Contents

Introduction

Current Cost designed and manufacture a range of "EcoManager" energy monitors for the utility company EDF.

  • EcoManager communicates with up to 14 IAMs (Individual Appliance Monitors) and 1 whole-house transmitter
  • The EcoManager and IAMs can both transmit and receive; the whole-house transmitter can only transmit.
  • RFM network ID (synchron word) = 0x2DD4
  • 12 bytes packet composed of 11 bytes data + 1 bytes checksum
  • Devices have dynamic 32-bit UIDs (randomly generated during pairing) generated by base station and IAMs (when turned on/off by switch, or pairing)

EDF Wireless Transmitter Plug (aka EDF IAM)

These are very similar to Current Cost IAMs except for several vital differences:

  • Each EDF IAM can both send and receive (the CC IAMs can only send).
  • Each EDF IAM also has a relay to turn the appliance on or off. This relay can be activated using the manual override switch on the EDF IAM or over RF.
  • Each EDF IAM will only report its wattage when polled by the EDF EcoManager base station or when the manual override switch is operated.
  • The packets appear to include a simple checksum! (The CC Transmitters don't bother with a checksum.)

Polling an EDF IAM

The EDF IAM does not spontaneously transmit measured power consumption. Instead it only transmits measured power consumption when polled by the EcoManager. The delay between sending a poll request and receiving a response is about 20ms.

Sample rate

It appears that it is possible to poll the EDF IAM as rapidly as you want but it appears that the EDF IAM only bothers to take a sample once every six seconds or so. In other words, it appears to not sample the wattage when you ping the EDF IAM but instead it asynchronously measures the wattage every six seconds or so and stores this value ready for transmission when you poll for it.

EDF Whole-House Transmitter

Appears to use the same communications protocol as the Current Cost whole-house CT unit (see the Technical details of Current Cost RF protocol wiki page for details). As such, the whole-house transmitter transmits measured power data once every six seconds without waiting for a poll request from the base unit.

There are some physical differences between the EDF Whole-House transmitter and the Current Cost CT unit: the EDF unit can only accommodate a single CT clamp, connected using an RJ?? connector whilst the Current Cost transmitter can accommodate 3 CT clamps connected using a small power jack.

RF protocol details

Radio Frequency configuration summary

  • 433.97 MHz (the Current Cost kit uses 433.90 MHz)
  • 3.918 kbps datarate
  • baseband bandwidth = 67 kHz

Packet construction for EcoManager and IAMs (not whole-house transmitter)

This is what is transmitted by the EcoManager and IAMs. Note that the preamble and sync word are trimmed off by the RFM receiver.

(bytes are in hex unless otherwise stated)

Bytes Description Function Contents (hex)
1 preamble allow RX to lock on 55
2 sync word label this packet as data not noise 2DD4
11 payload data - see below
1 checksum - modular sum on previous 11 bytes

The data does not appear to be "manchesterised" (unlike the Current Cost packets and EDF Whole House transmitter packets).

Payload

Bytes Description Abbreviation Contents (hex)
1 device class DC 46=Base, 52=IAM, 55=WholeHouseTX
4 UID destination if from base, source if from IAM UID -
1 - - always 00
2 command bytes CMD see below
2 current power consumption WATTS see below
1 state (is this IAM on or off?) S - for IAMs: 4F=off, 53=on
IE bit 2 indicates the state of the IAM switch.
- for base always 4F
1 checksum CHK modular sum on 11 byte payload data

Command (CMD) values for packets from base station

Hex (lsb/msb) ASCII Description
50 53 P S Poll State (ask IAM for current and output state)
4F 46 O F turn IAM OFF
4F 4E O N turn IAM ON
41 4B A K AcKnowledge (in response to pairing request)

Command (CMD) values for packets from IAMs

Hex (lsb/msb) ASCII Description
41 4B A K AcKnowledge (send base current wattage and output state)
43 4F C O Pairing request

Power (WATTS)

Measured power consumption of appliance. First byte is least significant byte. Only non-zero in response packets from IAM to base (i.e. CMD=AK or CMD=CO) or when manual override switch is turned on. Represents the power reading as an unsigned 12-bit int, in watts of the IAM. Maximum possible reading (through experimentation) appears to be 0xFF0A, or 2.81kW.

Checksum (CHK)

The checksum byte is the modular sum on the 11 bytes of payload data. This can be calculated by summing together the 11 bytes of payload data using a 1-byte accumulator and ignoring the overflow or, equivalently, by summing together the 11 bytes of payload data using a multi-byte int representation and taking the least significant byte, for example consider the data packet 46 55 10 00 01 00 50 53 00 00 4F 9E:

  1. Sum together data bytes (11): 0x46 + 0x55 + 0x10 + 0x01 + 0x50 + 0x53 + 0x4F = 0x19E
  2. Take LSB 8-bits: 0x19E & 0xFF = 0x9E == [CK]

Sample packets

DC UID 00 CMD WATTS S CHK Description
Polling IAMs:
46 55 10 00 01 00 50 53 00 00 4F 9E Poll state request from:base to:IAM0x55100001
52 55 10 00 01 00 41 4B 3E 00 53 D5 State reply from:IAM0x55100001 to:base,
reading = 0x003E = 62W, output=ON
46 55 10 00 01 00 50 53 00 00 4F 9E Poll state request from:base to:IAM0x55100001
52 55 10 00 01 00 41 4B 00 00 4F 93 State reply from:IAM0x55100001 to:base,
reading = 0x0000 = 0W, output=OFF
46 55 10 00 03 00 50 53 00 00 4F A0 Poll state request from:base to:IAM0x55100003
52 55 10 00 03 00 41 4B 00 00 53 99 State reply from:IAM0x55100003 to:base,
reading = 0x0000 = 0W, output=ON
Pairing IAM to base:
52 21 84 25 64 00 43 4F 00 00 4F 61 Pairing request from:IAM0x21842564 to:base,
reading = 0W, output=OFF
46 21 84 25 64 00 41 4B 00 00 4F 0A Pairing acknowledge from:base to:IAM0x21842564
IAM transmission after switch is operated
52 55 10 00 03 00 41 4B 07 00 53 A0 On (packet repeated twice)
52 55 10 00 03 00 41 4B 00 00 4F 95 Off (packet repeated twice)
52 55 10 00 03 00 41 4B 11 00 53 AA On, 17Watts (packet repeated twice)
52 55 10 00 03 00 41 4B FF 08 53 A0 On, 2303Watts (packet repeated twice)

Modes of communication

All communications between the base and a SINGLE IAM are synchronous. There are 3 possible scenarios:

mode 1) Base requesting IAM state

Base station sends out poll every ~1m to each IAM. The IAM, if active, responds with its current state.

 Base -> Poll state (CMD=0x5053, PS)  -> IAM
 IAM  -> State      (CMD=0x414B, AK)  -> Base

mode 2) IAM state change

If the IAM is toggled using the button on it, it will send a state update to the base station to notify it. The message is repeated twice, around 366ms apart. There is no ACK by the base station (?)

 IAM  -> State       (CMD=0x414B, AK)  -> Base
 (~366ms gap)
 IAM  -> State       (CMD=0x414B, AK)  -> Base

mode 3) IAM pairing request

When an IAM is set to pairing mode it randomly generates a 32-bit UID suggestion and broadcasts this with the pairing command every ~2s, for approx. 25s. When the user selects and pairs this IAM to the base station by selecting a channel, it is sent an acknowledge command by the base station, which stops it broadcasting and tells the IAM to use that UID from now on.

If the pairing request times out then the IAM reverts to its original UID.

 IAM  -> Pairing req. (CMD=0x434F, CO)   -> Base
 . 2s . 2s . 2s . . .
 Base -> Acknowledge  (CMD=0x414B, AK)   -> IAM

If you poll an IAM while it is in pairing mode then it will respond to polls addressed to the new candidate UID (and not to its old UID), even if the new UID hasn't been acknowledged by the base station.

Links to EDF Shop

Compatibility between EDF EcoManager and Current Cost devices

See this post by kevinT on homeautomationhub.com for a detailed explanation of what's compatible with what.

External links

Acknowledgements & thanks

A huge amount of the information on this page was deduced by Matt Thorpe and Paul Cooper. Many thanks!