Enedis Gateway

Est-ce que tu as créé la base de donnée que tu a appelée ‹ influxdb › dans influxdb ? Le plus simple est de passer par influxdb studio que tu télécharges. Tu te connectes à influxdb et tu crée la base. Ensuite comme dit plus haut tu indiques le nom de cette base (tu as mis influxdb, ce qui n’est pas une bonne idée, tu devrais l’appeler avec qque chose comme conso_enedis par exemple) dans l’url du point d’injection.

Je pense que je mélange le nom du container dans docker, le nom du bucket et le nom de la base (si c’est bien un troisième concept.
J’ai un container Docker qui s’appelle influxdb.
J’ai un user Linky
J’ai un bucket qui s’appelle bucket. Je comprend que c’est le nom de la base.

Donc j’ai essayé http://influxdb:8086/bucket et http://localhost:8086/bucket sans succès.

Est-ce que le fait d’avoir installé un base InfluxDB 2.0 pourrait à l’origine du problème ?

De ce que je comprend avec InfluxDB 2.0 le lien avec la base se fait avec le token. Que j’ai bien renseigné. Le problème a vraiment l’air de venir de l’URL.

Pour plus de clarté, quand tu écris influxdb:8086/influxdb, le nom après le ‹ / › est le nom de la base de données. Il peut y en avoir plusieurs dans le container influxdb, donc il faut préciser, et bien sûr la créer au préalable. Tu n’as pas créé ta base, ça ne peut pas marcher.
Le token n’a rien à voir avec influxdb, ça ne concerne que l’API Enedis. Crée ta base et indique son nom à la place de bucket.

Non tu te trompes avec influx 2.0 la connexion se fait avec un token. (différent de celui de l’API).

Je pense vraiment que mon problème vient de mon install docker. Les deux containers (node red et influx db) n’ont pas l’air de pouvoir communiquer.

En tous cas tant que la base n’est pas créée il ne se passera rien. Tu peux ouvrir un terminal du container de influxdb et taper influx puis show databases. il n’y aura que _internal, donc pas bon.

Il ne manque pas le répertoire sur l’hôte et l’association avec le répertoire défini dans le container pour les données persistantes?

Un -v « dir sur Mac:/data » ou équivalent…

J’ai 3 bases dont une que j’ai appelé bucket. Le token d’identification (dont j’ai fait référence plus haut) fait le lien avec l’utilisateur et la base de donnée que j’ai créé dans influx. → Ce n’est pas par là qu’il faut chercher je pense.

Je débute en docker et je comprend pas ce que tu viens de me dire. J’essaie de lire la doc docket en // mais je dois y investir plus de temps.

Il y a pas moyen de récupérer une configuration docker prête à l’emplois pour faire tourner la gateway. ?

C’est vrai que c’est un « univers » à part :slight_smile:

Le principe des données persistantes sont celles qui « résistent » à un arrêt/marche du container qui part construction a une durée de vie limitée.

Donc, quand on lance docker, il faut (souvent) faire une association entre un répertoire qui existe vraiment sur la machine ou docker tourne et ce qui est utilisable dans le container.

A regarder la doc d’influxdb et de ce container que tu utilises il faut un truc du genre:

--volume /Users/mon_user_mac/Docker/influxdb:/root/.influxdbv2

en plus de

docker run -d --name influxdb -p 8086:8086 quay.io/influxdb/influxdb:v2.0.1

Ca donnerait donc:
docker run -d --name influxdb -p 8086:8086 --volume /Users/mon_user_mac/Docker/influxdb:/root/.influxdbv2 quay.io/influxdb/influxdb:v2.0.1

En supposant que le répertoire Docker et dedans influxdb existent sur ton mac… C’est à adapter à ce que tu a comme configuration perso. Par contre le /root/.influxdbv2 c’est imposé par le container.

Il faut d’abord arrêter le container influxdb et ensuite faire un docker rm influxdb pour supprimer le nom influxdb.

Je ne pense pas que les erreurs viennent du mappage d’un répertoire persistant. Tu as bien sûr remplacé le node d’origine par le node spécial infludb V2 ?

Quels sont les derniers messages d’erreur ? Les derniers que tu as montré indiquent une erreur de protocole (sans doute mauvaise adresse) et des erreurs de configuration.

Un grand merci. Merci pour ton conseil. C’est génial, et très actif. J’ai réussi à utiliser l’API de @Saniho. Merci à lui et à l’ensemble de la communauté. Je vais voir pour le mettre en forme.

Bonjour,
Voici mon flot avec un genre de boucle pour relancer 3 fois la requête si ça échoue.

[{"id":"a5ab6458.7ced58","type":"function","z":"c07c0ac5.ca6f98","name":"Split date week per week","func":"var now = new Date();\nvar date_begin = new Date();\nvar since = msg.since;\ndate_begin = date_begin.setDate(date_begin.getDate() - since);\nvar finish = false;\n\nmsg.payload = [];\n\nif (since < 7) {\n    start_week = new Date(date_begin);\n    year  = start_week.getFullYear();    \n    month = (start_week.getMonth() + 1).toString().padStart(2, \"0\");\n    day   = start_week.getDate().toString().padStart(2, \"0\");\n    start = year + '-' + month + '-' + day;\n    \n    end_week = new Date(now); \n    end_week = end_week.setDate(end_week.getDate());        \n    end_week = new Date(end_week); \n    year  = end_week.getFullYear();    \n    month = (end_week.getMonth() + 1).toString().padStart(2, \"0\");\n    day   = end_week.getDate().toString().padStart(2, \"0\");    \n    end = year + '-' + month + '-' + day; \n\n    msg.payload.push({\n        start: start,\n        end: end\n    });    \n    \n}else{\n    while (finish === false) {\n        \n        start_week = new Date(date_begin);\n        year  = start_week.getFullYear();    \n        month = (start_week.getMonth() + 1).toString().padStart(2, \"0\");\n        day   = start_week.getDate().toString().padStart(2, \"0\");\n        start = year + '-' + month + '-' + day;\n        \n        date_begin = new Date(date_begin);\n        end_week = date_begin.setDate(date_begin.getDate() + 7);\n        end_week = new Date(end_week);\n    \n        year  = end_week.getFullYear();    \n        month = (end_week.getMonth() + 1).toString().padStart(2, \"0\");\n        day   = end_week.getDate().toString().padStart(2, \"0\");\n        end = year + '-' + month + '-' + day;  \n        \n        if (now < end_week) {\n            finish = true;\n        }else{\n            msg.payload.push({\n                start: start,\n                end: end\n                });\n        }\n    }\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":690,"y":540,"wires":[["b7d756a4.f1d818"]]},{"id":"20a8cad0.e117b6","type":"http request","z":"c07c0ac5.ca6f98","name":"","method":"use","ret":"txt","paytoqs":"ignore","url":"","tls":"2923591e.104216","persist":false,"proxy":"","authType":"","x":1420,"y":540,"wires":[["990f96c2.3bf648","c3d874c9.6296a8"]]},{"id":"d94da224.6067f","type":"function","z":"c07c0ac5.ca6f98","name":"Set Header","func":"msg.headers = {};\nmsg.headers['Content-Type'] = 'application/x-www-form-urlencoded';\nmsg.headers['Authorization'] = msg.token;\nmsg.payload = {\n    'type': \"consumption_load_curve\",\n    'usage_point_id': msg.usage_point_id,\n    'start': msg.payload.start,\n    'end': msg.payload.end\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1040,"y":540,"wires":[["16f546ae.57af49"]]},{"id":"990f96c2.3bf648","type":"json","z":"c07c0ac5.ca6f98","name":"","property":"payload","action":"","pretty":false,"x":1570,"y":540,"wires":[["56d40a3c.20f3d4"]]},{"id":"16f546ae.57af49","type":"delay","z":"c07c0ac5.ca6f98","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"3","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1240,"y":540,"wires":[["20a8cad0.e117b6"]]},{"id":"b2bd86bb.833d18","type":"influxdb out","z":"c07c0ac5.ca6f98","influxdb":"57d9cd06.0e4dc4","name":"Linky","measurement":"","precision":"","retentionPolicy":"","x":2160,"y":540,"wires":[]},{"id":"56d40a3c.20f3d4","type":"function","z":"c07c0ac5.ca6f98","name":"Fields","func":"var unit                = msg.payload.meter_reading.reading_type.unit;\nvar measurement_kind    = msg.payload.meter_reading.reading_type.measurement_kind\nvar aggregate           = msg.payload.meter_reading.reading_type.aggregate;\nvar interval_reading    = msg.payload.meter_reading.interval_reading;\nvar reading_start       = msg.payload.meter_reading.start;\n\n// date_hc_begin = date_timestamp.setHours(start.split('H')[0],start.split('H')[1]);\n// date_hc_end = date_hc_end.setDate(date_hc_end.getDate() + 1);\n\nreading_start = new Date(reading_start);\nreading_start = reading_start.setDate(reading_start.getDate() - 1);\nstart_reading = true;\n\nvar hc = msg.hc;\n\nnew_day = undefined;\njumping_day = undefined\n\nmsg.payload = [];\n\nfor(let id in interval_reading) {\n    \n    date = interval_reading[id].date;\n    date_timestamp = new Date(date);\n    \n    type = \"HP\";\n    \n    for(let idd in hc) {\n        start = hc[idd].start;\n        end = hc[idd].end;\n        \n        start_hour = start.split(\"H\")[0];\n        end_hour = end.split(\"H\")[0];\n        \n        if (parseInt(start_hour) > parseInt(end_hour) ){\n            jumping_day = true;\n        }else{\n            jumping_day = false;\n        }\n        \n        if (jumping_day === true) {\n            \n            hc_start    = new Date(date_timestamp);\n            hc_end      = new Date(date_timestamp);\n\n            day_start   = new Date(hc_start).getDate();\n            day_current = new Date(date_timestamp).getDate();\n            hours_current = new Date(date_timestamp).getHours();\n            day_ending  = new Date(hc_end).getDate();\n            \n            if (hours_current < 12 && day_start == day_current) {\n                hc_start = new Date(hc_start);\n                hc_start = hc_start.setDate(hc_start.getDate() - 1);\n            }\n            if (hours_current >= 12) {\n                hc_end = new Date(hc_end);\n                if (day_ending == day_current) {\n                    hc_end = hc_end.setDate(hc_end.getDate() + 1);\n                }              \n            }            \n            \n        }else{\n            hc_start = new Date(date_timestamp);\n            hc_end = new Date(date_timestamp);\n        }\n        \n        hc_start = new Date(hc_start);\n        hc_start = hc_start.setHours(start.split('H')[0],start.split('H')[1]); \n        hc_end = new Date(hc_end);\n        hc_end = hc_end.setHours(end.split('H')[0],end.split('H')[1]);     \n        \n        if (hc_start <= date_timestamp && date_timestamp < hc_end) {\n            type = \"HC\";\n        }\n        \n        // begin_date = new Date(hc_start).getDate()+\" - \"+new Date(hc_start).getHours()+\":\"+new Date(hc_start).getMinutes();\n        // ended_date = new Date(hc_end).getDate()+\" - \"+new Date(hc_end).getHours()+\":\"+new Date(hc_end).getMinutes();\n        // timestamp = new Date(date_timestamp).getDate()+\" - \"+new Date(date_timestamp).getHours()+\":\"+new Date(date_timestamp).getMinutes();        new Date(date_timestamp)\n        // node.log(begin_date+\"\\t<=\\t\"+timestamp+\"\\t<\\t\"+ended_date+\"\\t=> \"+type);  \n    }\n    \n    tags = {\n        month: date.split(' ')[0].split('-')[1],\n        year: date.split(' ')[0].split('-')[0],\n        measure_type: interval_reading[id].measure_type,\n        interval_length: interval_reading[id].interval_length,\n        usage_point_id: msg.usage_point_id,\n        type: type\n    }\n    fields = {\n        value: parseInt(interval_reading[id].value),\n        subscribed_power: parseInt(msg.subscribed_power),\n        time: date_timestamp*1000000\n    }\n    \n    msg.payload.push([fields,tags]);\n    if (type == \"HC\") {\n        // node.log(\"============================================================================== \"+type);\n    }\n}\n\nmsg.measurement = \"consumption_load_curve\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1700,"y":540,"wires":[["66128905.90dcb8"]]},{"id":"66128905.90dcb8","type":"split","z":"c07c0ac5.ca6f98","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":1830,"y":540,"wires":[["1f328fcd.9c89b"]]},{"id":"9550b196.e3cbf","type":"function","z":"c07c0ac5.ca6f98","name":"Calcul HC/HP","func":"var offpeak_hours = msg.offpeak_hours;\n\n// offpeak_hours = \"HC (22H38-6H38;12H00-14H00)\";\n\nvar parts = offpeak_hours.match(/([('])(.*)([)'])/);\ndate = parts[2].split(';');\n\nmsg.hc = [];\n\nfor(let id in date) {\n    msg.hc.push({\n        start: date[id].split('-')[0],\n        end: date[id].split('-')[1],\n    })\n}\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":470,"y":540,"wires":[["a5ab6458.7ced58","cb7653ba.2e69e"]]},{"id":"b7d756a4.f1d818","type":"split","z":"c07c0ac5.ca6f98","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":880,"y":540,"wires":[["d94da224.6067f","f9ae91a7.6671f"]]},{"id":"10c9828d.dd384d","type":"influxdb in","z":"c07c0ac5.ca6f98","influxdb":"57d9cd06.0e4dc4","name":"Linky","query":"","rawOutput":false,"precision":"","retentionPolicy":"","x":1210,"y":600,"wires":[[]]},{"id":"f9ae91a7.6671f","type":"function","z":"c07c0ac5.ca6f98","name":"Delete History","func":"msg.query = \"DELETE FROM consumption_load_curve WHERE time >= '\"+msg.payload.start+\"' AND time <= '\"+msg.payload.end+\"';\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1050,"y":600,"wires":[["10c9828d.dd384d"]]},{"id":"c3d874c9.6296a8","type":"switch","z":"c07c0ac5.ca6f98","name":"","property":"statusCode","propertyType":"msg","rules":[{"t":"neq","v":"200","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1570,"y":580,"wires":[["86c7b003.14b13"]]},{"id":"1f328fcd.9c89b","type":"delay","z":"c07c0ac5.ca6f98","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"100","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1990,"y":540,"wires":[["b2bd86bb.833d18"]]},{"id":"86c7b003.14b13","type":"debug","z":"c07c0ac5.ca6f98","name":"Error","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1690,"y":580,"wires":[]},{"id":"72485393.b9dd0c","type":"link in","z":"c07c0ac5.ca6f98","name":"","links":["f1335693.d225f8","a0a66dc8.362c7"],"x":355,"y":540,"wires":[["9550b196.e3cbf"]]},{"id":"a8311f77.c3248","type":"cronplus","z":"c07c0ac5.ca6f98","name":"Linky","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"Linky","topic":"7","payloadType":"default","payload":"","expressionType":"cron","expression":"0 45 7 * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":90,"y":640,"wires":[["622ae43a.43cffc"]]},{"id":"de0a9570.1981a8","type":"change","z":"c07c0ac5.ca6f98","name":"Since","rules":[{"t":"set","p":"since","pt":"msg","to":"topic","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":680,"wires":[["6ed6b6a6.48b8e8"]]},{"id":"6ed6b6a6.48b8e8","type":"function","z":"c07c0ac5.ca6f98","name":"Set Header","func":"msg.headers = {};\nmsg.headers['Content-Type'] = 'application/x-www-form-urlencoded';\nmsg.headers['Authorization'] = msg.token;\nmsg.payload = {\n    'type': \"contracts\",\n    'usage_point_id': msg.usage_point_id,\n    'start': msg.start,\n    'end': msg.end\n}\nmsg.method = \"POST\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":650,"y":680,"wires":[["c8a342b.a344ac"]]},{"id":"c8a342b.a344ac","type":"delay","z":"c07c0ac5.ca6f98","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"3","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":830,"y":680,"wires":[["ec397d1c.df63f"]]},{"id":"ec397d1c.df63f","type":"http request","z":"c07c0ac5.ca6f98","name":"","method":"use","ret":"txt","paytoqs":"ignore","url":"","tls":"2923591e.104216","persist":false,"proxy":"","authType":"","x":1010,"y":680,"wires":[["e0976a00.680f38"]]},{"id":"e0976a00.680f38","type":"json","z":"c07c0ac5.ca6f98","name":"","property":"payload","action":"","pretty":false,"x":1170,"y":680,"wires":[["145abb21.2eeb05"]]},{"id":"622ae43a.43cffc","type":"looptimer","z":"c07c0ac5.ca6f98","duration":"15","units":"Minute","maxloops":"3","maxtimeout":"1","maxtimeoutunits":"Hour","name":"3 fois","x":230,"y":680,"wires":[["5b224f85.ce08e"],[]]},{"id":"145abb21.2eeb05","type":"switch","z":"c07c0ac5.ca6f98","name":"","property":"payload.customer.usage_points","propertyType":"msg","rules":[{"t":"null"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":1310,"y":680,"wires":[[],["acdd7c59.8fcbb","9fc1afa6.ef052"]]},{"id":"acdd7c59.8fcbb","type":"function","z":"c07c0ac5.ca6f98","name":"Get Contract","func":"var usage_points = msg.payload.customer.usage_points;\nfor(let id in usage_points) {\n    if (usage_points[id].usage_point.usage_point_id == msg.usage_point_id) {\n        msg.subscribed_power =  usage_points[id].contracts.subscribed_power;\n        msg.offpeak_hours =  usage_points[id].contracts.offpeak_hours;\n        msg.distribution_tariff = usage_points[id].contracts.distribution_tariff;\n        msg.last_distribution_tariff_change_date = usage_points[id].contracts.last_distribution_tariff_change_date;\n    }        \n}\n\nmsg.payload = msg.offpeak_hours ;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1470,"y":680,"wires":[["a3f8624a.495a4","890347a4.55a738","7d88af95.1ee9d","a0a66dc8.362c7"]]},{"id":"2bd3f4cc.93352c","type":"mqtt out","z":"c07c0ac5.ca6f98","name":"","topic":"linky/contrat/puissance","qos":"0","retain":"true","broker":"8cf5f6b5.937088","x":1890,"y":680,"wires":[]},{"id":"a3f8624a.495a4","type":"function","z":"c07c0ac5.ca6f98","name":"","func":"msg.payload = msg.subscribed_power;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1700,"y":680,"wires":[["2bd3f4cc.93352c"]]},{"id":"fb145ce6.84085","type":"mqtt out","z":"c07c0ac5.ca6f98","name":"","topic":"linky/contrat/heures_creuse","qos":"0","retain":"true","broker":"8cf5f6b5.937088","x":1900,"y":740,"wires":[]},{"id":"890347a4.55a738","type":"function","z":"c07c0ac5.ca6f98","name":"","func":"var offpeak_hours = msg.offpeak_hours;\nvar parts = offpeak_hours.match(/([('])(.*)([)'])/);\nmsg.payload = parts[2].replace(';',' / ');\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1700,"y":740,"wires":[["fb145ce6.84085"]]},{"id":"3ec58a9a.668c56","type":"mqtt out","z":"c07c0ac5.ca6f98","name":"","topic":"linky/contrat/tarif_change","qos":"0","retain":"true","broker":"8cf5f6b5.937088","x":1900,"y":800,"wires":[]},{"id":"7d88af95.1ee9d","type":"function","z":"c07c0ac5.ca6f98","name":"","func":"msg.payload = msg.last_distribution_tariff_change_date;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1700,"y":800,"wires":[["3ec58a9a.668c56"]]},{"id":"a0a66dc8.362c7","type":"link out","z":"c07c0ac5.ca6f98","name":"","links":["72485393.b9dd0c"],"x":1655,"y":630,"wires":[]},{"id":"9fc1afa6.ef052","type":"change","z":"c07c0ac5.ca6f98","name":"Stop","rules":[{"t":"set","p":"payload","pt":"msg","to":"STOP","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":810,"y":780,"wires":[["622ae43a.43cffc"]]},{"id":"5b224f85.ce08e","type":"credentials","z":"c07c0ac5.ca6f98","name":"Enedis","props":[{"value":"token","type":"msg"},{"value":"usage_point_id","type":"msg"},{"value":"url","type":"msg"}],"x":370,"y":680,"wires":[["de0a9570.1981a8"]]},{"id":"cb7653ba.2e69e","type":"debug","z":"c07c0ac5.ca6f98","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":640,"y":600,"wires":[]},{"id":"2923591e.104216","type":"tls-config","name":"","cert":"","key":"","ca":"","certname":"","keyname":"","caname":"","servername":"","verifyservercert":false},{"id":"57d9cd06.0e4dc4","type":"influxdb","hostname":"192.168.1.9","port":"8086","protocol":"http","database":"hass","name":"HASS","usetls":false,"tls":"2923591e.104216"},{"id":"8cf5f6b5.937088","type":"mqtt-broker","name":"","broker":"192.168.0.204","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

Je n’ai mis que la requête qui récupère les 7 derniers jours.

Bon j’ai laissé tombé avec InfluxDB 2.0 à priori il faut le nom de la BDD dans le payload si j’ai bien compris.

J’ai monté un container influxdb 1.8 et ca fonctionne.

En revanche l’astuce qui me manquait: c’est pour l’URL de la BDD. Comme les deux containers ont été installés indépendamment ils ne peuvent pas se parler entre eux via localhost. J’ai donc mis l’IP de mon Mac sur le réseau local (merci à @piitaya sur Discord).

Hello @Gixy31,

Pour les HC/HP, c’est assez bizarre dans le sens où Enedis envoie les infos même si le contrat est en heures de base chez certain utilisateurs et pas chez d’autres…
Il faudrait effectivement faire un fix pour bypass le HC/HP si non remonté par Enedis :slight_smile:

Après je le répété, mon flow Enedis est surtout adapter à mon installation, et ne l’est pas forcement avec toutes les installations.
Je le fourni juste pour que les gens puissent facilement voir comment ca fonctionne et qu’il l’adapte à leur sauce :stuck_out_tongue:

Je te dirais que ce champ m’a un peu casser les … avec la gestion des HC/HP & co.
Il doit être largement perfectible.

Le token que je vous fourni est une clef de décryptage AES 128bit que j’utilise pour encrypter votre vrai token + refresh_token dans la base de données.
Si tu requête mes API avec un token invalide, les données ne pourront être décrypter et ceci me permet donc de savoir si l’utilisateur en question est vraiment le propriétaire où pas du PDL.
Quand ton token Enedis expire et que tu appel mon service, je refresh à ta place le token puis refait l’appel avec le nouveau token.
Tout est donc transparent pour l’utilisateur :slight_smile:

J’héberge la solution sur un server dédié qui m’appartient et c’est un projet perso.
J’ai juste demandé à ma société si je pouvais emprunter leur entités juridique afin de pouvoir passer un contrat avec Enedis.
Maintenant, je ne suis pas à l’abris que la société ferme (ce que je doute fortement).
Et vu le niveau de service chez Enedis, je pense que même si ma société vient à fermer il ne s’en apercevrait même pas et le service continuerais de fonctionne sans problème :smiley:

Pour ca que mon flow sert juste d’exemple, je ne peut pas assurer la totalité des cas (exemple passage à influxdb 2.0).

Bonjour,
lorsque j’essaie de valider le consentement, j’ai l’erreur suivante:
Cannot GET /oauth/IdPrm=###&code=server_error&error_description=server_error&

J’ai la même erreur, j’ai l’impression qu’il y a un truc de HS chez Enedis.
Je vais leur ouvrir un ticket.

1 « J'aime »

Bonjour Alindil,
J’ai eu la même chose, et j’ai changé de navigateur → Edge (oui désolé c’était le temps de valider le consentement) :slight_smile: et c’est passé. Par contre effectivement sur node les requêtes sont KO. D’ailleurs je vais peut être avoir besoin d’aide bientôt à ce sujet…

Perso j’ai une 404 quand je demande les consentements maintenant…

J’ai ouvert un ticket tt à l’heure, j’attend de voir leur réponses…

Woful,
j’avais déjà testé avec edge et même avec IE.
Donc j’ai retesté pour voir:
avec edge, j’ai l’erreur:
{« error »:« token_new_400 »,« description »:« Une erreur est survenue, merci de renouveller vos consentements plus tard. »,« pertubation »:« Enedis rencontre un soucis avec le navigateur Chrome sur la demande de consentement, merci de réessayer ou de passer sur IE6… »}

Avec IE: