Séparer les heures creuses et pleines en fonction d’un sensor

Bonjour,

Pour commencer, je débute sur Home Assistant, même si je potasse pas mal depuis quelques jours. Je débute également en domotique.

J’ai récemment acheté et configuré cette carte : https://www.tindie.com/products/hallard/denky-d4-powerfull-esp32-tic-teleinfo-reader/ . Tout fonctionne, elle tourne sous Tasmota (module Teleinfo), renvoie les données sur mon broker mqtt et j’ai bien la remontée des informations dans Home Assistant.

J’ai ajouté cette remontée d’info dans le dashboard énergie de Home Assistant (l’entité sensor.teleinfo_energy_total ). Le souci étant que les heures creuses et pleines ne sont pas séparées avec cette méthode. J’ai commencé à regarder comment faire, mais il semble que chacun y va de sa méthode, et je suis un peu perdu.

J’ai créé un sensor mqtt pour savoir dans quel tarif je me trouve :

mqtt:
  sensor:
    - name: "Tarif Linky"
      state_topic: "tele/teleinfo/SENSOR"
      value_template: "{{ value_json.TIC.LTARF }}"

Premier souci, il semble que la valeur soit hachée

On le voit sur le graph, la valeur ne reste que quelques instants. Mais admettons que ça puisse fonctionner en continu, comment faire en sorte de séparer la valeur de sensor.teleinfo_energy_total en fonction des changement sur sensor.tarif_linky ?

Petite question subsidiaire, mon relevé de consommation me semble très instable. Est-ce que ça fait ça également chez les gens qui utilisent la sortie TIC du linky ?

Merci d’avance

Salut,

de base si t’es en HC/HP, ton compteur te donne 2 index et c’est ceux-là que sont généralement utilisés pour le distinguer les tarifs. Je ne connais pas ton module mais c’est bizarre qu’il te donne qu’un total.

Ton sensor tarif est sensé recevoir quoi comme valeur? HC ou HP ?
Et celui de la conso instantanée, vu la fréquence de mise à jour qui a l’air d’être toutes les 20/30 secondes, ça parrrait effectivement bizarre d’avoir autant de hauts et de bas successifs, après je ne sais pas ce que t’as comme choses qui tournent.

As tu déjà suivi ton topic MQTT et les messages qui y passent pour voir si les valeurs sont correctes?
C’est ptet aussi tes sensors MQTT dans HA qui manquent de certaines options (simple supposition)

J’ai eu du temps pour gratter un peu plus ce matin. Hier, sur le module dans Tasmota, j’avais activé la remontée des infos « raw ». Mais rien n’était apparu dans Home Assistant. Mais ce matin, ça y était. J’ai donc pû chercher quelles valeurs codaient les heures pleines et les heures creuses, utiliser le module customize pour leur donner un nom et des unités correctes et j’ai ajouté dans le dashboard énergie et ça fonctionne. Mais par défaut, le module ne semble donner que la conso totale. J’ai ajouté en plus des valeurs pour les tarifs, donc je vais pouvoir suivre le coût de ma consommation. Comme je vais avoir des stats sur la puissance max consommée par jour, on verra si je peux changer de contrat d’ici quelques temps.

Pour la conso instantanée, j’ai fait un test ce matin en baissant tous les disjoncteurs des chauffages et … banco ! Dès que je les coupe, la conso devient stable. J’ai ensuite coupé disjoncteur par disjoncteur pour vérifier que ça ne venait pas d’un en particulier, mais non.

Merci pour la réponse rapide. Je pense que ça ne sera pas mon dernier sujet.

Bonjour,
Moi aussi j’ai un Denky D4 avec Tasmota.
Sous Home assistant, j’ai la consommation journalière, mais j’aimerais séparer cette consommation en HP et HC, pour ensuite calculer le coût d’une journée.
As-tu réussi à créer des sensor pour afficher ces deux consommations journalières séparément ?
Si oui comment ?
J’essaye de voir aussi de mon côté

Bonjour

une question pourquoi passer pas tasmota alors des personnes ont développé les librairies pour ESPHOME ?

l’intégration via ESPHOME permet de ségréger nativement les HP et les HC et de donner aussi nativement la période tarifaire en cours qui peut être utilisée par la suite pour déclencher des scripts ou des actions.

pour répondre sinon a vos questions
il vous faut mettre en place un utility meter

et plus particulierement la configuration avancée

Advanced Configuration

The following configuration shows an example where 2 utility_meters (daily_energy and monthly_energy) track daily and monthly energy consumptions.

Both track the same sensor (sensor.energy) which continuously monitors the energy consumed.

4 different sensors will be created, 2 per utility meter and corresponding to each tariff. Sensor sensor.daily_energy_peak, sensor.daily_energy_offpeak, sensor.monthly_energy_peak and sensor.monthly_energy_offpeak will automatically be created to track the consumption in each tariff for the given cycle.

The select.daily_energy and select.monthly_energy select entities will track the current tariff and allow changing the tariff.

