bokub / linky

🔌 CLI tool to retrieve Linky smart meters data
GNU General Public License v3.0
226 stars 22 forks source link

Bloqué par Cloudflare #58

Closed iamnague closed 1 year ago

iamnague commented 1 year ago

J'utilise le module.js en v2 depuis 1 semaine avec 3 abonnements. J'ai une crontab toutes les 3h. Depuis vendredi dernier, le module renvoie une erreur Cloudfare: Sorry, you have been blocked - You are unable to access, etc. J'ai désactivé pendant 12h la crontab, mais l'erreur persiste. Comment faire pour ne plus être blacklisté ? Quelles sont les limites à ne pas dépasser ? PS: je trouve aussi des erreurs Enedis 500 dans mes logs pour vendredi, il y a peut-être eu un effet d'emballement avec un retry toutes les 5min.

bokub commented 1 year ago

Hello,

En effet, les serveurs d'Enedis renvoient des erreurs 500 depuis samedi matin, mais rien vendredi.

Peux-tu me communiquer le dernier nombre de ton adresse IP afin que je vérifie le blocage s'il te plaît ?

iamnague commented 1 year ago

Hello, Merci pour ton aide. C'est .72. J'ai pu me tromper sur l'horodatage, je vais revérifier.

bokub commented 1 year ago

Effectivement, j'ai reçu 6739 appels de ton IP rien que sur les journées de samedi et dimanche.

En voyant ça ce matin vers 8h (et non pas vendredi) je me suis permis de la bloquer car j'estime avoir été assez clair dans la documentation de Conso API:

Dans tous les cas, ne soyez pas égoïste et évitez toute requête non nécessaire. Tout abus pourra conduire à un blocage de votre adresse IP sans aucun avertissement préalable.

Je peux éventuellement la débloquer si tu corriges ton code, mais je préfère te prévenir qu'en cas d'abus, le prochain ban sera définitif. Je bosse gratuitement pour fournir un service de qualité et 100% gratuit au grand public, la moindre des choses c'est de faire un peu attention à ne pas gaspiller les ressources de mes serveurs, même par négligence

iamnague commented 1 year ago

Ok, j'accepte la sentence, mais comme on dit, on apprend en marchant, c'est la 1ère fois que je suis confronté à l'erreur Enedis 500 depuis le passage en v2, et oui, mon timer de 5min est bien trop court. De plus, j'ai fait le calcul, il y a un rapport 4 entre mes calculs et le nombre d'appels reçus, il faut que je comprenne pourquoi. Je vais donc rester mon code et le corriger. Si vous me permettez à nouveau d'accéder au service.

bokub commented 1 year ago

Oui je reconnais que j'ai le ban un peu rapide, mais il faut savoir que tu es loin d'être le seul à faire des boucles d'appels de la sorte, et que beaucoup laissent tourner leur script pendant des semaines voire des mois sans même s'en rendre compte ou me contacter.

Je viens de procéder au déblocage

Bonne journée !

bokub commented 1 year ago

Salut,

Je reçois encore trop de requêtes de ton IP même si c'est beaucoup moins que la dernière fois

Si je regarde les 24 dernières heures, tu envoies les mêmes requêtes toutes les 3 heures ce qui ne sert à rien ! Les données de ton Linky sont envoyées une fois par jour entre 6 et 9h, ça ne sert à rien de faire des requêtes à 18h, 21h ou minuit, ça n'aura pas changé !

Je vois que tu récupères les données quotidiennes et les courbes de charge de 2 PRM, donc 4 requêtes par jour devraient amplement suffire

Vu que tu utilises un crontab, je te conseille de changer le pattern pour un truc du genre 0 8 * * *

Merci de ta compréhension et bonne journée

iamnague commented 1 year ago

Salut, Je ne connaissais pas précisément la fenêtre quotidienne d'envoi des données Linky. Merci pour l'info. Je rencontre aussi beaucoup d'erreurs Enedis, erreurs que je n'arrive pas encore bien à gérer. Pour le moment, je contournais en relançant toutes les 3h. J'arrête donc de faire cela, je viens d'adapter mon code. Par contre, j'ai au moins 5 PRM à collecter en cible (avec des contrats différents). Est-ce toléré ? Merci pour ton aide, bonne journée.