The Teleinfo binding supports an interface to ENEDIS/ERDF [Teleinfo protocol](https://www.enedis.fr/sites/default/files/Enedis-NOI-CPT_54E.pdf) for (French) Electricity Meter. This binding works with a Teleinfo modem plugged to the I1 and I2 terminals of your electricity meter. Teleinfo modems can be ordered (see the [list of tested hardware](#tested-hardware) below) or build by yourself (see [this example](http://bernard.lefrancois.free.fr)).
Teleinfo is a protocol to read many electrical statistics of your electricity meter: instantaneous power consumption, current price period, meter reading...
Linky telemeters add a new `Standard` mode with more detailed information but still provide information on the legacy format under the `Historical` denomination.
Standard mode doesn't depend on the pricing options, but it adds some useful information for electricity producers.
Before the binding can be used, a serial controller must be added. This needs to be done manually. Select __Teleinfo Serial Controller__ and enter the serial port.
If you want to place the Teleinfo modem apart from your openHAB server, you can forward its serial messages over TCP/IP (_ser2net_).
In this case you have to define the serial port of your Teleinfo modem like this `rfc2217://ip:port`. When using _ser2net_ make sure to use _telnet_ instead of _raw_ in the _ser2net_ config file.
Once the serial controller added, electricity meters will automatically appear after starting discovery, with default label __Teleinfo ADCO #adco__ where __#adco__ is your electricity meter identifier.
| ngtf | `String` | Provider schedule name | All | All |
| ltarf | `String` | Current pricing label | All | All |
| east | `Number:Energy` | Total active energy withdrawn | All | All |
| easf*XX* | `Number:Energy` | Active energy withdrawn from provider on index <imgsrc="https://render.githubusercontent.com/render/math?math=XX \in \{01,\dots,10\}"/> | All | All |
| easd*XX* | `Number:Energy` | Active energy withdrawn from distributor on index <imgsrc="https://render.githubusercontent.com/render/math?math=XX \in \{01,\dots,04\}"/> | All | All |
| irms*X* | `Number:ElectricCurrent` | RMS Current on phase *X* | All for <imgsrc="https://render.githubusercontent.com/render/math?math=X=1"/>, Three-phase for <imgsrc="https://render.githubusercontent.com/render/math?math=X\in \{2,3\}"/> | All |
| urms*X* | `Number:Potential` | RMS Voltage on phase *X* | All for <imgsrc="https://render.githubusercontent.com/render/math?math=X=1"/>, Three-phase for <imgsrc="https://render.githubusercontent.com/render/math?math=X\in \{2,3\}"/> | All |
| pref | `Number:Power` | Reference apparent power | All | All |
| pcoup | `Number:Power` | Apparent power rupture capacity | All | All |
| sinsts | `Number:Power` | Instantaneous withdrawn apparent power | Single-phase | All |
| smaxsn | `Number:Power` | Maximum withdrawn apparent power of the day | Single-phase | All |
| smaxsnMinus1 | `Number:Power` | Maximum withdrawn apparent power of the previous day | Single-phase | All |
| ccasn | `Number:Power` | Active charge point N | All | All |
| ccasnMinus1 | `Number:Power` | Active charge point N-1 | All | All |
| umoy*X* | `Number:Potential` | Mean Voltage on phase *X* | All for <imgsrc="https://render.githubusercontent.com/render/math?math=X=1"/>, Three-phase for <imgsrc="https://render.githubusercontent.com/render/math?math=X\in \{2,3\}"/> | All |
| dpm*X* | `String` | Start of mobile peak period <imgsrc="https://render.githubusercontent.com/render/math?math=X\in \{1,\dots,3\}"/> | All | All |
| fpm*X* | `String` | End of mobile peak period <imgsrc="https://render.githubusercontent.com/render/math?math=X\in \{1,\dots,3\}"/> | All | All |
| msg1 | `String` | Short message | All | All |
| msg2 | `String` | Very short message | All | All |
| ntarf | `String` | Index of current pricing | All | All |
| njourf | `String` | Number of current provider schedule | All | All |
| njourfPlus1 | `String` | Number of next day provider schedule | All | All |
| pjourfPlus1 | `String` | Profile of next day provider schedule | All | All |
| ppointe | `String` | Profile of next rush day | All | All |
| date | `DateTime` | Date and Time | All | All |
| smaxsnDate | `DateTime` | Timestamp of SMAXSN value | All | All |
| smaxsnMinus1Date | `DateTime` | Timestamp of SMAXSN-1 value | All | All |
| ccasnDate | `DateTime` | Timestamp of CCASN value | All | All |
| ccasnMinus1Date | `DateTime` | Timestamp of CCASN-1 value | All | All |
| umoy*X*Date | `DateTime` | Timestamp of UMOY*X* value | All for <imgsrc="https://render.githubusercontent.com/render/math?math=X=1"/>, Three-phase for <imgsrc="https://render.githubusercontent.com/render/math?math=X\in \{2,3\}"/> | All |
| dpm*X*Date | `DateTime` | Date of DPM*X* | All | All |
| fpm*X*Date | `DateTime` | Date of FPM*X* | All | All |
| relais*X* | `Switch` | relais status (<imgsrc="https://render.githubusercontent.com/render/math?math=X\in {1,\dots,8}"/> ) | All | All |
| sinsts*X* | `Number:Power` | Instantaneous withdrawn apparent power on phase *X* | Three-phase | All |
| smaxsn*X* | `Number:Power` | Maximum withdrawn apparent power of the day on phase *X* | Three-phase | All |
| smaxsn*X*Minus1 | `Number:Power` | Maximum withdrawn apparent power on the previous day on phase *X* | Three-phase | All |
| smaxs*X*nDate | `DateTime` | Timestamp of SMAXSN*X* value | Three-phase | All |
| smaxsn*X*Minus1Date | `DateTime` | Timestamp of SMAXSN*X*-1 value | Three-phase | All |
| eait | `Number:Energy` | Total active energy withdrawn | All | All |
| erq*X* | `Number:Energy` | Active energy withdrawn from provider on index <imgsrc="https://render.githubusercontent.com/render/math?math=XX \in \{01,\dots,10\}"/> | All | All |
| sinsti | `Number:Energy` | Active energy withdrawn from distributor on index <imgsrc="https://render.githubusercontent.com/render/math?math=XX \in \{01,\dots,04\}"/> | All | All |
| smaxin | `Number:Power` | Maximum injected apparent power of the day | All for <imgsrc="https://render.githubusercontent.com/render/math?math=X=1"/>, Three-phase for <imgsrc="https://render.githubusercontent.com/render/math?math=X\in \{2,3\}"/> | All |
| smaxinMinus1 | `Number:Power` | Maximum injected apparent power of the previous day | All for <imgsrc="https://render.githubusercontent.com/render/math?math=X=1"/>, Three-phase for <imgsrc="https://render.githubusercontent.com/render/math?math=X\in \{2,3\}"/> | All |
| ccain | `Number:Power` | Injected active charge point N | All | Producer |
| ccainMinus1 | `Number:Power` | Injected active charge point N-1 | All | Producer |
| smaxinDate | `DateTime` | Timestamp of SMAXIN value | All | Producer |
| smaxinMinus1Date | `DateTime` | Timestamp of SMAXIN-1 value | All | Producer |
| ccainDate | `DateTime` | Timestamp of CCAIN value | All | Producer |
| ccainMinus1Date | `DateTime` | Timestamp of CCAIN-1 value | All | Producer |
The following `things` file declare a serial USB controller on `/dev/ttyUSB0` for a Single-phase Electricity meter with HC/HP option - CBEMM Evolution ICC and adco `031528042289` :
`adco` is a 12-digit number written on the electricity meter (There might be two additional digits on the electricity meter, in this case the two last digits must be omitted to obtain 12 digits). The first 6 digits of `adco` can also be retrieved by pushing 6 times the `selection` button of your electricity meter, and the last 6 digits by pushing the `defilement` button.
On Linky telemeters, only *historical* TIC mode is currently supported.
The method for changing the TIC mode of a Linky telemeter is explained [here](https://forum.gce-electronics.com/t/comment-passer-un-cpt-linky-en-mode-standard/8206/7).