utility_meter:
  daily_energy:
    source: sensor.energy
    name: Daily Energy
    cycle: daily
    tariffs:
      - peak
      - offpeak
  monthly_energy:
    source: sensor.energy
    name: Monthly Energy
    cycle: monthly
    tariffs:
      - peak
      - offpeak

YAML

Copy

Assuming your energy provider tariffs are time based according to:

  • peak: from 9h00 to 21h00
  • offpeak: from 21h00 to 9h00 next day

a time based automation can be used:

automation:
  trigger:
    - platform: time
      at: "09:00:00"
      variables:
        tariff: "peak"
    - platform: time
      at: "21:00:00"
      variables:
        tariff: "offpeak"
  action:
    - service: select.select_option
      target:
        entity_id: select.daily_energy
      data:
        option: "{{ tariff }}"
    - service: select.select_option
      target:
        entity_id: select.monthly_energy
      data:
        option: "{{ tariff }}"

vous aurez automatiquement une ségrégation des valeurs de consommation HP HC qui sera intégrable directement dans le module energy de HA

Merci pour tous ces éléments.

Je suis un peu newbie dans le domaine de la TéléInfo. Je me posais d’ailleurs cette question : Tasmota ou ESPHome.

Je suis sous Tasmota car c’était le firmware installé par défaut. Je vais donc partir sur ESPHome, en espérant que ça soit dans mes cordes. Je vous tiens au courant

identifie bien quel est le port serie utilisé sur ton module a base d’ESP
sur le github c’est indiqué

Téléinfo Rx GPIO8

une fois que c’est fait normalement tout roulera

il y a quelques post sur ESPHOME et la TELEINFO ou aussi appelé TIC.
avec ces mots clé tu aura de la lecture…

Ok je vais faire ça ce soir.
Je commence par installer l’intégration ESPHome sous HA. Ensuite je vais pouvoir utiliser ESPHome pour générer un binary pour flasher mon Denky D4, c’est bien ça ?

Pour l’utilisation avec Tasmota, j’ai changé la configuration dans la console pour envoyer toutes les infos retournées par le module de teleinfo :
EnergyConfig changed

J’ai ensuite modifié les entités dans home assistant :

customize:
  sensor.teleinfo_tic_easd01:
    friendly_name: Linky HC
    icon: mdi:gauge
    unit_of_measurement: Wh
    device_class: "energy"
    state_class: "total_increasing"

  sensor.teleinfo_tic_easd02:
    friendly_name: Linky HP
    icon: mdi:gauge
    unit_of_measurement: Wh
    device_class: "energy"
    state_class: "total_increasing"

  sensor.teleinfo_tic_smaxsn:
    friendly_name: Linky Puissance Max
    icon: mdi:flash
    unit_of_measurement: W
    device_class: "power"
    state_class: "measurement"

  sensor.teleinfo_tic_smaxsn_1:
    friendly_name: Linky Puissance Max Hier
    icon: mdi:flash
    unit_of_measurement: W
    device_class: "power"
    state_class: "measurement"

  sensor.teleinfo_tic_sinsts:
    friendly_name: Linky Puissance
    icon: mdi:flash
    unit_of_measurement: W
    device_class: "power"
    state_class: "measurement"

Avec ça, j’ai ce qu’il me faut. J’ai aussi créé des nombres :

input_number:
  edf_tarif_hp:
    name: EDF Tarif Heures Pleines
    initial: 0.1841
    min: 0.1
    max: 0.25
    step: 0.0001
    unit_of_measurement: EUR/kWh
  edf_tarif_hc:
    name: EDF Tarif Heures Creuses
    initial: 0.1470
    min: 0.1
    max: 0.25
    step: 0.0001
    unit_of_measurement: EUR/kWh
  edf_tarif_base:
    name: EDF Tarif Base
    initial: 0.1740
    min: 0.1
    max: 0.25
    step: 0.0001
    unit_of_measurement: EUR/kWh

Salut

oui regarde les exemples de code

le plus important est d’identifier le mode de tom compteur
standard ( → 9600 baud)
ou
historique (-1200 baud)

le code devra refleter la configuration de ton compteur

mais avant de te lancer je t’invite a parcourir les quelques post a ce sujet

J’ai installé le plugin ESPHome et j’ai flashé mon Denky D4. J’ai modifié le fichier yaml pour intégrer les sensors de téléinfo.
Mais sous HA mes sensors déclarés n’ont pas de valeurs. J’ai dû me tromper au niveau de mon fichier de conf mais je ne sais pas où.
Quelqu’un a déjà configuré un Denky D4 sous ESPHome ?

file nous ton code
ce sera plus simple

esphome:
  name: denkyd4

esp32:
  board: denky_d4
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "P1kv9YzDlEei5zkgdjVmpUwvykYoYEt8j+904rrzjfE="

ota:
  password: "09c70d0ccfa0e02cceeba1c25437b26a"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Denkyd4 Fallback Hotspot"
    password: "vCOReUpqwHW1"

uart:
  id: uart_bus
  rx_pin: GPIO3
#  tx_pin: GPIO1
  baud_rate: 1200
  parity: EVEN
  data_bits: 7

teleinfo:
  id: esp_teleinfo
  update_interval: 60s
  historical_mode: true

