Protocol of the Teleinfo home sensor

Each frame is 71 bits long. It is composed of:

Example 1
00000000001001111110110011101011000110011001110110110001100011010110011

Example 2
00000000001001111110100001100110010110011000011100101001100011111111001

Example 3
00000000001001111110111011100011100110011110011101110001100011100111001

When extracting data from the 3 examples, we get:
Example 1
0011 1110 1001 1010 1000 1001 0011 0110 1000 1000 1010 1001 

Example 2
0011 1110 0000 1001 0010 1001 0000 1100 0100 1000 1111 1100 

Example 3
0011 1110 1101 1000 1100 1001 1100 1101 1000 1000 1100 1100 

The 1st bit of each word is LSB, so we have to reverse the 4 bits of each word.

The active values of the sensor is coloured in [green] in the following tables:
Example 1
1100 0111 1001 0101 0001 1001 1100 0110 0001 0001 0101 1001 
C 7 9 5 1 9 C 6 1 1 5 9 
Check Xor : (C ^ 7 ^ 9 ^ 5 ^ 1 ^ 9 ^ C ^ 6 ^ 1 ^ 1 ^ 5) = 0
Check Sum : (const5 + C + 7 + 9 + 5 + 1 + 9 + C + 6 + 1 + 1 + 5) and F = 9
 

Example 2
1100 0111 0000 1001 0100 1001 0000 0011 0010 0001 1111 0011 
C 7 0 9 4 9 0 3 2 1 F 3 
Check Xor : (C ^ 7 ^ 0 ^ 9 ^ 4 ^ 9 ^ 0 ^ 3 ^ 2 ^ 1 ^ F) = 0
Check Sum : (const5 + C + 7 + 0 + 9 + 4 + 9 + 0 + 3 + 2 + 1 + F) and F = 3
 

Example 3
1100 0111 1011 0001 0011 1001 0011 1011 0001 0001 0011 0011 
C 7 B 1 3 9 3 B 1 1 3 3 
Check Xor : (C ^ 7 ^ B ^ 1 ^ 3 ^ 9 ^ 3 ^ B ^ 1 ^ 1 ^ 3) = 0
Check Sum : (const5 + C + 7 + B + 1 + 3 + 9 + 3 + B + 1 + 1 + 3) and F = 3
 

 Sensor type is C
 Sensor Address 7
 Data values
 CheckXor
 Checksum

The full value of the power counters is not transmitted, only the 16 LSB bits are transmitted in Hex.
To get the intensity value, the received Hex data has to be divided by 16.

The first block is the LSB, so the values are repectively:

  1. [power] (0x9159) = 37209 W - [intensity] (0x16C / 16.0) = 22.8 A - [rate] 1
  2. [power] (0x9490) = 38032 W - [intensity] (0x230 / 16.0) = 35.0 A - [rate] 1
  3. [power] (0x931B) = 37659 W - [intensity] (0x1B3 / 16.0) = 27.2 A - [rate] 1

Nibble definition in case Hex [8] is FF:

 the power data is the one of the rate given by rate_p
	power  = Hex [5,4,3,2]
	rate_p = Hex [6]
	rate   = Hex [9]

Nibble definition in case Hex [8] is 00..FE:

 the power data matches the rate
	power  = Hex [5,4,3,2]
	intens = Hex [8,7,6] * 16
	rate   = Hex [9]

rate Values:

 the current rate is given by Hex [9]
	1: BASE		(Base)
	2: HC		(Heures creuses)
	3: HP		(Heures pleines)
	4: EJP HN	(EJP normal)
	5: EJP HPM	(EJP plein tarif)
	8: TEMPO HC B	(Tempo Bleu Heures creuses)
	9: TEMPO HP B	(Tempo Bleu Heures pleines)
	A: TEMPO HC W	(Tempo Blanc Heures creuses)
	B: TEMPO HP W	(Tempo Blanc Heures pleines)
	C: TEMPO HC R	(Tempo Rouge Heures creuses)
	D: TEMPO HP R	(Tempo Rouge Heures pleines)


[back to menu]