Affichage graphique des Heures pleines/creuses

Bonjour,
J’aimerais pouvoir afficher mes heures pleines/creuses comme ceci :

https://phpvarious.github.io/documentation/widget/fr_FR/info/string/energie_tarification/

J’ai regardé le travail de @delphiki Intégration Tarif EDF, mais j’ai l’impression que l’intégration ne remonte que les tarifs.

J’ai regardé aussi avec une carte timer-bar-card, mais sans réussir à avoir quelque chose de similaire.

Pourriez-vous m’aider ?

Merci beaucoup
Mathieu

Salut

Regarde ce rendu


Tu peux créer afficher ce que tu veux et ça te fait un sensor exploitable comme trigger

Sympa !!!

15° dans la chambre d’ami !!! On va pas les mettre dehors, mais faut pas qu’ils s’éternisent non plus !!! :rofl:

Hello,
Génial !
En fait je me rends compte qu’avec HA rien n’est impossible, il faut juste réussir à trouver, et ça, c’est franchement pas évident.

Bonjour tu es en tempo? Si oui alors ‘es hc hp sont fixe pour tout le monde, donc y a des intégration qui te donne des sennsor. Dans le n’ cas contraire, vua une automatisation tu peux l’état d’un sensor 4 fois par jour. Puis tu n’a qu’à l’afficher.

Je ne crois pas, j’ai juste les HP/HC.
Mes heures creuses : 1h00-7h00 et 12h00-14h00

C’est qu’ils sont déjà partis. pas la peine de chauffer si c’est pas utilisé, et sinon à quoi sert la domotique ?

Disons que les possibilités sont larges, et en mettant un peu les mains dedans c’est encore plus vrai

si tu est en HP/HC non tempo, comme tout le monde n’a aps les memes tu ne pourras pas les récuperer via une intégration.

tu peux donc creer un template sensor : sensor.linky_tarif_en_cours

puis une automatisation qui fait changer de valeur 2 fois ou 4 fois (selon tes horaires) par jour ce sensor (“Heure Creuse” ou “Heure pleine”)

Demande a chatgpt de t’aider pour cette autumatisation. il faut que tu lui donnes tes heures de bascules.

ou une solution cle en main un peu compliquer qui offfre la possiblité de changer horaires de tes HC/HP mais c’est pas très utile) (j’avais récuperé un blueprint sur un post mais je ne le retrouve plus)

tu crees 4 input time et un imput select

input_datetime:
  nuit_fin:
    name: Nuit Fin
    has_time: true
    has_date: false

  jour_debut:
    name: Jour Début
    has_time: true
    has_date: false

  jour_fin:
    name: Jour Fin
    has_time: true
    has_date: false

  nuit_debut:
    name: Nuit Début
    has_time: true
    has_date: false


input_select:

## etat heures creuse et heures plaine
  etat_tarif_electricite:
    name: Etat tarif électricité
    options:
      - Heure creuse
      - Heure pleine

via un dashboard tu modifier tes 4 heures : exemple :

type: vertical-stack
cards:
  - type: custom:mushroom-template-card
    entity: input_select.etat_tarif_electricite
    primary: |
      {{ states('input_select.etat_tarif_electricite') }}
    secondary: |
      Tarif actuel d'électricité
    icon: |
      {% if is_state('input_select.etat_tarif_electricite', 'Heure pleine') %}
        mdi:weather-sunny
      {% else %}
        mdi:weather-night
      {% endif %}
    tap_action:
      action: more-info
    features_position: bottom
    color: |
      {% if is_state('input_select.etat_tarif_electricite', 'Heure pleine') %}
        amber
      {% else %}
        blue
      {% endif %}
    card_mod:
      style: |
        ha-card {
          margin: 0 !important;
          padding: 4px 8px !important;
        }
  - type: entities
    title: 🕓 Heures de changement
    show_header_toggle: false
    entities:
      - entity: input_datetime.nuit_fin
      - entity: input_datetime.jour_debut
      - entity: input_datetime.jour_fin
      - entity: input_datetime.nuit_debut

