02/04/2024, 10:41:08 (Modification du message : 02/04/2024, 17:31:57 par Ives.)
@Xeno
Tu as bien bossé !
Comment fais-tu pour implémenter cette carte (avec un sous-menu pour les couleurs des jours)
Je suis parti sur Node-Red car je souhaitais récupérer les infos de tarification depuis le Linky via les TE331 (et non avec l'API EDF qui peut être HS de temps en temps) et je n'avais pas trouvé la manière de procéder avec HA.
Actuellement je n'ai pas trouvé la solution de traiter avec Node-Red les compteurs intégrés à mes sorties TOR qui fournissent la consommation sur 4 octets mais sans l'information de la tarification (contrairement aux consos que je mesure avec les tores de mes TE332).
02/04/2024, 18:27:35 (Modification du message : 02/04/2024, 18:31:54 par XeNo.)
Avec un fold-entity-row et un multiple-entity-row. Les 2 sur HACS.
Ici juste la partie "Total" qui affiche le total des conso et du coût et dans le menu déroulant, le détail de chaque tarif (BLEU/BLANC/ROUGE)*(HP/HC) consommations/coûts associés.
Pour ton soucis, je pense qu'il faut mixer la méthode de aureOhwo et celle-ci.
Récupérer sous forme de variable depuis le TIC le tarif en cours (plutôt qu'en REST) en faisant la convertion nombre = couleur+periode puis pousser les valeurs comme je le fais (sans node red).
Ca couvre tous les besoins et surtout tu es capable de dedupliquer tes entités pour simuler un autre tarif (comme tu le demandais initialement).
@Xeno
Merci !
L'affichage des consos HC/HP de chaque couleur permet de voir éventuellement où l'on doit agir...si on peut ! Dans tous les cas, des études (dont celle de l'ADEME en 2015) montrent que l'affichage des consommations influe sur le comportement et engendre des économies jusqu'à 10 %.
En implémentant ta carte pour disposer des consos/coûts pour chaque couleur, j'ai constaté que j'avais bien les consommations jour/semaine/mois/année mais globales et non pour chaque couleur et comme j'ai environ 50 appareils, il y a du boulot !
En cette période avec pléthore de jours rouges et blancs, j'ai consulté les consommations par appareil de mon Dashbord et malheureusement constaté que ça ne fonctionnait plus.
Ne trouvant pas la cause du problème, j'ai ajouté un appareil "Test pompe" avec le minimum (conso kWh jour) pour plus de lisibilité.
Voici le code du package
Code :
###############################################
############### SENSORS ###################
################################################
template:
- sensor:
# Total KWh Index en provenance de node red
- name: Electricite Energie test pompe Index Total Kwh
unique_id: electricite_energie_test_pompe_index_total_kwh-uid
state: >
{{ (states('sensor.pompe_puisard_index_hc_blanc')|float(0) +
states('sensor.pompe_puisard_index_hc_bleu')|float(0) +
states('sensor.pompe_puisard_index_hc_rouge')|float(0) +
states('sensor.pompe_puisard_index_hp_blanc')|float(0) +
states('sensor.pompe_puisard_index_hp_bleu')|float(0) +
states('sensor.pompe_puisard_index_hp_rouge')|float(0)) |round(3) }}
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
availability: >
{{ states('sensor.pompe_puisard_index_hc_blanc')|is_number and
states('sensor.pompe_puisard_index_hc_bleu')|is_number and
states('sensor.pompe_puisard_index_hc_rouge')|is_number and
states('sensor.pompe_puisard_index_hp_blanc')|is_number and
states('sensor.pompe_puisard_index_hp_bleu')|is_number and
states('sensor.pompe_puisard_index_hp_rouge')|is_number }}
# Total kWh Jour
- name: Electricite test pompe Total Kwh Jour
state: >
{{ (states('sensor.electricite_test_pompe_energie_jour_bleu_hp')|float(0) +
states('sensor.electricite_test_pompe_energie_jour_bleu_hc')|float(0) +
states('sensor.electricite_test_pompe_energie_jour_blanc_hp')|float(0) +
states('sensor.electricite_test_pompe_energie_jour_blanc_hc')|float(0) +
states('sensor.electricite_test_pompe_energie_jour_rouge_hp')|float(0) +
states('sensor.electricite_test_pompe_energie_jour_rouge_hc')|float(0))|round(2) }}
unit_of_measurement: "kWh"
################################################
############### UTILITY METERS #################
################################################
utility_meter:
electricite_test_pompe_energie_jour:
source: sensor.electricite_energie_test_pompe_index_total_kwh
name: Electricite test_pompe Energie Jour
cycle: daily
tariffs:
- Bleu HP
- Bleu HC
- Blanc HP
- Blanc HC
- Rouge HP
- Rouge HC
Actuellement, la consommation de la pompe HP Jour BLANC est comptabilisée dans HP Jour BLEU.
L’index « sensor.pompe_puisard_index_hp_blanc » évolue bien mais « sensor.electricite_test pompe_energie_jour_blanc_hp » n’évolue pas
Non tout va bien pour la remontée de l'index de la conso de pompe depuis NR (j'ai posté une copie d'écran) ; ce qui ne va pas c'est que la consommation de la pompe est toujours imputée dans HA au JOUR Bleu (idem la semaine dernière avec les jours Rouges).
20/12/2024, 19:48:11 (Modification du message : 20/12/2024, 19:53:44 par XeNo.)
(20/12/2024, 19:41:15)Ives a écrit : Non tout va bien pour la remontée de l'index de la conso de pompe depuis NR (j'ai posté une copie d'écran) ; ce qui ne va pas c'est que la consommation de la pompe est toujours imputée dans HA au JOUR Bleu (idem la semaine dernière avec les jours Rouges).
Bah c'est que ca bascule pas avec ton script alors.
Moi j'ai pas cette méthode, je bascule explicitement
Ca fonctionne bien, j'ai du corriger au début du mois, certains bascules faisaient des blagues mais j'ai compris que RTE à 6h pile, n'a pas encore la couleur en "couleur actuelle". La plupart du temps c'est dans "couleur du lendemain" encore.
D'ailleurs, avant 7h on connait déjà la couleur du lendemain.. surement un bug
20/12/2024, 20:07:41 (Modification du message : 20/12/2024, 20:12:16 par Ives.)
(20/12/2024, 19:20:17)XeNo a écrit : Il se base sur electricite_energie_test_pompe_index_total_kwh qui lui est calculé avec la somme de chaque couleur/HP-HC donc ton sensor.
Donc comment se passe la transmission de la valeur adéquate si tu fais la somme ? Ton index se reinitialise chaque jour ?
Pour la consommation du jour, c'est le daily de l'utility meter qui se charge de faire la différence entre la valeur de l'index en fin et début de journée.
Dans une journée (24 H) on peut avoir plusieurs tarifs puisque le changement se fait à 6 h donc je fais la somme..
Ce code fonctionne depuis au moins six mois (dans la consommation de l'année de la pompe, j'ai bien des valeurs pour les 6 périodes tarifaires) et je ne vois pas ce que j'aurais pu supprimer par erreur.
Perso cette commande je la comprends pas donc je ne l'utilise pas :
Moi je bascule explicitement.
Après ce qui peut expliquer ton soucis c'est que la 2024.12 a basculé en Python 3.13 au lieu de 2.7
Vu que la ligne de commande est pas trop compréhensible, c'est probable que cela vienne de là
20/12/2024, 20:33:58 (Modification du message : 20/12/2024, 20:37:57 par Ives.)
Je viens de tester à l'instant le modèle et c'est Blanc HP qui est retourné donc si Python faisait des siennes, je n'aurais pas la bonne valeur.
L'avantage de récupérer l'info tarifaire sur la TIC du Linky c'est que si un jour les horaires HP/HC sont modifiées, il n'y aura rien à faire (de plus non tributaire de l'appli RTE et du Cloud)
20/12/2024, 20:40:59 (Modification du message : 20/12/2024, 20:47:26 par XeNo.)
L'option "state" je n'ai pas de doute.
Ce qui foire là clairement c'est la ligne suivante :
{{ states.select | selectattr('name','search','energie') | map(attribute='entity_id') | list }}
Sinon ca basculerait bien.
T'as vérifié si ca basculait bien avant la 2024.12 ?
Citation :L'avantage de récupérer l'info tarifaire sur la TIC du Linky c'est que si un jour les horaires HP/HC sont modifiées, il n'y aura rien à faire (de plus non tributaire de l'appli RTE et du Cloud)
Ca c'est sur mais vu que la conso est uniquement pour HA, ca me dérange pas de simplifier l'opération de récuperation d'energie avec les variables knx sans tarif intégré.
Après utiliser la TIC du TE n'empeche pas de faire des scripts explicites, si tu en test un tu verras ca marchera.
(20/12/2024, 20:40:59)XeNo a écrit : L'option "state" je n'ai pas de doute.
Ce qui foire là clairement c'est la ligne suivante :
{{ states.select | selectattr('name','search','energie') | map(attribute='entity_id') | list }}
Sinon ca basculerait bien.
T'as vérifié si ca basculait bien avant la 2024.12 ?
Je ne sais pas exactement à quel moment ça n'a plus fonctionné ; c'est suite à la semaine de 4 jours rouges que j'ai consulté mes consommations.
Si @aureOhwo passe par ici il pourra confirmé ou non ce problème lié à la mise à jour de Python mais c'est certain que [] dans le résultat de list ne semble pas normal.
Pourrais tu poster ta dernière version de script ?
20/12/2024, 21:11:52 (Modification du message : 22/12/2024, 11:06:25 par XeNo.)
(20/12/2024, 20:56:14)Ives a écrit : Pourrais tu poster ta dernière version de script ?
Moi j'ai ça, mais tu viens de me donner l'idée de me baser sur le TIC uniquement.
Actuellement il faut autant de script que de tarifs (donc 6 ici) parce que je n'arrive pas à passer une variable de la condition à l'action..
Si tu y arrives alors c'est reductible en 1 seul script qui s'executera à chaque changement de TIC du TE (0 à 10) et tous les cas seraient pris automatiquement.
21/12/2024, 09:36:38 (Modification du message : 21/12/2024, 09:37:35 par Ives.)
(20/12/2024, 21:11:52)XeNo a écrit : Moi j'ai ça, mais tu viens de me donner l'idée de me baser sur le TIC uniquement.
Actuellement il faut autant de script que de tarifs (donc 6 ici) parce que je n'arrive pas à passer une variable de la condition à l'action..
Si tu y arrives alors c'est reductible en 1 seul script qui s'executera à chaque changement de TIC du TE (0 à 10) et tous les cas seraient pris automatiquement.
Je pense qu'il est préférable de se baser sur le TIC ; si tu arrives à un script (ou 6) qui fonctionne, n'hésite pas à poster !
Dès que j'ai un peu de temps je vais regarder de mon côté mais pourrais-tu mettre une version formatée de ton script actuel avec les indentations ?
(21/12/2024, 09:36:38)Ives a écrit : Je pense qu'il est préférable de se baser sur le TIC ; si tu arrives à un script (ou 6) qui fonctionne, n'hésite pas à poster !
Dès que j'ai un peu de temps je vais regarder de mon côté mais pourrais-tu mettre une version formatée de ton script actuel avec les indentations ?
J'ai modifié la balise en code, tu as les indentations maintenant.
Sinon pour la partie TIC, ceci devrait fonctionner, j'attends la prochaine bascule pour vérifier :
Code :
triggers:
- trigger: state
entity_id:
- sensor.tarif_en_cours
variables:
tariff: Bleu HC
conditions:
- condition: state
entity_id: sensor.tarif_en_cours
state: "5"
En complément, je trouve ça bizarre que ça ne fonctionne pas ma méthode avec les variables.
Voici le code, relativement simple :
Code :
alias: Tempo test variable tic
description: ""
triggers:
- trigger: state
entity_id:
- sensor.tarif_en_cours
conditions: []
actions:
- choose:
- conditions:
- condition: state
entity_id: sensor.tarif_en_cours
state: "5"
sequence:
- variables:
tariff: Bleu HC
- conditions:
- condition: state
entity_id: sensor.tarif_en_cours
state: "6"
sequence:
- variables:
tariff: Blanc HC
- conditions:
- condition: state
entity_id: sensor.tarif_en_cours
state: "7"
sequence:
- variables:
tariff: Rouge HC
- conditions:
- condition: state
entity_id: sensor.tarif_en_cours
state: "8"
sequence:
- variables:
tariff: Bleu HP
- conditions:
- condition: state
entity_id: sensor.tarif_en_cours
state: "9"
sequence:
- variables:
tariff: Blanc HP
- conditions:
- condition: state
entity_id: sensor.tarif_en_cours
state: "10"
sequence:
- variables:
tariff: Rouge HP
- action: input_text.set_value
target:
entity_id: input_text.tarif_actuel_tempo_texte_test_tic_1
data:
value: "{{ tariff }}"
mode: single
En gros, cela met à jour un texte avec la valeur de la variable setée au préalable.
Sauf que ça ne fonctionne pas, malgré la variable correctement mise à jour (historique d'exécution)
Par contre si la variable est setée dans la section trigger, là ça fonctionne (c'est l'automation présentée plus haut)
Ca n'a pas de sens, je ne comprends vraiment pas pourquoi dans ce cas présent elle n'est pas reprise par la value : "{{ tariff }}".
Si quelqu'un arrive à faire fonctionner ça, on est capable de faire un script qui gère tous les états tarifaires (de 0 à 10) et il n'y aura rien d'autre à faire !
J'ai créé des Entrées "Utility meter" avec les 6 options de tarification Tempo ; les six compteurs d'un même appareil sont créés en une seule fois avec en plus "select.nom" qui permet, à partir d'un unique index de conso de l'appareil de switcher entre les 6 compteurs.
Depuis l'outil d'états le switch entre les compteurs fonctionne bien mais dans l'automatisation je rencontre un problème avec le select_options (les options BLEU HP, etc. sont bien celles renseignées lors de la création de l'utility meter)
L'éventuelle résolution de ce point ne garanti pas un fonctionnement correct car je rencontrerais très probablement le même problème que toi.
Pour mes appareils dont la mesure de consommation est effectuée avec les tores des TE332, je dispose d'un index par tarification (avec NR) et il n'y a rien à switcher. J'ai le problème pour les autres (ceux dont la mesure est effectuée parles sorties TOR avec un seul index).
Citation :J'ai créé des Entrées "Utility meter" avec les 6 options de tarification Tempo ; les six compteurs d'un même appareil sont créés en une seule fois avec en plus "select.nom" qui permet, à partir d'un unique index de conso de l'appareil de switcher entre les 6 compteurs.
23/12/2024, 22:57:42 (Modification du message : 23/12/2024, 23:05:20 par Ives.)
L'intérêt est très limité car actuellement je n'arrive pas à switcher avec une automatisation
1) Depuis Paramètres/Appareils et services/ Entrées, créer une entrée de type "Compteur de services publics"
2) Dans "Tarifs pris en charge, il faut écrire le texte entre guillemets puis valider ("BLEU HP" par exemple, etc.)
3) Après validation, on peut voir les six compteurs créés ainsi que le select
Et maintenant je te laisse faire l'automatisation du select à partir du TIC !