tthma / homebridge-linky-enedis-meter

MIT License
8 stars 1 forks source link

refreshToken ? #14

Closed christophejaubert closed 1 year ago

christophejaubert commented 1 year ago

Bonjour à tous,

Impossible d'obtenir le refreshToken (non documenté sur https://github.com/bokub/linky ?) et le plugin refuse de démarrer sans cela.

En revanche en CLI, aucun problème pour récupérer les données d'Enedis :

% linky daily -s 2023-08-25 -e 2023-08-28

✔ Récupération de la consommation quotidienne

Date        Valeur (Wh) Graphique                     
2023-08-25  7430        ■■■■■■■■■■■■■■■■■■■■■■■■■
2023-08-26  9222        ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
2023-08-27  6346        ■■■■■■■■■■■■■■■■■■■■■

Ai-je loupé quelque chose ?

tthma commented 1 year ago

Bonjour

Avez vous essayé comme indiqué sur le site ?

https://conso.boris.sh/

Ils donnent ça comme lien pour récupérer un token

Après je n'ai pas mis à jour le plugin depuis un bail et je sais que enedis passait en nouvelle version y'a un moment déjà.

Il a déjà marché le plugin ?

J'ai jamais reesaye avec leurs nouvelle version.

Et vue que mon propre plugin ne marche pas chez moi (merci Bouygue qui me bloque l'adresses d'EDF) difficile de contrôler si ça fonctionne ou pas !

christophejaubert commented 1 year ago

Oui, j'ai bien donné l'accès à mes données Enedis à conso.boris.sh et j'ai pu générer un accessToken.

Le problème est que l'interface conso.boris.sh ne permet que de générer cet accessToken et non le refreshToken, apparemment indispensable sur votre plugin.

Je l'ai installé hier donc impossible de savoir si cela fonctionnait avant. Sur mon HomeBridge, cela n'a jamais fonctionné, depuis hier.

tthma commented 1 year ago

Faudras que je test alors sûrement une modification à faire suite à la mise à jour de l'api d'enedis Et avec de la chance je pourrais faire enfin fonctionner mon plugin pour chez moi

tthma commented 1 year ago

Je pense que c'est le plugin de bokub qui a été mis à jour et pas le miens donc faut que je le mette à jour dans mon plugin le refresh token ne doit plus être nécessaire

christophejaubert commented 1 year ago

Si c'est bien cela, c'est une bonne nouvelle car ça m'intéressait vraiment, de pouvoir suivre ma conso Linky dans l'app Eve ^^

tthma commented 1 year ago

La même c'est pour ça que je l'avais créé à la base le plugin Je vous tiens au courant

tthma commented 1 year ago

J'ai fais une mise à jour 1.0.6 Cela semble fonctionner J'ai mis depuis le 01/01/2023 et ça fonctionne visiblement

christophejaubert commented 1 year ago

Pour une raison que j'ignore, alors que j'ai renseigné une date au 1er août 2023, les logs montrent la requête suivante : Query start = **2000-01-01** End = **2000-01-08**

ce qui génère cette erreur :

APIError: Conso API a répondu avec une erreur
    at file:///usr/local/lib/node_modules/homebridge-linky-enedis-meter/node_modules/linky/dist/lib/index.js:76:23
    at processTicksAndRejections (node:internal/process/task_queues:95:5) {
  err: AxiosError: Request failed with status code 400
      at settle (file:///usr/local/lib/node_modules/homebridge-linky-enedis-meter/node_modules/axios/lib/core/settle.js:19:12)
      at IncomingMessage.handleStreamEnd (file:///usr/local/lib/node_modules/homebridge-linky-enedis-meter/node_modules/axios/lib/adapters/http.js:572:11)
      at IncomingMessage.emit (node:events:526:35)
      at endReadableNT (node:internal/streams/readable:1359:12)
      at processTicksAndRejections (node:internal/process/task_queues:82:21) {
    code: 'ERR_BAD_REQUEST',
    config: {
      transitional: [Object],
      adapter: 'http',
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      method: 'get',
      **url: 'https://conso.boris.sh/api/consumption_load_curve?**start=2000-01-01**&**end=2000-01-08**&prm=##############',**
      data: undefined
    },
    request: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: false,
      socket: [TLSSocket],
      _header: 'GET /api/consumption_load_curve?**start=2000-01-01**&**end=2000-01-08**&prm=############## HTTP/1.1\r\n' +
        'Accept: application/json\r\n' +
        'Authorization: Bearer ###...###\r\n' +
        'User-Agent: @bokub/linky\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: conso.boris.sh\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'GET',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/api/consumption_load_curve?**start=2000-01-01**&**end=2000-01-08**&prm=##############',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'conso.boris.sh',
      protocol: 'https:',
      _redirectable: [Writable],
      [Symbol(kCapture)]: false,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype],
      [Symbol(errored)]: null,
      [Symbol(kHighWaterMark)]: 16384,
      [Symbol(kRejectNonStandardBodyWrites)]: false,
      [Symbol(kUniqueHeaders)]: null
    },
    response: {
      status: 400,
      statusText: 'Bad Request',
      headers: [Object [AxiosHeaders]],
      config: [Object],
      request: [ClientRequest],
      data: [Object]
    }
  },
  code: 400,
  response: {
    status: 400,
    message: 'The Enedis API returned an error',
    error: {
      error: 'ADAM-ERR0125',
      **error_description: 'The start date must be greater than the history deadline.'**
    }
  }
}