et une automatisation qui va changer l’état de ton inmput_select selon l’heure qu’il est

alias: Changement tarif électricité - 4x par jour + synchro démarrage
description: >
  Change l'état de l'input_select 'etat_tarif_electricite' (Heure pleine / Heure
  creuse) à 4 horaires configurables et resynchronise au démarrage de Home
  Assistant.
triggers:
  - at: input_datetime.nuit_fin
    id: t1
    trigger: time
  - at: input_datetime.jour_debut
    id: t2
    trigger: time
  - at: input_datetime.jour_fin
    id: t3
    trigger: time
  - at: input_datetime.nuit_debut
    id: t4
    trigger: time
  - event: start
    id: start
    trigger: homeassistant
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ trigger.id == 't1' }}"
        sequence:
          - target:
              entity_id: input_select.etat_tarif_electricite
            data:
              option: Heure pleine
            action: input_select.select_option
      - conditions:
          - condition: template
            value_template: "{{ trigger.id == 't2' }}"
        sequence:
          - target:
              entity_id: input_select.etat_tarif_electricite
            data:
              option: Heure creuse
            action: input_select.select_option
      - conditions:
          - condition: template
            value_template: "{{ trigger.id == 't3' }}"
        sequence:
          - target:
              entity_id: input_select.etat_tarif_electricite
            data:
              option: Heure pleine
            action: input_select.select_option
      - conditions:
          - condition: template
            value_template: "{{ trigger.id == 't4' }}"
        sequence:
          - target:
              entity_id: input_select.etat_tarif_electricite
            data:
              option: Heure creuse
            action: input_select.select_option
      - conditions:
          - condition: template
            value_template: "{{ trigger.id == 'start' }}"
        sequence:
          - choose:
              - conditions:
                  - condition: template
                    value_template: "{{ now_time < t1 }}"
                sequence:
                  - target:
                      entity_id: input_select.etat_tarif_electricite
                    data:
                      option: Heure creuse
                    action: input_select.select_option
              - conditions:
                  - condition: template
                    value_template: "{{ now_time >= t1 and now_time < t2 }}"
                sequence:
                  - target:
                      entity_id: input_select.etat_tarif_electricite
                    data:
                      option: Heure pleine
                    action: input_select.select_option
              - conditions:
                  - condition: template
                    value_template: "{{ now_time >= t2 and now_time < t3 }}"
                sequence:
                  - target:
                      entity_id: input_select.etat_tarif_electricite
                    data:
                      option: Heure creuse
                    action: input_select.select_option
              - conditions:
                  - condition: template
                    value_template: "{{ now_time >= t3 and now_time < t4 }}"
                sequence:
                  - target:
                      entity_id: input_select.etat_tarif_electricite
                    data:
                      option: Heure pleine
                    action: input_select.select_option
              - conditions:
                  - condition: template
                    value_template: "{{ now_time >= t4 }}"
                sequence:
                  - target:
                      entity_id: input_select.etat_tarif_electricite
                    data:
                      option: Heure creuse
                    action: input_select.select_option
mode: single
variables:
  now_time: "{{ now().strftime('%H:%M:%S') }}"
  t1: "{{ states('input_datetime.nuit_fin') }}"
  t2: "{{ states('input_datetime.jour_debut') }}"
  t3: "{{ states('input_datetime.jour_fin') }}"
  t4: "{{ states('input_datetime.nuit_debut') }}"

puis tu affiches l’état de ton input_number :

type: history-graph
entities:
  - entity: input_select.etat_tarif_electricite
    name: Etet tarif
min_y_axis: 1
fit_y_data: false

C’est pour ça qu’à mon sens schedule-state et la carte qui va avec est beaucoup plus simple. Un seul sensor, quelques lignes de code et c’est fini.
Et puis c’est adaptable aussi avec les nouvelles évolutions Été / Hiver