binary_sensor:
  - platform: status
    id: teleinfo_status
    name: "Teleinfo Status"

sensor:
  - platform: wifi_signal
    name: "Signal wifi"
    update_interval: 60s
    unit_of_measurement: dB
    accuracy_decimals: 0
    force_update: false
    icon: mdi:wifi
    
  - platform: uptime
    id: uptime_seconds
    name: "Uptime Sensor"
    update_interval: 60s
    unit_of_measurement: s
    accuracy_decimals: 0
    force_update: false
    icon: mdi:timer
    
  - platform: teleinfo
    tag_name: "IINST"
    name: "Intensité"
    unit_of_measurement: "A"
    icon: mdi:current-ac

  - platform: teleinfo
    tag_name: "PAPP"
    name: "Puissance"
    unit_of_measurement: "VA"
    icon: mdi:flash

  - platform: teleinfo
    tag_name: "HCHC"
    id: hchc
    name: "Teleinfo index_hc_kwh"
    unit_of_measurement: "kWh"
    device_class: "energy"
    state_class: "total_increasing"
    accuracy_decimals: 3 
    filters:
      - multiply: 0.001
    icon: mdi:gauge

  - platform: teleinfo
    tag_name: "HCHP"
    id: hchp
    unit_of_measurement: "kWh"
    device_class: "energy"
    state_class: "total_increasing"
    name: "Teleinfo index_hp_kwh"
    accuracy_decimals: 3 
    filters:
      - multiply: 0.001
    icon: mdi:gauge

button:
  - platform: restart
    name: "Teleinfo Restart"

text_sensor:
  - platform: teleinfo
    tag_name: "PTEC"
    name: "Tarif actuel"
    icon: mdi:clock-time-nine-outline
  - platform: template
    name: Uptime
    update_interval: 60s
    icon: mdi:clock-start
    lambda: |-
      int seconds = (id(uptime_seconds).state);
      int days = seconds / (24 * 3600);
      seconds = seconds % (24 * 3600);
      int hours = seconds / 3600;
      seconds = seconds % 3600;
      int minutes = seconds /  60;
      seconds = seconds % 60;
      if ( days ) {
        return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
      } else if ( hours ) {
        return { (String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
      } else if ( minutes ) {
        return { (String(minutes) +"m "+ String(seconds) +"s").c_str() };
      } else {
        return { (String(seconds) +"s").c_str() };
      }    

je t’ai indiqué hier qu’il fallait choisir le bon GPIO
modifie le :wink:
d’autre part es tu certain d’etre en mode historique?

tu peux verifier sur ton linky en navigant avec les boutons
a un moment ce sera indiqué en clair
si tu n’est pas en mode historique tu devras encore modifier ton code

d’autre part

esp32:
board: denky_d4

je ne crois pas que ce type de carte soit nativement reconnue par ESPHOME
modifie en nodemcu-32s

identifie bien quel est le port serie utilisé sur ton module a base d’ESP
sur le github c’est indiqué

J’ai pas réussi à trouver l’info. J’ai effectivement testé avec GPIO8 mais j’ai un message d’erreur:
This pin cannot be used on ESP32s and is already used by the flash interface (function: Flash Data 1
Alors qu’avec le GPIO3, j’ai pas de message d’erreur. Mais j’avoue que ma méthode n’est pas bonne.

tu peux verifier sur ton linky en navigant avec les boutons
a un moment ce sera indiqué en clair

Je n’ai pas un Linky, j’ai un Actaris A14C5, je suppose donc que je suis en mode historique (j’ai vérifié en faisant défiler, il n’y a pas d’affichage qui indique le mode)

je ne crois pas que ce type de carte soit nativement reconnue par ESPHOME
modifie en nodemcu-32s

J’ai trouvé l’info là: Denky D4 (PICO-V3-02) — PlatformIO latest documentation

J’avoue que je patoge beaucoup.

J’ai peut-être une piste

My mistake

J’ai trouvé l’info là: Denky D4 (PICO-V3-02) — PlatformIO latest documentation

je connaissais pas cette ref d’ESP

tu n’as pas encore de linky donc tu es en historique.
Ok deja bon point
d’après le schéma qui est disponible

c’est bien le GPIO8 qui est utilisé

Et j’ai trouvé cela aussi

Effectivement tu as raison, aucun doute possible. Je modifie mon fichier conf.
J’ai aussi posé ma question sur ce forum car j’avais vu ce topic aussi.

chez moi j’ai

logger:
  baud_rate: 0

d’autre part il te faut trouver la correspondance PIN vers GPIO
j’ai ça dans mon code

uart:
  id: uart_bus
  rx_pin: 33 # ne pas mettre GPIO8 mais la référence de la pin correspondante , a priori ce serait 33 voir tableau ci dessous


  baud_rate: 1200
  parity: EVEN
  data_bits: 7
  sopt_bits: 1
  rx_buffer_size: 2048

d’après

image
ce serait la pin 33

sinon j’ai bien peur qu’il faille rester avec tasmotta

J’ai fait les modifs. Ca semble aller mieux: