Sensor coût pour energie meter

C’est pas le bon format pour la partie data

alias: Mise à jour mémoire tempo a 6h
description: Mise à jour mémoire tempo a 6h
trigger:
  - platform: time
    at: "06:00:05"
condition: []
action:
  - service: input_select.select_option
    data:
      option: "{{states('sensor.tempo_aujourd_hui')}}"
    target:
      entity_id: input_select.tempo_status_memoire
mode: single

Je me suis amusé à utiliser multiscrape pour limiter le nombre d’appels

# TEMPO EDF
- name: rte_jour
  resource: https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant={{now().strftime("%Y-%m-%d")}}
  scan_interval: 3600
  headers:
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Content-Type: application/json
    User-Agent: Wget/1.20.3 (linux-gnu)
  sensor:
    - unique_id: rte_jour
      value_template: "{{ value_json.couleurJourJ}}"
      attributes:
        - name: demain
          value_template: "{{ value_json.couleurJourJ1 }}"

- name: rte_planning
  resource: https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays?TypeAlerte=TEMPO
  scan_interval: 3600
  headers:
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Content-Type: application/json
    User-Agent: Wget/1.20.3 (linux-gnu)
  sensor:
    - unique_id: rte_planning
      value_template: "{{ value_json.PARAM_NB_J_BLEU+value_json.PARAM_NB_J_BLANC+ value_json.PARAM_NB_J_ROUGE }}"
      attributes:
        - name: bleu
          value_template: "{{ value_json.PARAM_NB_J_BLEU }}"
        - name: blanc
          value_template: "{{ value_json.PARAM_NB_J_BLANC }}"
        - name: rouge
          value_template: "{{ value_json.PARAM_NB_J_ROUGE }}"

Ce qui donne

Et un petite carte mushroom (je suis en HP/HC)
image

Hello @Pulpy-Luke

TOP, super travail

Merci
Tiens en regardant, je me pose une question
Hier, journée blanche et aujourd’hui aussi …
Pourtant c’est le compteur bleu qui se décrémente …
image
:face_with_peeking_eye:

Alors le compteur se décompte quand il annonce la couleur du jour suivant (le matin après 10h)!
donc aujourd’hui il ont annoncé bleu pour demain du coup c’est un bleu en moins
Si demain a 10h il annonce rouge tu verras un -1 sur le compteur rouge

@Pulpy-Luke je pourrais abuser de ton savoir :slight_smile: peux tu regarder ce poste?

Salut.
J’ai pas tellement joué avec ces nouvelles entités. Le dashboard énergie est en principe capable de gérer les totaux journaliers (quitte à faire un sensor en plus ?) … A l’occasion je relirai un peu la doc

Pour ceux que ça intéresse y a une très jolie card-mod ici : Get EDF Tempo information - #56 by PatriceL - Configuration - Home Assistant Community

1 « J'aime »

Dis moi @Pulpy-Luke , quand j’intégre le code ci-dessus dans mon configuration.yaml j’ai une erreur:
Invalid config for [rest]: [name] is an invalid option for [rest]. Check: rest->rest->0->name. (See /config/configuration.yaml, line 59).

J’ai fais ça mais ça doit pas être bon:
configuration.yaml:

...
rest: !include rest.yaml
...

rest.yaml (ton code):

# TEMPO EDF
- name: rte_jour
  resource: https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant={{now().strftime("%Y-%m-%d")}}
  scan_interval: 3600
  headers:
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Content-Type: application/json
    User-Agent: Wget/1.20.3 (linux-gnu)
  sensor:
    - unique_id: rte_jour
      value_template: "{{ value_json.couleurJourJ}}"
      attributes:
        - name: demain
          value_template: "{{ value_json.couleurJourJ1 }}"
...

Dans l’intégration rest en effet, il n’y a pas d’attribut name: RESTful - Home Assistant

Salut.
Il doit te manquer multiscraping (c’est pas du rest), à installer depuis hacs.
Ensuite même principe que pour rest (include dans le configuration.yaml avec le bon nom)
J’ai pas ma configuration sous la main, je complète le message en rentrant si besoin

Ah ok. C’est pas du rest mais il faut installer multiscrape depuis HACS en effet.
Ensuite la conf est :
configuration.yaml:

...
multiscrape: !include rest.yaml
...

rest.yaml (comme au-dessus).

Merci

Oui ça doit être très proche de ça.
J’appellerai pas mon fichier rest.yaml mais c’est tout

1 « J'aime »

Bonjour,
Tout nouveau en utilisation d’HA, tout nouveau aussi dans le codage, cette discussion est du chinois pour moi et pourtant elle m’intéresse beaucoup, étant moi aussi détenteur d’un abonnement tempo.
Quelqu’un a-t-il l’envie de réaliser un tuto pas à pas pour un newbie afin de voir s’afficher la couleur du jour et du lendemain dans HA et d’estimer sa facture ?
Pour l’instant je peux monitorer ma conso grâce à emporia VUE et estimer le tarif des jours bleus uniquement grâce à des utility meter HP HC et le tarif du bleu.
Mais j’aimerai arriver à avoir le détail bleu / blanc rouge HP/HC.
Vu toutes les demandes sur les forums, je pense qu’à vous deux vous aideriez beaucoup de personnes :slight_smile:

Hello @Marc67230

J’avais trouvé dans ce forum un composant sympa qui affiche ça :
Capture d’écran 2023-01-15 à 22.27.46

Pour l’avoir, il faut 2 choses :

  1. du scrapping pour aller chercher les valeurs sur le site RTE,
  2. une tuile Lovelace à ajouter sur le dashboard.

Le scrapping se fait en ajoutant l’intégration multiscrape depuis HACS :
Capture d’écran 2023-01-15 à 22.30.34
puis en ajoutant le code suivant dans ton configuration.yaml :

multiscrape: !include rest.yaml

et le fichier suivant rest.yaml suivant:

# TEMPO EDF
- name: rte_jour
  resource: https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant={{now().strftime("%Y-%m-%d")}}
  scan_interval: 3600
  headers:
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Content-Type: application/json
    User-Agent: Wget/1.20.3 (linux-gnu)
  sensor:
    - unique_id: rte_tempo_jour
      name: Tempo couleur jour
      icon: mdi:flash
      value_template: "{{ value_json.couleurJourJ | regex_replace(find='^TEMPO_', replace='') }}"
    - unique_id: rte_tempo_demain
      name: Tempo couleur demain
      icon: mdi:flash-outline
      value_template: "{{ value_json.couleurJourJ1 | regex_replace(find='^TEMPO_', replace='') }}"

- name: rte_tempo_planning
  resource: https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays?TypeAlerte=TEMPO
  scan_interval: 3600
  headers:
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Content-Type: application/json
    User-Agent: Wget/1.20.3 (linux-gnu)
  sensor:
    - unique_id: rte_tempo_planning_bleu
      name: Tempo jours bleu restant
      icon: mdi:flash-outline
      value_template: "{{ value_json.PARAM_NB_J_BLEU }}"
    - unique_id: rte_tempo_planning_blanc
      name: Tempo jours blanc restant
      icon: mdi:flash
      value_template: "{{ value_json.PARAM_NB_J_BLANC }}"
    - unique_id: rte_tempo_planning_rouge
      name: Tempo jours rouge restant
      icon: mdi:flash-alert
      value_template: "{{ value_json.PARAM_NB_J_ROUGE }}"

Après redémarrage de HA tu dois avoir 5 nouvelles entités nommées: rte_tempo_jour, rte_tempo_demain, rte_tempo_planning_bleu, rte_tempo_planning_blanc, rte_tempo_planning_rouge

Pour la tuile Lovelace, il faut éditer le dashboard et ajouter une tuile vertical-stack avec le code suivant:

type: vertical-stack
cards:
  - show_name: true
    show_icon: false
    show_state: true
    type: glance
    entities:
      - entity: sensor.rte_tempo_jour
        card_mod:
          style: |
            :host .name {
              font-weight: normal;
              font-size: 80%;
               }
            :host {
              color: black;font-weight: bold;
              border-style: solid;
              border-radius: 15px;
              background: {% if is_state('sensor.rte_tempo_jour', 'ROUGE') %} 
                            red 
                          {% endif %}
                          {% if is_state('sensor.rte_tempo_jour', 'BLANC') %} 
                            white
                          {% endif %}
                          {% if is_state('sensor.rte_tempo_jour', 'BLEU') %} 
                            DodgerBlue
                          {% endif %}
                          {% if is_state('sensor.rte_tempo_jour', 'NON_DEFINI') %} 
                            lightgrey
                          {% endif %};
               color: {% if is_state('sensor.rte_tempo_jour', 'BLANC') %} 
                       black 
                      {% else %}
                       white 
                      {% endif %};
              }
      - entity: sensor.rte_tempo_demain
        card_mod:
          style: |
            :host .name {
              font-weight: normal;
              font-size: 80%;
               }
            :host {
              color: black;font-weight: bold;
              border-style: double;
              border-radius: 15px;
              background: {% if is_state('sensor.rte_tempo_demain', 'ROUGE') %} 
                            red 
                          {% endif %}
                          {% if is_state('sensor.rte_tempo_demain', 'BLANC') %} 
                            white
                          {% endif %}
                          {% if is_state('sensor.rte_tempo_demain', 'BLEU') %} 
                            DodgerBlue
                          {% endif %}
                          {% if is_state('sensor.rte_tempo_demain', 'NON_DEFINI') %} 
                            lightgrey
                          {% endif %};
               color: {% if is_state('sensor.rte_tempo_demain', 'BLANC') %} 
                       black 
                      {% else %}
                       white 
                      {% endif %};
              }
    title: Couleur Tempo
  - type: custom:mushroom-chips-card
    chips:
      - type: entity
        entity: sensor.rte_tempo_planning_bleu
        icon_color: blue
        tap_action:
          action: more-info
        name: Jour bleu
        icon: mdi:flash-off-outline
      - type: entity
        entity: sensor.rte_tempo_planning_blanc
        icon: mdi:flash
        icon_color: white
        tap_action:
          action: more-info
      - type: entity
        entity: sensor.rte_tempo_planning_rouge
        icon: mdi:flash-alert
        icon_color: red
        tap_action:
          action: more-info