sensor:
  - platform: schedule_state
    name: tarif_actuel_ttc
    refresh: "00:15:00"
    default_state: "{{ states('sensor.tarif_heures_pleines_ttc') }}"
    allow_wrap: true
    events:
      - start: "02:00"
        end: "07:00"
        months: &months_ete [4, 5, 6, 7, 8, 9, 10]
        state: "{{ states('sensor.tarif_heures_creuses_ttc') }}"

      - start: "11:00"
        end: "14:00"
        months: *months_ete
        state: "{{ states('sensor.tarif_heures_creuses_ttc') }}"

      - start: "23:30"
        end: "07:30"
        months: &months_hiver [11, 12, 1, 2, 3]
        state: "{{ states('sensor.tarif_heures_creuses_ttc') }}"

    extra_attributes:
      unit_of_measurement: "€/kWh"

et la carte

type: custom:schedule-state-card
title: Coût électricité
entities:
  - entity: sensor.tarif_actuel_ttc
    name: Coût Kwh
    icon: mdi:transmission-tower

Je ne dois pas m’y prendre correctement…

sensor.tarif_actuel_ttc

Cette entité n'est pas disponible.

J’ai bien mis dans configuration.yaml, j’avais déjà un sensor, donc je l’ai retirer pour éviter le doublon.

  - platform: schedule_state
    name: tarif_actuel_ttc
    refresh: "00:15:00"
    default_state: "{{ states('sensor.tarif_heures_pleines_ttc') }}"
    allow_wrap: true
    events:
      - start: "02:00"
        end: "07:00"
        months: &months_ete [4, 5, 6, 7, 8, 9, 10]
        state: "{{ states('sensor.tarif_heures_creuses_ttc') }}"

      - start: "11:00"
        end: "14:00"
        months: *months_ete
        state: "{{ states('sensor.tarif_heures_creuses_ttc') }}"

      - start: "23:30"
        end: "07:30"
        months: &months_hiver [11, 12, 1, 2, 3]
        state: "{{ states('sensor.tarif_heures_creuses_ttc') }}"

    extra_attributes:
      unit_of_measurement: "€/kWh"

J’ai bien les 2 sensor.tarif_heures_* qui proviennent de l’ad-on EDF.
J’ai redémarré HA, et attendu 15min.

Pouvez-vous me dire où est mon erreur ?
Mathieu

Doublon avec quoi ?

A priori avec rien…

  1. Donc tu installes d’abord GitHub - aneeshd/schedule_state: Home Assistant (HA) sensor that returns a string based on a defined schedule, enabling further automations
  2. Ensuite tu mets la config yaml pour créer sensor.tarif_actuel_ttc, dans ta section sensor si elle existe déjà
  3. Enfin tu renseignes ma carte. Elle ne fonctionne qu’avec des entités de type schedule_state.

Oui, j’ai bien installé schedule-state-card, ce que je n’avais pas fait c’est installer schedule-state.
Merci beaucoup, et merci pour ta patience.
Ça fonctionne maintenant

1 « J'aime »

Reste à vérifier si tu as bien les même heures / mois quand même

Oui, je vais vérifier.
Je peux être pénible ? C’est mon anniversaire :grin:
Bien que ça soit pas super gênant, est-il possible de supprimer les 3 lignes au dessus du cumulé, cumulé qui seul m’intéresse au final.

ReClique sur le sigma
Joyeux anniversaire :wink:

Yep, j’avais vu, mais je me suis dit, autant ne pas le charger. On va rester ainsi.
Merci pour ton aide et merci :wink:

niveau perf, ça ne change rien dans tous les cas la carte est construite avec les infos du sensor …

1 « J'aime »

Bonsoir,
Après si tu veux un visuel absolument identique à celui-là :


Ca peut se faire sans difficultés avec une custom:button-card

1 « J'aime »

Finalement les différents rendus ne me plaisent pas, désolé.
@btncrd si ça se fait facilement, pourquoi pas.
Sinon, je vais partir sur un affichage de l’heure creuse/pleine actuelle avec prochaine heure creuse dans x temps.
Je suis en train de creuser le truc :blush: