Clé ZLINKY lixee avec ZHA + Conbee2_Remonter dans ENERGIE HP/HC

j’ai ça dans mon fichier sensors.yaml :

et ça dans le templates.yaml :

le code de la partie availability :

      availability: "{{ states('sensor.zlinky_tic_bbrhcjb')|is_number and states('sensor.zlinky_tic_bbrhpjb')|is_number }} and states('sensor.zlinky_tic_bbrhcjw')|is_number }} and states('sensor.zlinky_tic_bbrhpjw')|is_number }} and states('sensor.zlinky_tic_bbrhcjr')|is_number }} and states('sensorzlinky_tic_bbrhpjr')|is_number }}"

edit : et dans les capteurs, j’ai ceci :

edit 2 : je me dis que c’est peut-être mon fichier templates.yaml qui ne va pas…
Si tu veux bien le regarder :

- unique_id: "tempo_time_prices"
  sensor:
    - name: "EDF Tempo Prix Actuel"
      unique_id: "current"
      device_class: "monetary"
      unit_of_measurement: "c€/kWh"
      icon: "mdi:cash-check"
      availability: >
        {{ not 'unavailable' in
          [
            states('sensor.rte_tempo_couleur_actuelle'),
            states('binary_sensor.rte_tempo_heures_creuses'),
          ] and not 'unknown' in
          [
            states('sensor.rte_tempo_couleur_actuelle'),
            states('binary_sensor.rte_tempo_heures_creuses'),
            states('input_number.tarif_edf_tempo_bleu_hp'),
            states('input_number.tarif_edf_tempo_bleu_hc'),
            states('input_number.tarif_edf_tempo_blanc_hp'),
            states('input_number.tarif_edf_tempo_blanc_hc'),
            states('input_number.tarif_edf_tempo_rouge_hp'),
            states('input_number.tarif_edf_tempo_rouge_hc')
          ]
        }}
      state: >
        {%- if is_state('sensor.rte_tempo_couleur_actuelle', "Bleu") %}
          {%- if is_state('binary_sensor.rte_tempo_heures_creuses', 'off') %}
            {{ states('input_number.tarif_edf_tempo_bleu_hp') | float * 100 }}
          {%- else %}
            {{ states('input_number.tarif_edf_tempo_bleu_hc') | float * 100 }}
          {%- endif %}
        {%- elif is_state('sensor.rte_tempo_couleur_actuelle', "Blanc") %}
          {%- if is_state('binary_sensor.rte_tempo_heures_creuses', 'off') %}
            {{ states('input_number.tarif_edf_tempo_blanc_hp') | float * 100 }}
          {%- else %}
            {{ states('input_number.tarif_edf_tempo_blanc_hc') | float * 100 }}
          {%- endif %}
        {%- elif is_state('sensor.rte_tempo_couleur_actuelle', "Rouge") %}
          {%- if is_state('binary_sensor.rte_tempo_heures_creuses', 'off') %}
            {{ states('input_number.tarif_edf_tempo_rouge_hp') | float * 100 }}
          {%- else %}
            {{ states('input_number.tarif_edf_tempo_rouge_hc') | float * 100 }}
          {%- endif %}
        {%- else %}
          0
        {%- endif %}
    - name: "EDF Tempo Prochain Prix"
      unique_id: "next"
      device_class: "monetary"
      unit_of_measurement: "c€/kWh"
      icon: "mdi:cash-clock"
      availability: >
        {{ not 'unavailable' in
          [
            states('sensor.rte_tempo_couleur_actuelle'),
            states('sensor.rte_tempo_prochaine_couleur'),
            states('binary_sensor.rte_tempo_heures_creuses'),
          ] and not 'unknown' in
          [
            states('sensor.rte_tempo_couleur_actuelle'),
            states('sensor.rte_tempo_prochaine_couleur'),
            states('binary_sensor.rte_tempo_heures_creuses'),
            states('input_number.tarif_edf_tempo_bleu_hp'),
            states('input_number.tarif_edf_tempo_bleu_hc'),
            states('input_number.tarif_edf_tempo_blanc_hp'),
            states('input_number.tarif_edf_tempo_blanc_hc'),
            states('input_number.tarif_edf_tempo_rouge_hp'),
            states('input_number.tarif_edf_tempo_rouge_hc')
          ]
        }}
      state: >
        {%- if is_state('binary_sensor.rte_tempo_heures_creuses', 'on') %}
          {%- if is_state('sensor.rte_tempo_prochaine_couleur', "Bleu") %}
            {{ states('input_number.tarif_edf_tempo_bleu_hp') | float * 100 }}
          {%- elif is_state('sensor.rte_tempo_prochaine_couleur', "Blanc") %}
            {{ states('input_number.tarif_edf_tempo_blanc_hp') | float * 100 }}
          {%- elif is_state('sensor.rte_tempo_prochaine_couleur', "Rouge") %}
            {{ states('input_number.tarif_edf_tempo_rouge_hp') | float * 100 }}
          {%- else %}
            0
          {%- endif %}
        {%- else %}
          {%- if is_state('sensor.rte_tempo_couleur_actuelle', "Bleu") %}
            {{ states('input_number.tarif_edf_tempo_bleu_hc') | float * 100 }}
          {%- elif is_state('sensor.rte_tempo_couleur_actuelle', "Blanc") %}
            {{ states('input_number.tarif_edf_tempo_blanc_hc') | float * 100 }}
          {%- elif is_state('sensor.rte_tempo_couleur_actuelle', "Rouge") %}
            {{ states('input_number.tarif_edf_tempo_rouge_hc') | float * 100 }}
          {%- else %}
            0
          {%- endif %}
        {%- endif %}
