Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[teleinfo] Add support for Standard tic mode #11375

Merged
merged 22 commits into from Dec 12, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
108 changes: 92 additions & 16 deletions bundles/org.openhab.binding.teleinfo/README.md 100644 → 100755
Expand Up @@ -12,6 +12,10 @@ These values can be used to

## Supported Things

### Historical TIC mode

Historical TIC mode is the only mode of all telemeters before Linky models and the default mode for Linky telemeters.

The Teleinfo binding provides support for both single-phase and three-phase connection, ICC evolution and the following pricing modes:

- HCHP mode
Expand All @@ -34,6 +38,19 @@ The Teleinfo binding provides support for both single-phase and three-phase conn
| cbetm_hc_electricitymeter | three-phase | HCHP | |
| cbetm_tempo_electricitymeter | three-phase | Tempo | |

### Standard TIC mode

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.

| Thing type | Connection | Producer mode |
|--------------------------------------------|--------------|--------------|
| lsmm_electricitymeter | single-phase | |
| lsmm_prod_electricitymeter | single-phase | [x] |
| lstm_electricitymeter | three-phase | |
| lstm_prod_electricitymeter | three-phase | [x] |

## Discovery

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.
Expand All @@ -49,30 +66,33 @@ Once the serial controller added, electricity meters will automatically appear a
|----------------------|--------------|---------------------------------------|---------------------------------|
| `serialcontroller` | `serialport` | Path to the serial controller | /dev/ttyXXXX, rfc2217://ip:port |
| `*_electricitymeter` | `adco` | Electricity meter identifier | 12 digits number |
| | `ticMode` | TIC mode | `STANDARD`, `HISTORICAL` (default) |

## Channels

### Historical TIC mode

Channel availability depends on the electricity connection (single or three-phase) and on the pricing mode (Base, HCHP, EJP or Tempo).

| Channel | Type | Description | Phase | Mode |
| Channel | Type | Description | Connection | Mode |
|----------|---------------------------|----------------------------------------------------------|--------|-------|
| isousc | `Number:ElectricCurrent` | Subscribed electric current | All | All |
| ptec | `String` | Current pricing period | All | All |
| imax | `Number:ElectricCurrent` | Maximum consumed electric current | Single | All |
| imax1 | `Number:ElectricCurrent` | Maximum consumed electric current on phase 1 | Three | All |
| imax2 | `Number:ElectricCurrent` | Maximum consumed electric current on phase 2 | Three | All |
| imax3 | `Number:ElectricCurrent` | Maximum consumed electric current on phase 3 | Three | All |
| adps | `Number:ElectricCurrent` | Excess electric current warning | Single | All |
| adir1 | `Number:ElectricCurrent` | Excess electric current on phase 1 warning | Three | All |
| adir2 | `Number:ElectricCurrent` | Excess electric current on phase 2 warning | Three | All |
| adir3 | `Number:ElectricCurrent` | Excess electric current on phase 3 warning | Three | All |
| iinst | `Number:ElectricCurrent` | Instantaneous electric current | Single | All |
| iinst1 | `Number:ElectricCurrent` | Instantaneous electric current on phase 1 | Three | All |
| iinst2 | `Number:ElectricCurrent` | Instantaneous electric current on phase 2 | Three | All |
| iinst3 | `Number:ElectricCurrent` | Instantaneous electric current on phase 3 | Three | All |
| ppot | `String` | Electrical potential presence | Three | All |
| pmax | `Number:Energy` | Maximum consumed electric power on all phases | Three | All |
| papp | `Number:Power` | Instantaneous apparent power | Three, single (ICC evolution only) | All |
| imax | `Number:ElectricCurrent` | Maximum consumed electric current | Single-phase | All |
| imax1 | `Number:ElectricCurrent` | Maximum consumed electric current on phase 1 | Three-phase | All |
| imax2 | `Number:ElectricCurrent` | Maximum consumed electric current on phase 2 | Three-phase | All |
| imax3 | `Number:ElectricCurrent` | Maximum consumed electric current on phase 3 | Three-phase | All |
| adps | `Number:ElectricCurrent` | Excess electric current warning | Single-phase | All |
| adir1 | `Number:ElectricCurrent` | Excess electric current on phase 1 warning | Three-phase | All |
| adir2 | `Number:ElectricCurrent` | Excess electric current on phase 2 warning | Three-phase | All |
| adir3 | `Number:ElectricCurrent` | Excess electric current on phase 3 warning | Three-phase | All |
| iinst | `Number:ElectricCurrent` | Instantaneous electric current | Single-phase | All |
| iinst1 | `Number:ElectricCurrent` | Instantaneous electric current on phase 1 | Three-phase | All |
| iinst2 | `Number:ElectricCurrent` | Instantaneous electric current on phase 2 | Three-phase | All |
| iinst3 | `Number:ElectricCurrent` | Instantaneous electric current on phase 3 | Three-phase | All |
| ppot | `String` | Electrical potential presence | Three-phase | All |
| pmax | `Number:Energy` | Maximum consumed electric power on all phases | Three-phase | All |
| papp | `Number:Power` | Instantaneous apparent power | Three-phase, single-phase (ICC evolution only) | All |
| hhphc | `String` | Pricing schedule group | All | HCHP |
| hchc | `Number:Energy` | Total consumed energy at low rate pricing | All | HCHP |
| hchp | `Number:Energy` | Total consumed energy at high rate pricing | All | HCHP |
Expand All @@ -88,8 +108,64 @@ Channel availability depends on the electricity connection (single or three-phas
| pejp | `Number:Duration` | Prior notice to EJP start | All | EJP |
| demain | `String` | Following day color | All | Tempo |

### Standard TIC mode

| Channel | Type | Description | Connection | Mode |
|----------|---------------------------|----------------------------------------------------------|--------|-------|
| 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 <img src="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 <img src="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 <img src="https://render.githubusercontent.com/render/math?math=X=1"/>, Three-phase for <img src="https://render.githubusercontent.com/render/math?math=X\in \{2,3\}"/> | All |
| urms*X* | `Number:Potential` | RMS Voltage on phase *X* | All for <img src="https://render.githubusercontent.com/render/math?math=X=1"/>, Three-phase for <img src="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 <img src="https://render.githubusercontent.com/render/math?math=X=1"/>, Three-phase for <img src="https://render.githubusercontent.com/render/math?math=X\in \{2,3\}"/> | All |
| dpm*X* | `String` | Start of mobile peak period <img src="https://render.githubusercontent.com/render/math?math=X\in \{1,\dots,3\}"/> | All | All |
| fpm*X* | `String` | End of mobile peak period <img src="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 <img src="https://render.githubusercontent.com/render/math?math=X=1"/>, Three-phase for <img src="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 (<img src="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 <img src="https://render.githubusercontent.com/render/math?math=XX \in \{01,\dots,10\}"/> | All | All |
| sinsti | `Number:Energy` | Active energy withdrawn from distributor on index <img src="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 <img src="https://render.githubusercontent.com/render/math?math=X=1"/>, Three-phase for <img src="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 <img src="https://render.githubusercontent.com/render/math?math=X=1"/>, Three-phase for <img src="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 |

## Full Example

### Historical TIC mode

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` :

```
Expand Down