Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Comptage energie
(23/03/2024, 11:07:44)XeNo a écrit : Même si je ne suis pas @aureOhwo , voici quelques éléments de réponses pour commencer !  Smile
 
Je vois bien sur la droite le sous flux mais comment l'afficher ?
Dans la barre de gauche de Node-Red il y les nœuds avec une rubrique sous-flux, il suffit de double cliquer sur le sous-flux pour l'afficher dans un onglet.

Il manque aussi un type d'élements visiblement à l'import "knxUltimate"
Dans Node-Red, il faut cliquer sur le pictogramme en haut à droite (3 petites barres horizontales), sélectionner "Gérer la palette" puis à partir de l'onglet "installer" , installer "node-red-contrib-knx-ultimate"


 tu parles d'input_number, cela se place à quel endroit ? je n'ai jamais utilisé ce type dans les fichiers yaml
Dans HA, tu vas dans paramètres/Appareils et Services/ Entrée et tu ajoutes des entrées de type "Nombre"

Ensuite tu parles de sensor. Je vois le terme template donc ca c'est ok, je le place dans sensor.yaml
Les sensors "index" apparaitront dans HA dès qu'ils auront été créés dans Node-Red. Il reste dans le yaml à créer ceux des totaux.

Par contre tu parles ensuite d'automation globale ? kasako ?
Le terme actuel dans HA est automatisation à créer depuis Paramètres/Automatisations et scènes soit avec l'assistant, soit en yaml (ou un mixte des deux)
Répondre
(23/03/2024, 12:14:07)Ives a écrit : Merci pour la précision.
Dans le code suivant il n'y a pas de "*" devant et/ou derrière "energie" ; il trouve quelque soit la position du mot "energie" dans le nom de l'entité ?

target:
    entity_id: >
      {{ states.select | selectattr('name','search','energie') |
      map(attribute='entity_id') | list }}

Oui ça marche sans avoir besoin de caractère "joker" 

Tu peux tester dans Outils de développement > Modèle pour voir si ça fonctionne chez toi aussi et adapter si nécessaire Smile
Répondre
@Xeno : je te conseille de lire cet article ou tout est correctement expliqué (hormis la partie Node Red mais avec les réponses d'Ives ca devrait le faire) : https://www.canaletto.fr/post/home-assis...nd-energie
Répondre
(23/03/2024, 14:00:17)aureOhwo a écrit : Tu peux tester dans Outils de développement > Modèle pour voir si ça fonctionne chez toi aussi et adapter si nécessaire Smile

As-tu trouvé une astuce pour simuler une période tarifaire autre que celle en cours afin de faire des tests ?
Répondre
Suite à ta remarque Ives sur le template manquant, je viens de mettre à jour mon message ou j'expliquai mon comptage : https://www.knx-fr.com/showthread.php?ti...0#pid62710

Je me contentais d'attendre un peu pour tester mais si tu es pressé tu dois pouvoir bidouiller un peu ce template en question pour obtenir le tarif que tu veux Smile
Répondre
Merci Ives et aureOhwo !

Avec vos infos j'arrive à mes fins  Smile

J'ai encore 3 interrogations :

@aureOhwo
Je n'arrive pas à interpréter ta condition et ce qu'elle fait réellement, tu pourrais expliquer stp ?

Code :
- service: select.select_option
  data:
    option: |
      {{
        states('sensor.electricite_teleinfo_tarif_en_cours_texte')
      }}
  target:
    entity_id: >
      {{ states.select | selectattr('name','search','energie') |
      map(attribute='entity_id') | list }}


J'arrive à calculer un tarif tempo en simulant tout (j'ai la saisie des tarifs et je récupère le tarif tempo chez edf)
Et mes conso viennent des TE331 donc elles sont exposées sur HA.
Du coup, je ne comprends pas pourquoi il y a du Node Red ?


Et enfin, on est d'accord que sur une journée complète, on peut avoir 2 HC différents + 1 HP ?

Merci d'avance !
Répondre
Salut Xeno,

La condition va récupérer la valeur textuelle du tarif en cours à partir de l'entier du TE331 (ex : 8 -> BLeu HC) et va le sélectionner dans tous les select des utility meters qui contienne le mot energie (j'en ai un sacré paquet chez moi, ca serait rébarbatif à écrire autrement).

Je viens de mettre à jour mes explications sur la page précédente pour avoir quelque chose de clair et au nouveau format de template, je te conseille de revérifier et de modifier chez toi si nécessaire.

