Ca donne ca chez moi.
Oui tu récupère un nombre entier sans virgule en Wh, si tu veut tu peu convertir avec des cartes en kWh après.
Alors, voilà ce que j’ai :
C’est pas vraiment fonctionnel ^^ 0 W c’est pas correct
Très sympa ta carte Linky, je serais preneur du code quand j’aurais réussi à faire fonctionner cette dérivée des mes …
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 }}"
Ta le code complet de ma carte sur ce post [ CARTE ] Cartes diverses ( Livebox, NAS, RPI, BLE Proxy...)
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
Ah quand même
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 ?
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
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 !
Je m’en occupe tout à l’heure
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