Voici la conf JSON :

{
    "name": "HB Linky Meter",
    "usagePointId": "##############",
    "accessToken": "###...###",
    **"firstDateRecord": "2023-08-01T00:00:00Z",**
    "update_interval": 60000,
    "_bridge": {
        "username": "##:##:##:##:##:##",
        "port": ######
    },
    "accessory": "EnergyMeter"
}
tthma commented 1 year ago

The start date must be greater than the history deadline.'

Réponse de l'api Ce qui est bizzare c'est qu'il fait sa query sur annee 2000 et pas 2023

Avez vous essayé de supprimer complètement le plugin et sa configuration dans Homebridge avant de réinstaller la version 1.6 ?

Bien contrôler le format de date aussi mais il m'a l'air correct sur le fichier config Après je sais que java est capricieux sur les dates au lieux de mettre minuit sur l'heure essayer avec 3 4 heure de plus pour être sûr que c'est le premier août Après une dernière chose faut pas que la date demandé soit antérieur à la date de votre abonnement.

Pour finir j'ai vue qu'il y avait un autre problème tout à l'heure aussi je pense qu'à therme je vais virer la rétroactivité sur les mesures et ça sera que du jour le jour. Ève se delink au bout d'un moment je sais pas pourquoi et la mémoire tampon grandit sans déverser les données dans eve et le plugin boucle sur memory full veuillez mettre a jour les données dans eve. Si y a quelqu'un de charitable pour me filer un coup de main je dis pas non.Sinon je vais voir pour dégager cette fonctionnalité quand j'aurai le temps de me pencher dessus.

Essayer de repartir de zéro déjà pour voir ce que ça dit.

Une dernière chose aussi dans eve y a une option réinitialiser les données vous le faites et vous redémarrer homebridge pour raz le fichier tampon sauf si vous avez accès au disque dur de homebridge vous le supprimez a la main (fichier json avec votre numéro de compteur)

Je vais voir si je peux corriger et la rétroactivité des données et les dates sinon ça sera du jour le jour ça sera moins le bazar

christophejaubert commented 1 year ago

Je n'avais pas supprimé le plugin, j'avais juste lancé la mise-à-jour via l'IHM Web HB. Je viens de supprimer le plugin puis de le réinstaller : même comportement.

En revanche, je constate qu'à chaque fois, quand je veux configurer la date dans la fenêtre des réglages, puis que je valide, si je rouvre la fenêtre des réglages, j'ai toujours mon PRM et mon token qui sont renseignés, mais la date est systématiquement réinitialisée (sans valeur). Est-ce normal ?

J'aimerais bien vous filer un coup de main, mais mes compétences en dev datent d'il y a vingt ans… du coup, je ne suis pas le bon profil pour ça, hélas. 🫠

tthma commented 1 year ago

Vous avez essayé de rentrer à la mano là date ? Je regarderai ça a l'occasion mais avec le boulot et tout j'ai pas forcément le temps

Gabin85 commented 1 year ago

J'ai exactement le même problème

Gabin85 commented 1 year ago

[8/29/2023, 11:32:09 PM] [Linky Meter] Query start = 2021-01-01 End = 2021-01-08 [8/29/2023, 11:32:10 PM] [Linky Meter] APIError: Conso API a répondu avec une erreur

  error_description: 'The start date must be greater than the history deadline.'
}

} }

Et j'ai beau changé la date dans mon fichier de configuration, toujours pareil...

tthma commented 1 year ago

Gabin85 attention qu'on on copie collé les logs. Votre numéro de compteur linky ainsi que vos header d'autorisation apparaissait en clair. Bon je vois pas ce qu'un pirate pourrait faire de vos consommations d'électricité mais bon ne pas laisser la porte ouverte quand même... J'ai modifié votre commentaire dans ce sens.

Sur l'application officielle EDF enedis vous avez un historique de consommation déjà ? Il date de quand ?

Gabin85 commented 1 year ago

Normalement je fais attention mais là je crois que j’étais trop fatigué pour remarquer que s’était dans les logs mdr…

Sinon sur le site de Enedis mon historique de consommation commence au 8 septembre 2021

tthma commented 1 year ago

Donc vous pouvez pas récupérer des infos au 01/01/2021 y a pas d'historique avant le 08 septembre 2021

Gabin85 commented 1 year ago

Justement le problème c’est que dans le fichier de configuration ou dans les réglages du plugin (j’ai d’ailleurs remarqué comme l’autre personne, que quand on rentre une date, on enregistre et on retourne dans les réglages elle disparaît mais est bien dans le fichier de configuration) j’ai beau changé la date et il m’affiche toujours celle ci

tthma commented 1 year ago

Je viens de publier une mise à jour

Attention si vous mettez une date assez ancienne dans le fichier config a bien resté sur l'application Eve en effet la mémoire tampon n'étant pas extensible à l'infini il faut bien actualiser jusqu'à ce qu'il arrive a aujourd'hui pour éviter de perdre des données en route

tthma commented 1 year ago

Dernière mise à jour dernier bugfix 1.0.8 Fix consolation total

christophejaubert commented 1 year ago

À présent le service boris.sh répond avec cette page Web d'erreur :

Sorry, you have been blocked

You are unable to access boris.sh

Why have I been blocked?

This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.

What can I do to resolve this?

You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.

Cloudflare Ray ID: 7fec19097f650274
tthma commented 1 year ago

Ah bas alors là.... Ça fonctionne bien de mon côté c'est bizzare. Vous êtes pas caché derrière un vpn ou truc qu'il aimerait pas ? Vous êtes bien resté dans les 1min de latence par requête pour pas spam le site ?

christophejaubert commented 1 year ago

Aucun changement sur ma connexion : ni VPN, ni relai privé iCloud Et je n'ai pas non plus modifié l'intervalle de 60000 ms configuré par défaut dans le plugin. Par contre, la date, dans la fenêtre de réglage du plugin, réapparait encore comme étant réinitialisée (mais la conf JSON n'a pas changé, en revanche : c'est bien la date que j'avais configurée)

tthma commented 1 year ago

Tant que la date dans le fichier json n'est pas null pas d'importance.

L'onglet de conf est juste du visu c'est pas grave si la date n'appairait pas dedans tant qu'elle est dans le fichier json

Cependant ce n'explique pas pour quoi vous avez été bloqué du site internet de bokub

Gabin85 commented 1 year ago

Ne fonctionne toujours pas pour moi... mais la date affichée est la bonne

`[8/30/2023, 12:29:42 PM] [Linky Meter] Query start = 2020-09-15 End = 2020-09-22 [8/30/2023, 12:29:42 PM] [Linky Meter] APIError: Conso API a répondu avec une erreur at file:///homebridge/node_modules/homebridge-linky-enedis-meter/node_modules/linky/dist/lib/index.js:76:23 at processTicksAndRejections (node:internal/process/task_queues:95:5) { err: AxiosError: Request failed with status code 403 at settle (file:///homebridge/node_modules/homebridge-linky-enedis-meter/node_modules/axios/lib/core/settle.js:19:12) at BrotliDecompress.handleStreamEnd (file:///homebridge/node_modules/homebridge-linky-enedis-meter/node_modules/axios/lib/adapters/http.js:572:11) at BrotliDecompress.emit (node:events:526:35) at endReadableNT (node:internal/streams/readable:1359:12) at processTicksAndRejections (node:internal/process/task_queues:82:21) { code: 'ERR_BAD_REQUEST', config: { transitional: [Object], adapter: 'http', transformRequest: [Array], transformResponse: [Array], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: [Object], validateStatus: [Function: validateStatus], headers: [Object [AxiosHeaders]], method: 'get', url: 'https://conso.boris.sh/api/consumption_load_curve?start=2020-09-15&end=2020-09-22&prm=14357308144122', data: undefined }, request: ClientRequest { _events: [Object: null prototype], _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: true, _last: true, chunkedEncoding: false, shouldKeepAlive: false, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: true, socket: [TLSSocket], _header: 'GET /api/consumption_load_curve?start=2020-09-15&end=2020-09-22&prm=14357308144122 HTTP/1.1\r\n' + 'Accept: application/json\r\n' + 'Authorization: Bearer r\n' + 'User-Agent: Homebridge EnergyMeter\r\n' + 'Accept-Encoding: gzip, compress, deflate, br\r\n' + 'Host: conso.boris.sh\r\n' + 'Connection: close\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: [Agent], socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/api/consumption_load_curve?start=2020-09-15&end=2020-09-22&prm=', _ended: true, res: [IncomingMessage], aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'conso.boris.sh', protocol: 'https:', _redirectable: [Writable],

  [Symbol(kBytesWritten)]: 0,
  [Symbol(kNeedDrain)]: false,
  [Symbol(corked)]: 0,
  [Symbol(kOutHeaders)]: [Object: null prototype],
  [Symbol(errored)]: null,
  [Symbol(kHighWaterMark)]: 16384,
  [Symbol(kRejectNonStandardBodyWrites)]: false,
  [Symbol(kUniqueHeaders)]: null
},
response: {
  status: 403,
  statusText: 'Forbidden',
  headers: [Object [AxiosHeaders]],
  config: [Object],
  request: [ClientRequest],
  data: '<!DOCTYPE html>\n' +
    '<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->\n' +
    '<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->\n' +
    '<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->\n' +
    '<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->\n' +
    '<head>\n' +
    '<title>Attention Required! | Cloudflare</title>\n' +
    '<meta charset="UTF-8" />\n' +
    '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\n' +
    '<meta http-equiv="X-UA-Compatible" content="IE=Edge" />\n' +
    '<meta name="robots" content="noindex, nofollow" />\n' +
    '<meta name="viewport" content="width=device-width,initial-scale=1" />\n' +
    '<link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/cf.errors.css" />\n' +
    `<!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" /><![endif]-->\n` +
    '<style>body{margin:0;padding:0}</style>\n' +
    '\n' +
    '\n' +
    '<!--[if gte IE 10]><!-->\n' +
    '<script>\n' +
    '  if (!navigator.cookieEnabled) {\n' +
    "    window.addEventListener('DOMContentLoaded', function () {\n" +
    "      var cookieEl = document.getElementById('cookie-alert');\n" +
    "      cookieEl.style.display = 'block';\n" +
    '    })\n' +
    '  }\n' +
    '</script>\n' +
    '<!--<![endif]-->\n' +
    '\n' +
    '\n' +
    '</head>\n' +
    '<body>\n' +
    '  <div id="cf-wrapper">\n' +
    '    <div class="cf-alert cf-alert-error cf-cookie-error" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div>\n' +
    '    <div id="cf-error-details" class="cf-error-details-wrapper">\n' +
    '      <div class="cf-wrapper cf-header cf-error-overview">\n' +
    '        <h1 data-translate="block_headline">Sorry, you have been blocked</h1>\n' +
    '        <h2 class="cf-subheadline"><span data-translate="unable_to_access">You are unable to access</span> boris.sh</h2>\n' +
    '      </div><!-- /.header -->\n' +
    '\n' +
    '      <div class="cf-section cf-highlight">\n' +
    '        <div class="cf-wrapper">\n' +
    '          <div class="cf-screenshot-container cf-screenshot-full">\n' +
    '            \n' +
    '              <span class="cf-no-screenshot error"></span>\n' +
    '            \n' +
    '          </div>\n' +
    '        </div>\n' +
    '      </div><!-- /.captcha-container -->\n' +
    '\n' +
    '      <div class="cf-section cf-wrapper">\n' +
    '        <div class="cf-columns two">\n' +
    '          <div class="cf-column">\n' +
    '            <h2 data-translate="blocked_why_headline">Why have I been blocked?</h2>\n' +
    '\n' +
    '            <p data-translate="blocked_why_detail">This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.</p>\n' +
    '          </div>\n' +
    '\n' +
    '          <div class="cf-column">\n' +
    '            <h2 data-translate="blocked_resolve_headline">What can I do to resolve this?</h2>\n' +
    '\n' +
    '            <p data-translate="blocked_resolve_detail">You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.</p>\n' +
    '          </div>\n' +
    '        </div>\n' +
    '      </div><!-- /.section -->\n' +
    '\n' +
    '      <div class="cf-error-footer cf-wrapper w-240 lg:w-full py-10 sm:py-4 sm:px-8 mx-auto text-center sm:text-left border-solid border-0 border-t border-gray-300">\n' +
    '  <p class="text-13">\n' +
    '    <span class="cf-footer-item sm:block sm:mb-1">Cloudflare Ray ID: <strong class="font-semibold">7fec5aabcfb8d363</strong></span>\n' +
    '    <span class="cf-footer-separator sm:hidden">&bull;</span>\n' +
    '    <span id="cf-footer-item-ip" class="cf-footer-item hidden sm:block sm:mb-1">\n' +
    '      Your IP:\n' +
    '      <button type="button" id="cf-footer-ip-reveal" class="cf-footer-ip-reveal-btn">Click to reveal</button>\n' +
    '      <span class="hidden" id="cf-footer-ip"></span>\n' +
    '      <span class="cf-footer-separator sm:hidden">&bull;</span>\n' +
    '    </span>\n' +
    '    <span class="cf-footer-item sm:block sm:mb-1"><span>Performance &amp; security by</span> <a rel="noopener noreferrer" href="https://www.cloudflare.com/5xx-error-landing" id="brand_link" target="_blank">Cloudflare</a></span>\n' +
    '    \n' +
    '  </p>\n' +
    '  <script>(function(){function d(){var b=a.getElementById("cf-footer-item-ip"),c=a.getElementById("cf-footer-ip-reveal");b&&"classList"in b&&(b.classList.remove("hidden"),c.addEventListener("click",function(){c.classList.add("hidden");a.getElementById("cf-footer-ip").classList.remove("hidden")}))}var a=document;document.addEventListener&&a.addEventListener("DOMContentLoaded",d)})();</script>\n' +
    '</div><!-- /.error-footer -->\n' +
    '\n' +
    '\n' +
    '    </div><!-- /#cf-error-details -->\n' +
    '  </div><!-- /#cf-wrapper -->\n' +
    '\n' +
    '  <script>\n' +
    '  window._cf_translation = {};\n' +
    '  \n' +
    '  \n' +
    '</script>\n' +
    '\n' +
    '</body>\n' +
    '</html>\n'
}

}, code: 403, response: '<!DOCTYPE html>\n' + '\n' + '\n' + '\n' + ' \n' + '\n' + 'Attention Required! | Cloudflare\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + <!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" /><![endif]-->\n + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '

\n' + ' \n' + '
\n' + '
\n' + '

Sorry, you have been blocked

\n' + '

You are unable to access boris.sh

\n' + '
\n' + '\n' + '
\n' + '
\n' + '
\n' + ' \n' + ' \n' + ' \n' + '
\n' + '
\n' + '
\n' + '\n' + '
\n' + '
\n' + '
\n' + '

Why have I been blocked?

\n' + '\n' + '

This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.

\n' + '
\n' + '\n' + '
\n' + '

What can I do to resolve this?

\n' + '\n' + '

You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.

\n' + '
\n' + '
\n' + '
\n' + '\n' + ' \n' + '\n' + '\n' + '
\n' + '
\n' + '\n' + ' \n' + '\n' + '\n' + '\n' } [8/30/2023, 12:29:42 PM] [Linky Meter] APIError: Conso API a répondu avec une erreur at file:///homebridge/node_modules/homebridge-linky-enedis-meter/node_modules/linky/dist/lib/index.js:76:23 at processTicksAndRejections (node:internal/process/task_queues:95:5) { err: AxiosError: Request failed with status code 403 at settle (file:///homebridge/node_modules/homebridge-linky-enedis-meter/node_modules/axios/lib/core/settle.js:19:12) at BrotliDecompress.handleStreamEnd (file:///homebridge/node_modules/homebridge-linky-enedis-meter/node_modules/axios/lib/adapters/http.js:572:11) at BrotliDecompress.emit (node:events:526:35) at endReadableNT (node:internal/streams/readable:1359:12) at processTicksAndRejections (node:internal/process/task_queues:82:21) { code: 'ERR_BAD_REQUEST', config: { transitional: [Object], adapter: 'http', transformRequest: [Array], transformResponse: [Array], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: [Object], validateStatus: [Function: validateStatus], headers: [Object [AxiosHeaders]], method: 'get', url: 'https://conso.boris.sh/api/consumption_load_curve?start=2020-09-15&end=2020-09-22&prm=', data: undefined }, request: ClientRequest { _events: [Object: null prototype], _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: true, _last: true, chunkedEncoding: false, shouldKeepAlive: false, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: true, socket: [TLSSocket], _header: 'GET /api/consumption_load_curve?start=2020-09-15&end=2020-09-22&prm= HTTP/1.1\r\n' + 'Accept: application/json\r\n' + 'Authorization: Bearer \r\n' + 'User-Agent: Homebridge EnergyMeter\r\n' + 'Accept-Encoding: gzip, compress, deflate, br\r\n' + 'Host: conso.boris.sh\r\n' + 'Connection: close\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: [Agent], socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/api/consumption_load_curve?start=2020-09-15&end=2020-09-22&prm= ', _ended: true, res: [IncomingMessage], aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'conso.boris.sh', protocol: 'https:', _redirectable: [Writable],

  [Symbol(kBytesWritten)]: 0,
  [Symbol(kNeedDrain)]: false,
  [Symbol(corked)]: 0,
  [Symbol(kOutHeaders)]: [Object: null prototype],
  [Symbol(errored)]: null,
  [Symbol(kHighWaterMark)]: 16384,
  [Symbol(kRejectNonStandardBodyWrites)]: false,
  [Symbol(kUniqueHeaders)]: null
},
response: {
  status: 403,
  statusText: 'Forbidden',
  headers: [Object [AxiosHeaders]],
  config: [Object],
  request: [ClientRequest],
  data: '<!DOCTYPE html>\n' +
    '<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->\n' +
    '<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->\n' +
    '<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->\n' +
    '<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->\n' +
    '<head>\n' +
    '<title>Attention Required! | Cloudflare</title>\n' +
    '<meta charset="UTF-8" />\n' +
    '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\n' +
    '<meta http-equiv="X-UA-Compatible" content="IE=Edge" />\n' +
    '<meta name="robots" content="noindex, nofollow" />\n' +
    '<meta name="viewport" content="width=device-width,initial-scale=1" />\n' +
    '<link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/cf.errors.css" />\n' +
    `<!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" /><![endif]-->\n` +
    '<style>body{margin:0;padding:0}</style>\n' +
    '\n' +
    '\n' +
    '<!--[if gte IE 10]><!-->\n' +
    '<script>\n' +
    '  if (!navigator.cookieEnabled) {\n' +
    "    window.addEventListener('DOMContentLoaded', function () {\n" +
    "      var cookieEl = document.getElementById('cookie-alert');\n" +
    "      cookieEl.style.display = 'block';\n" +
    '    })\n' +
    '  }\n' +
    '</script>\n' +
    '<!--<![endif]-->\n' +
    '\n' +
    '\n' +
    '</head>\n' +
    '<body>\n' +
    '  <div id="cf-wrapper">\n' +
    '    <div class="cf-alert cf-alert-error cf-cookie-error" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div>\n' +
    '    <div id="cf-error-details" class="cf-error-details-wrapper">\n' +
    '      <div class="cf-wrapper cf-header cf-error-overview">\n' +
    '        <h1 data-translate="block_headline">Sorry, you have been blocked</h1>\n' +
    '        <h2 class="cf-subheadline"><span data-translate="unable_to_access">You are unable to access</span> boris.sh</h2>\n' +
    '      </div><!-- /.header -->\n' +
    '\n' +
    '      <div class="cf-section cf-highlight">\n' +
    '        <div class="cf-wrapper">\n' +
    '          <div class="cf-screenshot-container cf-screenshot-full">\n' +
    '            \n' +
    '              <span class="cf-no-screenshot error"></span>\n' +
    '            \n' +
    '          </div>\n' +
    '        </div>\n' +
    '      </div><!-- /.captcha-container -->\n' +
    '\n' +
    '      <div class="cf-section cf-wrapper">\n' +
    '        <div class="cf-columns two">\n' +
    '          <div class="cf-column">\n' +
    '            <h2 data-translate="blocked_why_headline">Why have I been blocked?</h2>\n' +
    '\n' +
    '            <p data-translate="blocked_why_detail">This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.</p>\n' +
    '          </div>\n' +
    '\n' +
    '          <div class="cf-column">\n' +
    '            <h2 data-translate="blocked_resolve_headline">What can I do to resolve this?</h2>\n' +
    '\n' +
    '            <p data-translate="blocked_resolve_detail">You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.</p>\n' +
    '          </div>\n' +
    '        </div>\n' +
    '      </div><!-- /.section -->\n' +
    '\n' +
    '      <div class="cf-error-footer cf-wrapper w-240 lg:w-full py-10 sm:py-4 sm:px-8 mx-auto text-center sm:text-left border-solid border-0 border-t border-gray-300">\n' +
    '  <p class="text-13">\n' +
    '    <span class="cf-footer-item sm:block sm:mb-1">Cloudflare Ray ID: <strong class="font-semibold">7fec5aabcfb8d363</strong></span>\n' +
    '    <span class="cf-footer-separator sm:hidden">&bull;</span>\n' +
    '    <span id="cf-footer-item-ip" class="cf-footer-item hidden sm:block sm:mb-1">\n' +
    '      Your IP:\n' +
    '      <button type="button" id="cf-footer-ip-reveal" class="cf-footer-ip-reveal-btn">Click to reveal</button>\n' +
    '      <span class="hidden" id="cf-footer-ip">                                                      </span>\n' +
    '      <span class="cf-footer-separator sm:hidden">&bull;</span>\n' +
    '    </span>\n' +
    '    <span class="cf-footer-item sm:block sm:mb-1"><span>Performance &amp; security by</span> <a rel="noopener noreferrer" href="https://www.cloudflare.com/5xx-error-landing" id="brand_link" target="_blank">Cloudflare</a></span>\n' +
    '    \n' +
    '  </p>\n' +
    '  <script>(function(){function d(){var b=a.getElementById("cf-footer-item-ip"),c=a.getElementById("cf-footer-ip-reveal");b&&"classList"in b&&(b.classList.remove("hidden"),c.addEventListener("click",function(){c.classList.add("hidden");a.getElementById("cf-footer-ip").classList.remove("hidden")}))}var a=document;document.addEventListener&&a.addEventListener("DOMContentLoaded",d)})();</script>\n' +
    '</div><!-- /.error-footer -->\n' +
    '\n' +
    '\n' +
    '    </div><!-- /#cf-error-details -->\n' +
    '  </div><!-- /#cf-wrapper -->\n' +
    '\n' +
    '  <script>\n' +
    '  window._cf_translation = {};\n' +
    '  \n' +
    '  \n' +
    '</script>\n' +
    '\n' +
    '</body>\n' +
    '</html>\n'
}

}, code: 403, response: '<!DOCTYPE html>\n' + '\n' + '\n' + '\n' + ' \n' + '\n' + 'Attention Required! | Cloudflare\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + <!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" /><![endif]-->\n + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + '

\n' + ' \n' + '
\n' + '
\n' + '

Sorry, you have been blocked

\n' + '

You are unable to access boris.sh

\n' + '
\n' + '\n' + '
\n' + '
\n' + '
\n' + ' \n' + ' \n' + ' \n' + '
\n' + '
\n' + '
\n' + '\n' + '
\n' + '
\n' + '
\n' + '

Why have I been blocked?

\n' + '\n' + '

This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.

\n' + '
\n' + '\n' + '
\n' + '

What can I do to resolve this?

\n' + '\n' + '

You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.

\n' + '
\n' + '
\n' + '
\n' + '\n' + ' \n' + '\n' + '\n' + '
\n' + '
\n' + '\n' + ' \n' + '\n' + '\n' + '\n' }`

tthma commented 1 year ago

@Gabin85 erreur 403 Même problème accès refusé par le site....

C'est dingue ça alors que ça fonctionne nickel chez moi

Je vais essayer de faire une mise a jour vite fais

J'ai juste changé le header comme indiqué sur le GitHub de bokub je me dis que c'est ça qui a foutu le bordel

tthma commented 1 year ago

Voilà 1.0.9

Gabin85 commented 1 year ago

Toujours la même erreur 😅

tthma commented 1 year ago

Bas alors là je ne vois pas C'est le site de bokub qui vous a bloqué pour je ne sais quelle raison.