J’espère que ça aide.

2 « J'aime »

Et si on veut crée deux badges avec le tarif du jour et du lendemain via ce multiscrape :

    badges:
      - entity: sensor.edf_tempo_current_cost
        name: Aujourd'hui
        style: |
          :host {
            {% set state = states('sensor.edf_tempo_today') %}
            {% if state == 'BLEU' %}
              --label-badge-red: blue;
            {% elif state == 'BLANC' %}
              --label-badge-red: white;
            {% elif state == 'ROUGE' %}
              --label-badge-red: red;
            {% else %}
              --label-badge-red: grey;
            {% endif %}
          }
      - entity: sensor.edf_tempo_tomorrow_cost
        name: Demain
        style: |
          :host {
            {% set state = states('sensor.edf_tempo_tomorrow') %}
            {% if state == 'BLEU' %}
              --label-badge-red: blue;
            {% elif state == 'BLANC' %}
              --label-badge-red: white;
            {% elif state == 'ROUGE' %}
              --label-badge-red: red;
            {% else %}
              --label-badge-red: grey;
            {% endif %}
          }
1 « J'aime »

Je confirme que ca fonctionne mais c’est pas optimal :

  • Le tarif change à 6h et a 22h, avec ce scan_interval, c’est mis a jour dans l’heure mais pas a 22h pile (genre 22h45)
  • ca crée 24 requetes sur le site EDF par jour (on pourrait en faire que 3 : 6h, 22h et vers 11-12h pour avoir le tarif du lendemain.

J’ai essayé d’utiliser une automatisation comme ça pour forcer la mise a jour de l’un des sensor :

  - service: homeassistant.update_entity
    data: {}
    target:
      entity_id: sensor.edf_tempo_tomorrow

Mais ca ne fonctionne pas,

C’est pas idéalement mais pour l’instant je fait ça (et j’ai augmenté le scan_interval du rest pour mettre a jour ces sensor rest que via l’automatisation ) :

- id: '1673048513833'
  alias: Update EDF Tempo Sensor
  description: ''
  trigger:
  - platform: time
    at: 06:01:00
  - platform: time
    at: '22:01:00'
  - platform: time
    at: '12:00:00'
  condition: []
  action:
  - service: rest.reload
    data: {}

Salut

1 par heure (et 1 seule parce que multiscrape c’est pas forcément énorme)

Attention à comment ça se comporte, si par hasard ton HA reboote sur ces créneaux, quid de ton sensor ?

Si j’ai bien compris l’info du lendemain est dispo le soir à 22H mais c’est la bascule d’une couleur à l’autre qui est effective le matin à 6H. Pour jouer j’avais fait un deuxième sensor qui bascule bien à 6h du matin

L’info du lendemain est dispo vers 11/12h,

  • c’est le sensor rte_tempo_jour ( moi je l’ai appelé edf_tempo_today ) qui est mis a jour toutes les heures mais pas à 6h00 (et 22h ) précise mais dans l’heure d’après.

Sinon, en plus de rte_tempo_jour & rte_tempo_demain, mon sensor rest rte_jour crée aussi ces deux autres sensors :

  - name: "edf_tempo_tomorrow_cost"
    device_class: monetary
    unit_of_measurement: "€/kWh"
    value_template: >
      {% if (value_json.couleurJourJ1 == 'TEMPO_BLEU') %}
        0.1272
      {% elif (value_json.couleurJourJ1 == 'TEMPO_BLANC') %}
        0.1653
      {% elif (value_json.couleurJourJ1 == 'TEMPO_ROUGE') %}
        0.5486
      {% else %}
        0
      {% endif %}
  - name: "edf_tempo_current_cost"
    device_class: monetary
    unit_of_measurement: "€/kWh"
    value_template: >
      {% if (value_json.couleurJourJ == 'TEMPO_BLEU') %}
        {% if (now().hour >= 22 or now().hour < 6) %}
          0.0862
        {% else %}
          0.1272
        {% endif %}
      {% elif (value_json.couleurJourJ == 'TEMPO_BLANC') %}
        {% if (now().hour >= 22 or now().hour < 6) %}
          0.1112
        {% else %}
          0.1653
        {% endif %}
      {% elif (value_json.couleurJourJ == 'TEMPO_ROUGE') %}
        {% if (now().hour >= 22 or now().hour < 6) %}
          0.1222
        {% else %}
          0.5486
        {% endif %}
      {% else %}
        0
      {% endif %}

Merci, ça fonctionne pour moi (aussi débutant…) ! :+1:

Juste un petit soucis sur le contour de la couleur du jour mais sans importance, pour le moment le principal c’est de pouvoir récupérer les infos !
Capture d’écran 2023-02-18 110207

@Jean-Marc_Collin tu ne vas pas chercher l’info sur le site RTE mais EDF. Perso, plutôt que ça maintenant je passe par cette extension:

Ca passe par l’API RTE et ça permet d’avoir l’info dès 6h30 le matin.
image

1 « J'aime »