- unique_id: "date_fr"
  sensor:
    - name: "Date FR sans année"
      unique_id: "date_fr__sans_an"
      icon: mdi:calendar-today
      state: >
        {% set months = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"] %}
        {% set days = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]  %}
        {{ days[now().weekday()] + ' ' + now().day | string + ' ' + months[now().month-1] }}
    - name: "Date FR complète"
      unique_id: "date_fr__complete"
      icon: mdi:calendar-today
      state: >
        {% set months = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"] %}
        {% set days = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]  %}
        {{ days[now().weekday()] + ' ' + now().day | string + ' ' + months[now().month-1]  + ' ' + now().year | string }}
    - name: "date FR courte"
      unique_id: "date_fr__courte"
      icon: mdi:calendar-today
      state: >
        {% set days = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]  %}
        {{ days[now().weekday()] + ' ' + now().day | string }}
    - name: "Date FR courte courte"
      unique_id: "date_fr__courte_courte"
      icon: mdi:calendar-today
      state: >
        {% set months = ["Jan", "Fev", "Mar", "Avr", "Mai", "Juin", "Juil", "Août", "Sep", "Oct", "Nov", "Dec"] %}
        {{ now().day | string + ' ' + months[now().month-1] }}
    - name: "Jours FR"
      unique_id: "date_fr__jours"
      icon: mdi:calendar-today
      state: >
        {{ ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"][now().weekday()] }}
    - name: "Date FR Jour Heure"
      unique_id: "date_fr__jour_heure"
      state: >
        {{ states('sensor.date_fr_complete') }} -- {{ now().strftime('%Hh%M') }}
    - name: "Heure FR"
      unique_id: "date_fr__heure"
      state: >
        {{ now().strftime('%H:%M') }}
- unique_id: "netatmo_co2_texte"
  sensor:
    - name: "Netatmo Bureau CO2 texte"
      unique_id: "netatmo_bureau_co2_texte"
      state: >
        {% if states('sensor.netatmo_bureau_co2')|int(0) >= 2000 %}
          Mauvais
        {% elif states('sensor.netatmo_bureau_co2')|int(0) >= 1000 %}
          Moyen
        {% elif states('sensor.netatmo_bureau_co2')|int(0) >= 600 %}
          Excellent
        {% else %}
          Bon
        {% endif %}
      availability: "{{ is_number(states('sensor.netatmo_bureau_co2')) }}"
      
# Partie pour la dérivée des consommations HC/HP des différentes couleurs de jours
# Voir ce post : https://forum.hacf.fr/t/cle-zlinky-lixee-avec-zha-conbee2-remonter-dans-energie-hp-hc/9058/173
#########################
#       TEMPLATE        #
#########################
- sensor:
    - name: "ZLinky Somme Conso. HC+HP toutes couleurs"
      unique_id: "zlinky_somme_HC_HP_couleurs"
      unit_of_measurement: "Wh"
      device_class: energy
      state_class: total_increasing
      state: >-
          {% set HCbleu = states('sensor.zlinky_tic_bbrhcjb')|float(default=0)*1000 %}
          {% set HPbleu = states('sensor.zlinky_tic_bbrhpjb')|float(default=0)*1000 %}
          {% set HCblanc = states('sensor.zlinky_tic_bbrhcjw')|float(default=0)*1000 %}
          {% set HPblanc = states('sensor.zlinky_tic_bbrhpjw')|float(default=0)*1000 %}
          {% set HCrouge = states('sensor.zlinky_tic_bbrhcjr')|float(default=0)*1000 %}
          {% set HProuge = states('sensorzlinky_tic_bbrhpjr')|float(default=0)*1000 %}
          {{ HCbleu + HPbleu + HCblanc + HPblanc +  HCrouge + HProuge | int(default=0) }}
      availability: "{{ states('sensor.zlinky_tic_bbrhcjb')|is_number and states('sensor.zlinky_tic_bbrhpjb')|is_number }} and states('sensor.zlinky_tic_bbrhcjw')|is_number }} and states('sensor.zlinky_tic_bbrhpjw')|is_number }} and states('sensor.zlinky_tic_bbrhcjr')|is_number }} and states('sensorzlinky_tic_bbrhpjr')|is_number }}"

Les uniques id au niveau de sensor pas sûr qu’ils ne posent pas souci. Et tu répètes sensor plus bas. Il ne doit être qu’une fois dans ton fichier template

Je tente une méthode d’organisation trouvée ici : Splitting config for template: - #63 by petro - Configuration - Home Assistant Community

Si ça ne fonctionne toujours pas, je referais avec un seul sensor:

@WarC0zes @cob94440
Je crois que le souci vient d’ailleurs : c’est le test availabilty qui ne fonctionne pas :

Tu as une erreur dans la syntaxe, ta mis plusieurs fois }}:

      availability: "{{ states('sensor.zlinky_tic_bbrhcjb')|is_number and states('sensor.zlinky_tic_bbrhpjb')|is_number }} and states('sensor.zlinky_tic_bbrhcjw')|is_number }} and states('sensor.zlinky_tic_bbrhpjw')|is_number }} and states('sensor.zlinky_tic_bbrhcjr')|is_number }} and states('sensorzlinky_tic_bbrhpjr')|is_number }}"