Est-ce que son outils en ligne de commande fonctionne ?

Sinon voir avec lui pourquoi vous êtes bloqué c'est bizzare ça

tthma commented 1 year ago

Sinon voir à désactiver le plugin dans homebridge pour qu'il arrête de faire des appels au site et ressayer plus tard pour voir si le site vous deban automatiquement au bout d'un moment

Gabin85 commented 1 year ago

Je vais essayer en ligne de commande et perso je le désactive à chaque fois car Je sais que Je m’étais fait avoir la dernière fois et Je m’étais fait ban

tthma commented 1 year ago

Peut être en demandant à nouveau un token différent ?

Gabin85 commented 1 year ago

Je viens d'essayer en ligne de commande et même problème, je vais essayer avec un nouveau token

Gabin85 commented 1 year ago
image

bon bah... j'espère me faire deban rapidement

tthma commented 1 year ago

Faut lui faire un mail je pense que ça sera mieux

Gabin85 commented 1 year ago

J'ai essayé en 5G j'y avais accès et aucun problème donc ban ip, et je me suis rappelé que dans l'espace client d'Orange y a un bouton pour renouveler son IP, je l'ai fait et c'est bon j'y ai est re accès, je vais re essayer le plugin là

Gabin85 commented 1 year ago

J'ai mis début aout en date et là c'est bon ça fonctionne ! Merci en tout cas

Gabin85 commented 1 year ago

Petit retour, j'ai cette erreur après un certain temps : `<--- Last few GCs --->

[140:0x52cee40] 678354 ms: Scavenge 886.6 (961.9) -> 884.2 (964.4) MB, 12.0 / 0.0 ms (average mu = 0.971, current mu = 0.939) allocation failure; [140:0x52cee40] 678428 ms: Scavenge 889.1 (964.4) -> 886.7 (967.2) MB, 12.7 / 0.0 ms (average mu = 0.971, current mu = 0.939) allocation failure; [140:0x52cee40] 678658 ms: Mark-sweep 891.7 (967.2) -> 889.0 (973.2) MB, 169.5 / 0.0 ms (average mu = 0.950, current mu = 0.866) allocation failure; scavenge might not succeed

<--- JS stacktrace --->

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory`

Je précise que j'ai un raspberry pi 4 avec 4go de RAM donc bon... j'ai essayé de réduire la date de départ mais toujours cela

tthma commented 1 year ago

J'ai 4Go de dispo et pas de problème sur mon raspbery.

Ça fait depuis le début de semaine qu'il tourne.

J'avais déjà eu ce problème de heap quand j'avais gonflé artificiellement la mémoire tampon.

A voir si après redémarrage complet vous avez toujours ce problème.

Est-ce que l'es infos remonte bien et le plugin ne tourne pas en boucle infini ?

tthma commented 1 year ago

De plus j'ai mis 01/01/2023 en date de début j'ai pas eu de souci non plus.

Peut être ajouter un paramètre de taille maxi de mémoire tampon dans le fichier config du plugin pour les petite config raspbery

Gabin85 commented 1 year ago

Après un redémarrage, à chaque fois j'ai ça, et après j'ai toutes les données de l'API qui remontent mais sur l'app EVE ça n'a pas l'air de s'améliorer (il bloque) et j'ai surveille la RAM il doit rester 1Go de disponible quand ça plante (j'ai pas mal de chose qui tourne sur mon pi) [8/31/2023, 6:44:04 PM] [Linky Meter] Reset Detected From EVE App must Restart HomeBridge [8/31/2023, 6:44:04 PM] [Linky Meter] Cleaning... [8/31/2023, 6:44:04 PM] [Linky Meter] ** Fakegato-storage delete FS file: /var/lib/homebridge/14357308144122.json [8/31/2023, 6:44:04 PM] [Linky Meter] Error: Error writing history must reset at /homebridge/node_modules/homebridge-linky-enedis-meter/index.js:339:10 at new Promise () at EnergyMeter.updateState (/homebridge/node_modules/homebridge-linky-enedis-meter/index.js:330:20) at listOnTimeout (node:internal/timers:569:17) at processTimers (node:internal/timers:512:7)

tthma commented 1 year ago

Reset Detected From EVE App must Restart HomeBridge

Ça ça veux dire que le bouton réinitialiser les valeurs a été cliqué.

Error: Error writing history must reset

Ça veux dire que le fichier tampon de mémoire est corrompu.

Je verrais demain pour refaire une mise à jour en ajoutant un paramètre de taille de mémoire tampon Et en corrigeant la gestion du fichier corrompus.

Je pense que le plugin détecte que le fichier est corrompu et essaye sans cesse de le lire ce qui gave le heap vue qu'il a pas le temps de dispose correctement la mémoire.

J'avoue que java je maîtrise pas à 100%

Essayez par étape. Supprimer manuellement les mesures dans eve.

Supprimer le fichier "numéro de compteur linky".json sur le raspbery directement.

Redémarrer homebridge et laisser tourner le bousin.

tthma commented 1 year ago

J'ai ouvert une autre issue faut répondre sur celle là parce que c'est plus un problème de refreshtoken