Je te confirme que tu peux bien avoir 3 tarifs différents en tempo dans une même journée Smile
Répondre
(24/03/2024, 11:51:13)XeNo a écrit : J'arrive à calculer un tarif tempo en simulant tout (j'ai la saisie des tarifs et je récupère le tarif tempo chez edf)
Et mes conso viennent des TE331 donc elles sont exposées sur HA.
Du coup, je ne comprends pas pourquoi il y a du Node Red ?
Je ne comprends pas comment du récupères les consommations des 6 plages horaires du TE331 sans utiliser NR ?
Pour disposer des 6 index TEMPO, le TE331 doit être configuré en mode 6 octets (énergie et information tarifaire) ; chaque octet étant émis sur le bus à intervalle de 5 secondes, il faut ensuite "trier". 
Le DPT utilisé est le 235.001 dont le format est le suivant :

[Image: nd8l.jpg]


Si tu as trouvé une solution plus simple je suis preneur.
Répondre
Perso j'utilise une automatisation HA déclenchée sur un KNX_event pour "trier" les 6 tarifs dans 6 inputs numbers en fonction de la valeur de l'octet n°2 du DPT.

Dans l'exemple ci dessous, la GA 10/5/1 correspond au comptage d'énergie du chauffage. 
il me semble que cette méthode avait déjà été décrite ici.


Code :
alias: Comptage KNX Chauffage
description: ""
trigger:
 - platform: event
   event_type: knx_event
condition:
 - condition: template
   value_template: "{{ trigger.event.data.destination == '10/5/1' }}"
action:
 - choose:
     - conditions:
         - condition: template
           value_template: "{{trigger.event.data.data[4] == 8 }}"
       sequence:
         - service: input_number.set_value
           target:
             entity_id: input_number.energie_chauffage_hp_bleu
           data:
             value: |-
               {{ (trigger.event.data.data[0] * 2**24) +
                  (trigger.event.data.data[1] * 2**16) +
                  (trigger.event.data.data[2] * 2**8) +
                  (trigger.event.data.data[3] * 2**0) }}    
     - conditions:
         - condition: template
           value_template: "{{trigger.event.data.data[4] == 9 }}"
       sequence:
         - service: input_number.set_value
           target:
             entity_id: input_number.energie_chauffage_hp_blanc
           data:
             value: |-
               {{ (trigger.event.data.data[0] * 2**24) +
                  (trigger.event.data.data[1] * 2**16) +
                  (trigger.event.data.data[2] * 2**8) +
                  (trigger.event.data.data[3] * 2**0) }}    
     - conditions:
         - condition: template
           value_template: "{{trigger.event.data.data[4] == 10 }}"
       sequence:
         - service: input_number.set_value
           target:
             entity_id: input_number.energie_chauffage_hp_rouge
           data:
             value: |-
               {{ (trigger.event.data.data[0] * 2**24) +
                  (trigger.event.data.data[1] * 2**16) +
                  (trigger.event.data.data[2] * 2**8) +
                  (trigger.event.data.data[3] * 2**0) }}    
     - conditions:
         - condition: template
           value_template: "{{trigger.event.data.data[4] == 5 }}"
       sequence:
         - service: input_number.set_value
           target:
             entity_id: input_number.energie_chauffage_hc_bleu
           data:
             value: |-
               {{ (trigger.event.data.data[0] * 2**24) +
                  (trigger.event.data.data[1] * 2**16) +
                  (trigger.event.data.data[2] * 2**8) +
                  (trigger.event.data.data[3] * 2**0) }}    
     - conditions:
         - condition: template
           value_template: "{{trigger.event.data.data[4] == 6 }}"
       sequence:
         - service: input_number.set_value
           target:
             entity_id: input_number.energie_chauffage_hc_blanc
           data:
             value: |-
               {{ (trigger.event.data.data[0] * 2**24) +
                  (trigger.event.data.data[1] * 2**16) +
                  (trigger.event.data.data[2] * 2**8) +
                  (trigger.event.data.data[3] * 2**0) }}    
     - conditions:
         - condition: template
           value_template: "{{trigger.event.data.data[4] == 7 }}"
       sequence:
         - service: input_number.set_value
           target:
             entity_id: input_number.energie_chauffage_hc_rouge
           data:
             value: |-
               {{ (trigger.event.data.data[0] * 2**24) +
                  (trigger.event.data.data[1] * 2**16) +
                  (trigger.event.data.data[2] * 2**8) +
                  (trigger.event.data.data[3] * 2**0) }}    