corrigé

      availability: "{{ states('sensor.zlinky_tic_bbrhcjb')|is_number and states('sensor.zlinky_tic_bbrhpjb')|is_number and states('sensor.zlinky_tic_bbrhcjw')|is_number and states('sensor.zlinky_tic_bbrhpjw')|is_number and states('sensor.zlinky_tic_bbrhcjr')|is_number and states('sensorzlinky_tic_bbrhpjr')|is_number }}"
1 « J'aime »

Ta le code complet de ma carte sur ce post [ CARTE ] Cartes diverses ( Livebox, NAS, RPI, BLE Proxy...)

1 « J'aime »

Merci pour la correction.
Mais j’ai toujours un unavailable pour le sensor, et dans les outils dev : le availability est sur false alors que le calcul de somme fonctionne bien.


Je capte pas pourquoi tu est sur false. Il y a un soucis avec les entités , j’ai comparé chez moi et j’ai la même syntaxe.

exemple:

      availability: "{{ states('sensor.zlinky_current_summation_derived_one_minute')|is_number and states('sensor.0x54ef4410005647e8_power')|is_number and states('sensor.0xa4c1388dad871064_power')|is_number and states('sensor.0xa4c138c9cc1b6472_power')|is_number and states('sensor.0xa4c138244f6e91e3_power')|is_number and states('sensor.0xa4c138d4c17833b3_power')|is_number and states('sensor.0xa4c138b1bfb7f7ef_power')|is_number and states('sensor.0x54ef4410004ea988_power')|is_number and states('sensor.0xa4c138c9cc1b6472_power')|is_number }}"

Sinon tu peut virer l’option availability et tester voir si les valeurs remonte.

J’ai trouvé ! Il manquait un point entre un sensor et le sensor_ID XD

{{ states('sensor.zlinky_tic_bbrhcjb')|is_number and states('sensor.zlinky_tic_bbrhpjb')|is_number and states('sensor.zlinky_tic_bbrhcjw')|is_number and states('sensor.zlinky_tic_bbrhpjw')|is_number and states('sensor.zlinky_tic_bbrhcjr')|is_number and states('sensor.zlinky_tic_bbrhpjr')|is_number }}

Donc le capteur somme fonctionne.
La dérivée… bah aussi.
Mais comme le capteur somme n’augmente pas, la dérivée est nulle…

Je sens qu’on ne va pas y arriver :sweat_smile:

