Configurer Home Assistant pour TeleInfoKit

Le module TeleInfoKit envoie ses données par MQTT. Home Assistant va permettre de les afficher avec des courbes, créer des automations, etc. Le firmware du TeleInfoKit ne configure pas (encore) Home Assistant automatiquement, il faut donc faire quelques manipulations pour voir apparaitre les données dans celui-ci.

Le module TeleInfoKit envoie ses données par MQTT. Home Assistant va permettre de les afficher avec des courbes, créer des automations, etc. Le firmware du TeleInfoKit ne configure pas (encore) Home Assistant automatiquement, il faut donc faire quelques manipulations pour voir apparaitre les données dans celui-ci.

Afin de récupérer les valeurs, des sensors MQTT sont à créer dans la configuration de Home Assistant. La configuration suivante va intégrer la puissance et l’intensité instantanée ainsi que les index :

# Nouveau format de configuration MQTT pour HA >= 2022.6
mqtt:
  sensor:
    - state_topic: "teleinfokit/data/PAPP"
      unit_of_measurement: "VA"
      device_class: apparent_power
      name: Puissance consommée
      icon: mdi:power-plug
    - state_topic: "teleinfokit/data/IINST"
      unit_of_measurement: "A"
      device_class: current
      name: Intensité
      icon: mdi:power-plug

# SI  OPTION SIMPLE TARIF
    - state_topic: "teleinfokit/data/BASE"
      unit_of_measurement: "kWh"
      name: Index compteur électricité
      icon: mdi:home-analytics
      value_template: "{{float(value) / 1000.0}}"
      state_class: total_increasing
      device_class: energy


# SI OPTION TARIF HEURES PLEINES/CREUSES
    - state_topic: "teleinfokit/data/HCHC"
      unit_of_measurement: "kWh"
      device_class: energy
      state_class: total_increasing
      name: Index heure creuse
      icon: mdi:power-plug
      value_template: "{{float(value) / 1000.0}}"
    - state_topic: "teleinfokit/data/HCHP"
      unit_of_measurement: "kWh"
      device_class: energy
      state_class: total_increasing
      name: Index heure pleine
      icon: mdi:power-plug
      value_template: "{{float(value) / 1000.0}}"

Ce format de configuration décrit ci-dessus est compatible à partir de la version 2022.6 qui introduit un breaking change sur le format MQTT, et est à préférer dès maintenant.

Si votre version de Home assistant est inférieure à la 2022.12, vous pouvez encore utiliser l’ancien format de configuration MQTT, décrit ci-dessous. Ceci est déconseillé car va être déprécié à partir de la version 2022.12. Voir la documentation sur les sensors MQTT de Home Assistant.

# Format de configuration MQTT compatible Home Assistant jusqu'à la version 2022.11.x inclus

sensor:
  - platform: mqtt
    state_topic: "teleinfokit/data/PAPP"
    unit_of_measurement: "VA"
    name: Puissance consommée
    icon: mdi:power-plug
  - platform: mqtt
    state_topic: "teleinfokit/data/IINST"
    unit_of_measurement: "A"
    name: Intensité
    icon: mdi:power-plug

# SI  OPTION SIMPLE TARIF
- platform: mqtt
    state_topic: "teleinfokit/data/BASE"
    unit_of_measurement: "kWh"
    name: Index compteur électricité
    icon: mdi:home-analytics
    value_template: "{{float(value) / 1000.0}}"
    state_class: total_increasing
    device_class: energy

# SI OPTION TARIF HEURES PLEINES/CREUSES
  - platform: mqtt
    state_topic: "teleinfokit/data/HCHC"
    unit_of_measurement: "kWh"
    name: Index heure creuse
    icon: mdi:power-plug
    value_template: "{{float(value) / 1000.0}}"
    state_class: total_increasing
    device_class: energy
  - platform: mqtt
    state_topic: "teleinfokit/data/HCHP"
    unit_of_measurement: "kWh"
    name: Index heure pleine
    icon: mdi:power-plug
    value_template: "{{float(value) / 1000.0}}"
    state_class: total_increasing
    device_class: energy

Les compteurs permettent de calculer automatiquement les consommations journalières et mensuelles dans l’exemple donné ici. Ces compteurs peuvent être créés avec la configuration suivante (exemple à adapter en fonction du nommage de vos entités) :

# SI  OPTION SIMPLE TARIF
utility_meter:
  energie_quotidienne:
    source: sensor.index_compteur_electricite
    cycle: daily
  energie_mensuelle:
    source: sensor.index_compteur_electricite
    cycle: monthly


# SI OPTION TARIF HEURES PLEINES/CREUSES

utility_meter:
  energie_quotidienne_heures_creuses:
    source: sensor.index_heure_creuse
    cycle: daily
    tariffs:
      - Heure creuse
  energie_quotidienne_heures_pleines:
    source: sensor.index_heure_pleine
    cycle: daily
    tariffs:
      - Heure pleine
  energie_mensuelle_heures_creuses:
    source: sensor.index_heure_creuse
    cycle: monthly
    tariffs:
      - Heure creuse
  energie_mensuelle_heures_pleines:
    source: sensor.index_heure_pleine
    cycle: monthly
    tariffs:
      - Heure pleine

Après un redémarrage, les entités sont disponibles pour les intégrer dans des cards lovelace. La vue affichée en exemple sur cette page est configurée de la façon suivante : deux vertical cards contenant chacune les données numériques d’un coté et les graphes de l’autre.

type: vertical-stack
cards:
  - entity: sensor.puissance_consommee
    max: 9500
    min: 0
    severity:
      green: 0
      red: 8000
      yellow: 6500
    title: Conso élec
    type: gauge
  - type: entities
    entities:
      - entity: sensor.index_heure_pleine
      - entity: sensor.index_heure_creuse
      - entity: sensor.energie_quotidienne_heures_creuses_heure_creuse
      - entity: sensor.energie_quotidienne_heures_pleines_heure_pleine
      - entity: sensor.energie_mensuelle_heures_creuses_heure_creuse
      - entity: sensor.energie_mensuelle_heures_pleines_heure_pleine

Et la vertical card avec les graphes

type: vertical-stack
cards:
  - type: custom:mini-graph-card
    hours_to_show: 6
    points_per_hour: 120
    show:
      fill: fade
      extrema: true
      labels: true
    entities:
      - entity: sensor.puissance_consommee
        name: Puissance (6h)
        show_state: true
    color_thresholds:
      - value: 1000
        color: '#009FC1'
      - value: 3000
        color: '#D0AB00'
      - value: 8000
        color: '#C10042'
  - type: custom:mini-graph-card
    entities:
      - entity: sensor.puissance_consommee
        color: '#69a6e0'
    name: Puissance electrique moyenne (24h)
    aggregate_func: avg
    points_per_hour: 1
    lower_bound: 0
    show:
      graph: bar
      state: false
      extrema: true
  - type: custom:apexcharts-card
    graph_span: 7d
    span:
      end: day
    stacked: true
    header:
      show: true
      title: Consommation journalière (7j)
      show_states: true
      colorize_states: true
    series:
      - entity: sensor.energie_quotidienne_heures_pleines_heure_pleine
        type: column
        color: '#1781d8'
        name: Heures pleines
        group_by:
          duration: 1d
          func: max
      - entity: sensor.energie_quotidienne_heures_creuses_heure_creuse
        type: column
        color: '#94d5ef'
        name: Heures creuses
        group_by:
          duration: 1d
          func: max