mode: single
Pour completer, j'utilise un template pour tout additionner et mettre en forme
Code :
# Chauffage
    - name: Compteur Energie Chauffage
      unique_id: ec237bc5-f71b-4b0c-a1c6-523fa6313079
      state: "{{ [ states('input_number.energie_chauffage_hc_bleu'),
                   states('input_number.energie_chauffage_hp_bleu'),
                   states('input_number.energie_chauffage_hc_blanc'),
                   states('input_number.energie_chauffage_hp_blanc'),
                   states('input_number.energie_chauffage_hc_rouge'),
                   states('input_number.energie_chauffage_hp_rouge')] | map('float') | sum | multiply(0.001) }}"
      unit_of_measurement: kWh  
      device_class: energy
      state_class: total_increasing
__________________________________________________________
Full KNX, même la sonnette ! Home Assistant, automate WAGO, DALI-2
Répondre
@Nitro24
C'est très astucieux mais, sauf erreur de ma part, je ne pense pas que cette solution ait été évoquée ici.

Les input_number sont normalement utilisés lorsqu'on souhaite avoir la possibilité de modifier leur valeur via le Dashboard ?


Par ailleurs, j'ai 5 TE331 (ils sont répartis dans 3 tableaux) et une borne de charge de VE. J'ai connecté à la sortie TIC du Linky la borne de charge ainsi que deux des cinq TE331. Si j'en connecte un troisième, la transmission TIC ne fonctionne plus (trop chargée je suppose).

Quelqu'un est-il confronté au même problème et a-t-il trouvé une solution ?
Répondre
[quote pid='62807' dateline='1711377470']
Par ailleurs, j'ai 5 TE331 (ils sont répartis dans 3 tableaux) et une borne de charge de VE. J'ai connecté à la sortie TIC du Linky la borne de charge ainsi que deux des cinq TE331. Si j'en connecte un troisième, la transmission TIC ne fonctionne plus (trop chargée je suppose).

Quelqu'un est-il confronté au même problème et a-t-il trouvé une solution ?
[/quote]

Surprenant, j'ai moi-même 4 récepteurs connectés (1 TE331, 2 TXA230 et un recepteur TIC) à la sortie TIC du linky sans problème.
Il faudrait verifier avec un oscillosope lequel des TE331 ou borne de charge fait s'écrouler le signal.
__________________________________________________________
Full KNX, même la sonnette ! Home Assistant, automate WAGO, DALI-2
Répondre
@Nitro24
C'est ce que je vais faire !

Je viens de faire un copié/collé ton automatisation (et également créé un input_ number. energie_nom_appareil_hp_bleu qui correspond au tarif en cours)  mais elle ne s'exécute pas ; je pointe pourtant la même GA que celle utilisée dans NR avec laquelle je récupère bien les 6 index.

J'ai ajouté ceci dans mon knx.yaml  (l'adresse de la GA du  trigger.event.data.destination)  mais l'automatisation ne s'exécute jamais
Code :
event:
 - address:
   - "9/1/4"
Répondre
Oui, j'ai aussi ce type d'entrée, as tu essayé de redémarrer complétement HA ?

Edit: je pense qu'il te manque une indentation sur la dernière ligne de ton event, voici le mien:

Code :
 event:
   - address:
       - "10/5/*"
__________________________________________________________
Full KNX, même la sonnette ! Home Assistant, automate WAGO, DALI-2
Répondre
Il devait effectivement manquer une indentation car elle s'exécute mais dans la chronologie de l'exécution, j'ai le message suivant (j'ai créé tous les input_number et redémarré HA)

S"topped because a condition failed at 25 mars 2024 à 17:56:55 (runtime: 0.00 seconds)"

Code :
alias: Comptage Pompe Puisard
description: ""
trigger:
  - platform: event
    event_type: knx_event
condition:
  - condition: template
    value_template: "{{ trigger.event.data.destination == '9/2/7' }}"
action:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{trigger.event.data.data[4] == 8 }}"
        sequence:
          - service: input_number.set_value
            target:
              entity_id: input_number.energie_puisard_hp_bleu
            data:
              value: |-
                {{ (trigger.event.data.data[0] * 2**24) +
                   (trigger.event.data.data[1] * 2**16) +
                   (trigger.event.data.data[2] * 2**8) +
                   (trigger.event.data.data[3] * 2**0) }}    
      - conditions:
          - condition: template
            value_template: "{{trigger.event.data.data[4] == 9 }}"
        sequence:
          - service: input_number.set_value
            target:
              entity_id: input_number.energie_puisard_hp_blanc
            data:
              value: |-
                {{ (trigger.event.data.data[0] * 2**24) +
                   (trigger.event.data.data[1] * 2**16) +
                   (trigger.event.data.data[2] * 2**8) +
                   (trigger.event.data.data[3] * 2**0) }}    
      - conditions:
          - condition: template
            value_template: "{{trigger.event.data.data[4] == 10 }}"
        sequence:
          - service: input_number.set_value
            target:
              entity_id: input_number.energie_puisard_hp_rouge
            data:
              value: |-
                {{ (trigger.event.data.data[0] * 2**24) +
                   (trigger.event.data.data[1] * 2**16) +
                   (trigger.event.data.data[2] * 2**8) +
                   (trigger.event.data.data[3] * 2**0) }}    
      - conditions:
          - condition: template
            value_template: "{{trigger.event.data.data[4] == 5 }}"
        sequence:
          - service: input_number.set_value
            target:
              entity_id: input_number.energie_puisard_hc_bleu
            data:
              value: |-
                {{ (trigger.event.data.data[0] * 2**24) +
                   (trigger.event.data.data[1] * 2**16) +
                   (trigger.event.data.data[2] * 2**8) +
                   (trigger.event.data.data[3] * 2**0) }}    
      - conditions:
          - condition: template
            value_template: "{{trigger.event.data.data[4] == 6 }}"
        sequence:
          - service: input_number.set_value
            target:
              entity_id: input_number.energie_puisard_hc_blanc
            data:
              value: |-
                {{ (trigger.event.data.data[0] * 2**24) +
                   (trigger.event.data.data[1] * 2**16) +
                   (trigger.event.data.data[2] * 2**8) +
                   (trigger.event.data.data[3] * 2**0) }}    
      - conditions:
          - condition: template
            value_template: "{{trigger.event.data.data[4] == 7 }}"
        sequence:
          - service: input_number.set_value
            target:
              entity_id: input_number.energie_puisard_hc_rouge
            data:
              value: |-
                {{ (trigger.event.data.data[0] * 2**24) +
                   (trigger.event.data.data[1] * 2**16) +
                   (trigger.event.data.data[2] * 2**8) +
                   (trigger.event.data.data[3] * 2**0) }}    
mode: single
Répondre
dans event tu déclare le GA "9/1/4" et dans l'automatisation trigger.event.data.destination == '9/2/7', normal ?
__________________________________________________________
Full KNX, même la sonnette ! Home Assistant, automate WAGO, DALI-2
Répondre
Oups ! Angry
Comme j'ai déconnecté la TIC de deux TE331 (dont celui qui gère le puisard), pour tester l'automatisation j'ai "piqué" la GA d'un autre appareil et oublié de la changer dans l'event !
Merci car l'automatisation fonctionne...
Répondre
Bonsoir,

@nitro24 :

C'est peut être moi qui avait posté la façon de mettre à jour les index par automatisation mais ça partait en vrille chez moi à chaque redémarrage de HA au niveau de mes utility_meters, depuis que j'ai implémenté l'exemple Node Red fourni par Ives je peux redémarrer autant que je veux sans pb (si vous n'utilisez pas d'utility_meters, alors cette solution reste viable par contre).

@Ives :

Chez moi je n'ai branché qu'un seul TE331 sur le teleinfo linky, et j'ai configuré les autres pour se mettre à jour à partir de l'objet Tarif En cours du premier, ca fonctionne bien sans se prendre la tête : 

   

   
Répondre
Bonsoir,

j'utilise les utility_meters et je n'ai aucun problème, même lors des redémarrages de HA ou du réseau KNX.
__________________________________________________________
Full KNX, même la sonnette ! Home Assistant, automate WAGO, DALI-2
Répondre
(02/02/2024, 23:13:43)aureOhwo a écrit : [Image: a1v7.jpg]

Pourrais-tu poster le code de la carte "Répartitions" et celui de "Conso jour"  ?
Répondre
(27/03/2024, 20:34:53)Ives a écrit :
(02/02/2024, 23:13:43)aureOhwo a écrit : [Image: a1v7.jpg]

Pourrais-tu poster le code de la carte "Répartitions" et celui de "Conso jour"  ?

Je viens d'éditer mon tuto pour ajouter des précisions sur la façon d'obtenir le tarif en cours et le code source de ce dashboard : https://www.knx-fr.com/showthread.php?ti...0#pid62710
Répondre
(25/03/2024, 23:02:51)Nitro24 a écrit : Bonsoir,

j'utilise les utility_meters et je n'ai aucun problème, même lors des redémarrages de HA ou du réseau KNX.

Le code de ton template est légèrement différent de celui que j'utilisais, je testerai quand j'aurais un peu de temps (même si la solution Node Red me donne entièrement satisfaction pour le moment).
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)