API Ecowatt

Maintenant que l’API d’ecowatt a été mise à jour et publiée, savez vous s’il existe une intégration HA (ou quelqu’un travaillant dessus).

EDIT: J’ai publié une intégration GitHub - kamaradclimber/rte-ecowatt: A home assistant component for ecowatt api exposed by french company RTE.

4 « J'aime »

hello je n’ai rien trouvé pour l’instant. Je suis venu sur ce forum pour justement faire la promotion de cette API. Tu as été plus rapide que moi :blush:

J’ai crée un Feature request sur le forum officiel. N’hésitez pas à aller voter !

ps: etant nouvel inscrit, je n’ai pas le droit de poster de lien…

Voici le lien de ton sujet

1 « J'aime »

Bonjour,
Je me suis inscris sur le site https://data.rte-france.com/ et je me suis abonné à l’API.
Dans mes applications j’ai récupéré mon ID Client et mon ID Secret.
La doc : Catalogue API - API Data RTE
J’ai testé dans Postman :

Résultat :
image

Je ne vois pas non plus de paramètre région ou localité alors que dans l’inscription aux alertes il y a un code postal : Inscription alerte vigilance coupure électrique | Ecowatt

Je ne suis pas tombé sur la bonne documentation sans doute, bizarre « ID Client » et « ID Secret » avec un espace.

Bob

Les paramètres client_id et client_secret sont à utiliser pour une authentification en oauth2.

Je vais essayer de bricoler un script puis si possible une intégration home-assistant ce soir.

Mais il faudra que chaque utilisateur s’abonne sur le site de RTE.

3 « J'aime »

Je confirme, il faut un token


J’ai pas le temps de chercher, mais ça m’interesse

Toujours Status:400 Bad Request

Bonjour,

Existe-il un quelconque projet pour intégrer EcoWatt dans Home Assistant ?
https://www.monecowatt.f

Cela permet de savoir si des coupures son programmées dans le futur et quel est le niveau d’alerte.

La RTE met à disposition une API pour l’intégrer :

Merci !

Il y a eu des plus rapides …

Création du compte, création application puis abonnement à l’api avec l’application.
J’arrive a obtenir un jeton d’authentification mais je n’arrive pas a obtenir la ressource :

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import requests
from requests.auth import HTTPBasicAuth
import json

URL = "https://digital.iservices.rte-france.com/token/oauth/"
client = "xxx"
secret = "xxx"

headers = {'content-type': 'application/x-www-form-urlencoded'}

data = ""
#print(payload)
response = requests.post(URL,
                         headers=headers,
                         auth=HTTPBasicAuth(client, secret),
                         verify=True)
#print(response.content)
print(response.status_code)
token = response.json()['access_token']
print(token)

# ====
url_signal = "https://digital.iservices.rte-france.com/open_api/ecowatt/v4/signals"
headers = {'Bearer': token}
response = requests.get(url_signal,
                        headers=headers)
print(response.status_code)
print(response.content)

Erreur 400, sur la ressource… Peut etre un délais pour activer le compte ?

Essaye d’encoder le client/secret en base64

Voilà un snippet qui fonctionne:

import os
from oauthlib.oauth2 import BackendApplicationClient
from requests_oauthlib import OAuth2Session
from requests.auth import HTTPBasicAuth
import json

client_id = os.environ['ECOWATT_CLIENT_ID']
client_secret = os.environ['ECOWATT_CLIENT_SECRET']

auth = HTTPBasicAuth(client_id, client_secret)
client = BackendApplicationClient(client_id=client_id)
oauth = OAuth2Session(client=client)
token = oauth.fetch_token(token_url='https://digital.iservices.rte-france.com/token/oauth/', auth=auth)

print(token)

result = oauth.get('https://digital.iservices.rte-france.com/open_api/ecowatt/v4/sandbox/signals')

print(json.dumps(result.json(), indent=2))

avec les dépendences:

requests>=2.28.1
requests-oauthlib>=1.3.1

Je ferais une intégration minimale ce soir si possible.

4 « J'aime »

J’ai vu vite fait qu’il y a une limite d’appel à 1 fois par 15 minutes

1 « J'aime »

Ce sujet m’interresse également, je vais voir coté NodeRed si il y a qqchose de faisable (+ dans mes cordes). Une intégration dans HA sans NR m’interesse, il m’interesse d’y participer mais je pêche un peu coté Python pour le moment.

Question : l’un de vous sais si cette info est également transmise par la teléinfo ?

Puisque depuis Postman je n’arrive même pas à obtenir le retour json je ne vais pas pouvoir aider !

J’ai un prototype de composant HA qui expose 4 sensors (un par jour décrit par l’API).
Je pourrais probablement le publier ce weekend.

6 « J'aime »

Bon je vois que je ne suis pas le seul a y avoir pensé.
Je ne suis pas sur que mes maigres compétences en python puisse aider mais je peu tester au besoin.

Bonsoir

J’arrive à me connecter sous HA au bac à sable et à obtenir le Json Signal avec les données, avec les deux éléments suivants :

platform: rest
name: 'Ecowatt Login'
resource_template: "https://digital.iservices.rte-france.com/token/oauth/"
method: 'POST'
headers:
  Authorization: Basic "login+Passwd en clé 64 obtenu sur le site RTE"
  Content-Type: application/x-www-form-urlencoded
json_attributes: 
  - access_token
value_template: '{{ value_json.access_token }}' 
scan_interval: 86400
timeout: 120

et

platform: rest
name: 'Ecowatt Signal'
resource_template: "https://digital.iservices.rte-france.com/open_api/ecowatt/v4/sandbox/signals"
method: 'GET'
headers:
  Authorization: Bearer {{states('sensor.ecowatt_login')}} 
scan_interval: 86400
timeout: 120
value_template: "{{value_json[0].message}}"

Sauf que je n’ai pas de résultat.
je vois bien en debug le Json mais comme il fait plus de 255 caractères, j’ai une erreur
Et après je bloque dans les value-template pour obtenir le détail du json

Si quelqu’un est un expert des sensoras sur platform rest, je lui passe la main volontiers
Merci à tous

J’ai une première version fonctionnelle sur GitHub - kamaradclimber/rte-ecowatt: A home assistant component for ecowatt api exposed by french company RTE.
Il faut encore que je regarde pour que ca s’installe via hacs. (EDIT: ca fonctionne)
Il peut y avoir également un petit pépin lors de l’installation: il faut redémarrer 2 fois home assistant avant de pouvoir utiliser l’intégration.

image

7 « J'aime »

L’installation fonctionne via hacs (si on rajoute le repository comme un custom repository).
Si vous savez comment faire, je suis tout à fait preneur de feedback (via les issues github de préférence).

1 « J'aime »