Ah quand même :wink:

a voir l’addition de tout t’es capteur hp et hc, la somme est bien celle donner par ton 1 capteur zlinky_tic_base.

Il s’actualise pas celui la ?
t’es 6 entités hp hc , s’actualise pas ?
image

mes entités hp et hc , s’actualise toutes les minutes. Je passe par Z2M.

@WarC0zes
La seule entité qui augmente aujourd’hui, c’est celle des HP Rouges :

Du coup j’ai tenté de faire la dérivée de ce capteur :

# Pour le calcul de la dérivée des consommations afin d'obtenir une puissance instantanée
- platform: derivative
  #source: sensor.zlinky_somme_conso_HC_HP_toutes_couleurs
  source: sensor.zlinky_tic_bbrhpjr
  name: "zlinky_derivee_minute_somme_conso_HC_HP_toutes_couleurs"
  round: 0
  unit_time: h
  unit: W
  time_window: "00:01:00"

Mais je n’ai pas grand-chose dans la dérivée :

Je me demande si la dérivée n’a pas un souci quelconque… car normalement ça devrait montrer des variations…

Alors que j’ai un talon de 300 Wh en moyenne.
La seule grandeur qui s’apparente à une puissance instantanée, c’est le capteur PAPP en VA :


Mais je ne sais pas comment le convertir en W, ni même si c’est vraiment possible.

j’ai tenté de faire un calcul en prenant les valeurs des HP/HC de couleurs, et je ne tombe pas sur la même valeur que le capteur sensor.zlinky_tic_base mais ça je m’en doutais car la courbe de ce dernier n’évolue pas.

Il me semble avoir lu que le Linky en mode standard il y avait une variable puissance instantannée en W.
Peut-être que je devrais appeler EDF pour qu’ils me passent en standard plutôt qu’en historique…

En tout cas, merci beaucoup pour le temps accordé à mon problème :slight_smile:

Et de mémoire je t’avais répondu « Point n de la courbe de charge active soutirée »
De toute façon, tu n’as rien a perdre à passer en standard ; le plus vite possible d’ailleurs car tes données antérieures ne seront plus visibles

Bonjour @Lesuperlolo
Effectivement, tu m’avais dit exactement ça ^^

Faut juste que je trouve le temps d’appeler EDF, peut-être pendant ma pause repas à 13h.

Sinon pour les données, tant pis, ça n’est pas si important que ça au final.
Mon ZLinky est surtout là pour avoir la consommation du jour le jour même.
Les infos des jours précédents sont dispo chez EDF et chez HelloWatt, donc ça ira.

Je me souviens que tu m’avais conseillé de faire l’installation de influxDB et de Grafana. Mais les versions disponibles en Add-On sont vieilles (ce qui me bloque un peu). Et je ne sais pas si elles recevront encore des MAJ…
Et si jamais elles passent à la version majeure supérieure, ça va tout casser (expérience vécu avec une stack de monitoring InfluxDB/Grafana pour mon NAS, où j’ai dû bloquer la base de données dans une vieille version).

InfluxDB et Grafana, c’est un plus (que je n’ai pas encore fait), mais le mode standard est presque indispensable !

1 « J'aime »

Je m’en occupe tout à l’heure :innocent:

Hop, demande faite à l’instant.
À priori ce sera effectif lundi 22/01.
À ce moment-là, faudra-t-il que je réappaire le ZLinky ?
Ou bien juste que je refasse la configuration dans HA et Z2M ?

Moi j’ai juste eu à refaire le tableau de bord énergie, pas touché à Z2mqtt.
C’est l’intitulé des champs qui change, mais l’identification de la source reste la même

1 « J'aime »

Ha nickel alors ^^
Merci pour les précisions.

et du coup, tu pourras me guider quand le mode aura changé pour obtenir la puissance instantanée (ou un ersatz le plus proche) ?

1 « J'aime »

Hello par ici :wave:t2:

Voilà, compteur Linky passé en mode standard.
Mais c’est devenu le bazar dans Z2MQTT :sweat_smile:
J’ai ces erreurs :

J’ai supprimé le Zlinky puis ajouté de nouveau, mais c’est pareil.
Je me demande si ces erreurs ne viennent pas du dashboard energie que je n’ai pas encore touché…

Salut,
ta bien configurer les paramètres du Zlinky dans Z2M, au niveau du mode , phase , tarif ?

Edit:
faudrais ouvrir un autre sujet, car ici c’est Zlinky et ZHA.