Intégration API Ecowatt

Bonsoir,
Dans le sujet mais généraliste quand même :

J’ai repris la carte de @Christof, merci, j’ai modifié un peu :wink:

type: horizontal-stack
cards:
  - type: custom:button-card
    color_type: card
    entity: sensor.ecowatt_level_today
    name: RTE AUJOURD'HUI
    state:
      - value: Situation normale
        color: green
        icon: mdi:transmission-tower
      - value: Risques de coupures d'électricité
        color: orange
        icon: mdi:transmission-tower-off
      - value: Coupures d'électricité programmées
        color: red
        icon: mdi:transmission-tower-off
    styles:
      card:
        - font-size: 15px
        - font-weight: bold
  - type: custom:button-card
    color_type: card
    entity: sensor.ecowatt_level_tomorrow_and_12_hours
    name: RTE DEMAIN
    state:
      - value: Situation normale
        color: green
        icon: mdi:transmission-tower
      - value: Risques de coupures d'électricité
        color: orange
        icon: mdi:transmission-tower-off
      - value: Coupures d'électricité programmées
        color: red
        icon: mdi:transmission-tower-off
    styles:
      card:
        - font-size: 15px
        - font-weight: bold
  - type: custom:button-card
    color_type: card
    entity: sensor.ecowatt_level_tomorrow_and_12_hours
    name: RTE 2 JOURS
    state:
      - value: Situation normale
        color: green
        icon: mdi:transmission-tower
      - value: Risques de coupures d'électricité
        color: orange
        icon: mdi:transmission-tower-off
      - value: Coupures d'électricité programmées
        color: red
        icon: mdi:transmission-tower-off
    styles:
      card:
        - font-size: 15px
        - font-weight: bold
title: Infos EcoWatt 3 couleurs

J’aurai préféré me baser sur le level_code que sur le libellé mais je n’ai pas réussi à intégrer le code de @WarC0zes !

          icon:
            - color: >
                [[[ if (entity.attributes.level_code == "1") return 'green';
                if (entity.attributes.level_code == "2") return 'orange';
                else return 'red'; ]]]

Intégrer si mais non prit en compte, icon blanc.

Merci à vous
Bob

Bonsoir,
Faut mettre le code dans la section styles:

        styles:
          card:
            - '--mdc-ripple-color': rgb(68, 115, 158)
            - '--mdc-ripple-press-opacity': 0.5
          name:
            - font-size: 0.8em
          state:
            - font-size: 0.7em
          icon:
            - color: >
                [[[ if (entity.attributes.level_code == "1") return 'green'; if
                (entity.attributes.level_code == "2") return 'orange'; else
                return 'red'; ]]]

Example avec ton code:

type: horizontal-stack
cards:
  - type: custom:button-card
    color_type: card
    entity: sensor.ecowatt_level_today
    name: RTE AUJOURD'HUI
    styles:
      card:
        - font-size: 15px
        - font-weight: bold
      icon:
        - color: >
            [[[ if (entity.attributes.level_code == "1") return 'green'; if
            (entity.attributes.level_code == "2") return 'orange'; else
            return 'red'; ]]]

ecowatt code

mon code:

  - type: horizontal-stack
    cards:
      - type: custom:button-card
        entity: sensor.ecowatt_level_now
        name: Maintenant
        icon: mdi:transmission-tower
        aspect_ratio: 1.5/1
        show_state: true
        show_icon: true
        size: 30%
        styles:
          card:
            - '--mdc-ripple-color': rgb(68, 115, 158)
            - '--mdc-ripple-press-opacity': 0.5
          name:
            - font-size: 0.8em
          state:
            - font-size: 0.7em
          icon:
            - color: >
                [[[ if (entity.attributes.level_code == "1") return 'green'; if
                (entity.attributes.level_code == "2") return 'orange'; else
                return 'red'; ]]]

Bonjour,

Merci beaucoup @WarC0zes,

image

J’ai repris les couleurs de mon thème de base.

styles:
  card:
    - font-size: 14px
    - font-weight: normal
    - color: white
    - background-color: '#202020'
  icon:
    - color: >
        [[[ if (entity.attributes.level_code == "1") return '#44739e'; if
        (entity.attributes.level_code == "2") return '#ff9800'; else return
        'red'; ]]]

Bob

1 « J'aime »

Salut,

Merci @WarC0zes pour l’inspiration, j’ai « tuné » un peu pour coller au reste de mon thème :

ecowatt

template button-card
  ecowatt:
    show_state: false
    icon: >
      [[[ if (entity.state == "Situation normale") return 'mdi:transmission-tower';
          else return 'mdi:transmission-tower-off';
      ]]]
    show_icon: true
    layout: icon_name
    size: 25px
    styles:
      card:
        - '--mdc-ripple-color': rgb(68, 115, 158)
        - '--mdc-ripple-press-opacity': 0.5
        - border: |
            [[[
              if (entity.state == 'Situation normale') return '2px solid aqua';
              else return '2px solid coral';
            ]]]
        - height: 35px
      icon:
        - color: |
            [[[
              if (entity.state == 'Situation normale') return 'white';
              else return 'coral';
            ]]]
      name:
        - font-size: 0.85em
        - justify-self: start
      state:
        - font-size: 0.7em
button-card
type: horizontal-stack
cards:
  - type: custom:button-card
    entity: sensor.ecowatt_level_now
    name: Now
    template: ecowatt
  - type: custom:button-card
    entity: sensor.ecowatt_level_today
    name: Today
    template: ecowatt
  - type: custom:button-card
    entity: sensor.ecowatt_level_tomorrow
    name: N +1d
    template: ecowatt
  - type: custom:button-card
    entity: sensor.ecowatt_level_in_2_days
    name: N +2d
    template: ecowatt

Au final c’est intégré dans mon onglet « energy » :

1 « J'aime »

Nikel @Herbs, je voulais faire les icones mais j’ai pas le temps. Du coups je te pique le code. Merci :slight_smile:

1 « J'aime »

13 messages ont été scindés en un nouveau sujet : Carte Energie/ Ecowatt / HPHC

Hello

une erreur qui vient d’apparaitre

Logger: homeassistant
Source: custom_components/rte_ecowatt/__init__.py:396
Integration: My EcoWatt by RTE (documentation, issues)
First occurred: 00:08:33 (1 occurrences)
Last logged: 00:08:33

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/rte_ecowatt/__init__.py", line 376, in _find_ecowatt_level
    ecowatt_data = next(
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 151, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 110, in async_update_listeners
    update_callback()
  File "/config/custom_components/rte_ecowatt/__init__.py", line 265, in _handle_coordinator_update
    ecowatt_level = self._find_ecowatt_level()
  File "/config/custom_components/rte_ecowatt/__init__.py", line 396, in _find_ecowatt_level
    raise RuntimeError(
RuntimeError: Unable to find ecowatt level for 2022-11-03

Tu es en version 2022.11.0b3 ?

non

Cela semble dire que les données du 03/11 ne sont pas trouvé dans la réponse fournie par l’API RTE. Quels sont les sensors configurés ?

Bonjour, peux tu ouvrir un issue sur GitHub avec quelques détails? Par ex si l’erreur se reproduit en continu ou après un redémarrage

@Herbs @cob94440 ne faudrait-il pas créer un nouveau sujet pour votre discussion? Ca sort un peu du sujet original :wink:

3 « J'aime »

Voilà c’est fait :wink:

1 « J'aime »

Merci @Pulpy-Luke :wink: !!!

Un message a été fusionné à un sujet existant : Carte Energie/ Ecowatt / HPHC

Bonjour. C’est génial d’avoir cette intégration !
Petit bémol, je plussoie pour disposer d’une interface de configuration pour enregistrer les id client et secret. J’ai vraiment galéré à trouver comment faire (réponse noyée dans ce post) car aucune information ne figure dans la page d’information de Home Assistant.
Donc, malgré l’insertion des informations dans le fichier const.py, je n’ai toujours aucune entité pour utiliser l’API. Faut-il les configurer manuellement aussi et comment ?
Ce serait également top d’avoir une carte toute prête, un peu comme l’API Météo France.
Merci pour le boulot.

L’intégration se configure comme une intégration standard, via l’UI d’HomeAssistant. La première étape est de rentre les clés d’API (api client id et api client secret).
2022-11-19-185951_439x362_scrot

A priori il n’y a pas besoin d’éditer un fichier « const.py ». Ou alors on ne parle pas de l’intégration que j’ai développée (GitHub - kamaradclimber/rte-ecowatt: A home assistant component for ecowatt api exposed by french company RTE)

Bonjour à tous,

Merci beaucoup @kamaradclimber pour le travail effectué, ça fonctionne chez moi.
Bonne journée/soirée/nuit :wink:

Christophe

C’est bien votre intégration. J’ai désinstallé, redémarré puis réinstallé et redémarré : je n’ai pas de moyen de configurer dans l’UI… :grimacing:

Saut @kriss
Il ne faut pas oublier de prendre en compte toutes les infos

Version beta en V0.4.0
image