Sensor pour Enedis - apiEnedis

@akunia, @mycanaletto, @pipo114, une nouvelle version est disponible, je vous laisse la tester
Dans les evolutions : gestion si contrat récent : cas de @akunia
gestion si enedis ne renvoi rien
gestion d’update selon une frequence donnée difference de l’update du sensor
en gros le sensor à se frequence de check, et l’appel à enedis à aussi sa frequence
dans le sensor, il faut donc deux lignes

scan_interval: 3600 ==> frequence d’update du sensor
delay: 7200 ==> frequence d’appel à enedis( si le dernier appel à échoué, il appelera à la frequence du sensor )
merci de vos retours, bon test…

Ca tu peux le vérifier en faisant un curl pour voir si les valeurs remontent…

Il y a du mieux…
image

@mycanaletto, bizarre, je n’ai pas cet effet, as-tu pris la derniere version ? Si oui, as-tu dans le log des informations ? as-tu ajouter la nouvelle propriété dans la sensor.yaml ?
Sinbon, je vais mettre un mode debug pour pouvoir tracer les informations

J’ai aussi le même problème que @mycanaletto.
si on ajoute pas le delay, le sensor n’est pas créé.

Pour ma part, j’ai une installation récente et je suis en instance de changement de fournisseur d’ernergie.
Si tu veux refaire une version avec des traces de debugs, je peux te faire un extract de mes logs

Hello,
Je confirme aussi que le sensor esst bien crée avec l’ajout de « delay » mais pareil, j’ai state unknown et dans des logs:

    2020-11-14 14:29:35 WARNING (MainThread) [homeassistant.components.sensor] Setup of sensor platform apiEnedis is taking over 10 seconds.
data {'meter_reading': {'usage_point_id': '25453834924845', 'start': '2020-11-01', 'end': '2020-11-14', 'quality': 'BRUT', 'reading_type': {'unit': 'Wh', 'measurement_kind': 'energy', 'aggregate': 'sum', 'measuring_period': 'P1D'}, 'interval_reading': [{'value': '17055', 'date': '2020-11-01'}, {'value': '14119', 'date': '2020-11-02'}, {'value': '16135', 'date': '2020-11-03'}, {'value': '14064', 'date': '2020-11-04'}, {'value': '15883', 'date': '2020-11-05'}, {'value': '14861', 'date': '2020-11-06'}, {'value': '14497', 'date': '2020-11-07'}, {'value': '18142', 'date': '2020-11-08'}, {'value': '14900', 'date': '2020-11-09'}, {'value': '15069', 'date': '2020-11-10'}, {'value': '19977', 'date': '2020-11-11'}, {'value': '21023', 'date': '2020-11-12'}, {'value': '16613', 'date': '2020-11-13'}]}}
%s: %s 400 {"error":"result_400","enedis_return":{"error":"ADAM-ERR0123","error_description":"The requested period cannot be anterior to the meter's last activation date","error_uri":"https://bluecoder.enedis.fr/api-doc/consulter-souscrire"}}
ici ("'NoneType' object has no attribute 'keys'",)

J’ai activé api seulement hier et à priori c’est ça qui pose le pb chez moi…

Bonsoir,

OK pour moi avec la derniere version du git d’hier soir. mais Attention, il ya 2 dossiers :

  • apiEnedis
    → apiEnedis_main

tout doit être sous apiEnedis :wink:

Mauvais commentaire :upside_down_face: la dernière version est ici. Bien mettre un delay: 7200

@dckiller, attention, cette dernière version ne contient que deux fichiers, qui remplace ceux de la version de référence. Cette version beta contient entre autres :

  • gestion de quelques log
  • gestion de contrat de moins de 2 ans( donc pas d’historique que l’année précedente par exemple )
  • remonté d’un attribut erreur, permettant de voir la trame de l’erreur s’il y a.
    Si cette version beta fonctionne bien, je la mettrais en reference demain soir.
1 « J'aime »

ok je supprime le lien pour pas induire en erreur.

Merci pour ce travail !

J’ai ajouté ces directives pour avoir l’historique par semaine.
Fichier apiEnedis:

   def CallgetCurrentWeek(self):
        import datetime
        today = datetime.date.today()
        cejour = (datetime.date.today()).strftime("%Y-%m-%d")
        firstdateofweek = (datetime.date.today()-datetime.timedelta(days=datetime.datetime.today().weekday() % 7)).strftime("%Y-%m-%d")
        return self.getDataPeriod( firstdateofweek, cejour)

    def CallgetLastWeek(self):
        import datetime
        today = datetime.date.today()
        start_date = today + datetime.timedelta(-today.weekday(), weeks=-1)
        end_date = today + datetime.timedelta(-today.weekday())
        return self.getDataPeriod( start_date, end_date)

Fichier sensor.py

status_counts['current_week'] = self._myDataEnedis.getCurrentWeek()
        status_counts['last_week'] = self._myDataEnedis.getLastWeek()

Est il possible de les commiter ?

@df911 Tu fait un fork, tes modifications et tu fait une PR tout ça depuis GitHub.

1 « J'aime »

Bonjour
Je n’arrive pas à m’en sortir avec apienedis, j’ai l’erreur suivante:
Invalid config for [sensor.apiEnedis]: [mode] is an invalid option for [sensor.apiEnedis]. Check: sensor.apiEnedis->mode. (See ?, line ?).
mon fichier sensor.yaml

 #---------------------------------------------------------------------------------------------------------------------      
   ############################################################
   ##                         Enedis                         ##
   ##                                                        ##
   ############################################################
  - platform: apiEnedis
    token: xxxxxxxxxxxxxxxxxxxxxxxxx9sok4PGoiIbkGCGqfg4HremxyqSEPOnfIHthF
    code: xxxxxxxxxxxxx904395
    delay: 7200 
    scan_interval: 3600

si quelqu’un a eu le même pb
merci

bonjour à tous, nouvelle version livrée à l’instant : version 1.0.1.2
quelques ajouts :
gestion d’erreur pour les contrats recent, ( erreur remonté dans le sensor )
ajout du dev de @df911( désolé, j’ai pas pu mergé, j’avais un refactoring en cours )
delay est facultatif maintenant
bon test

1 « J'aime »

Merci.

Je mets à jour de suite :wink:

pour ceux interessé une pre version de la V 1.0.2.0 est disponible dans https://github.com/saniho/apiEnedis/blob/main/preVersion/apiEnedis_1_0_2_0a.zip
ajout de la remontée sur les 7 derniers jours, mais jour par jour pour à terme suivre l’évolution sur les derniers jours

1 « J'aime »

Voila pour moi. Question sur Attribution ? C’est-à-dire ?

Capture d’écran du 2020-11-15 14-46-37

Merci TOP

Passage en version 1.0.1.2, suppression de l’option delay , je ne comprend pas d’où vient le problème

Voila la pre-version :wink:

Capture d’écran du 2020-11-15 14-55-49

1 « J'aime »