Donnée production inchangé depuis hier

Bonjour Bison,

Je suis en train de régler les paramètres de mes données venant de l’API de SolCast, et donc fait un relevé journalier.
Je prenais les données du jour, sur l’équipement global (pour rappel j’ai 3 « orientations » (2 orientations, et 2 pentes sur 1 des orientations)). Quand j’ai remarqué que les données de production (que je n’ai que pour l’ensemble des panneaux, et pas par « orientation » sont celles d’hier :


Au début, je me suis demandé comment il pouvait y avoir des données après 16h, vu qu’il n’est pas encore 17h, puis j’ai comparé avec mon relevé d’hier, et compris que ce sont les valeurs d’hier.
Les prévisions évolutive et à 6h sont bien le cumul des différents équipements d’aujourd’hui

Bonjour Puig,

Quelle est ta version ?

Tu n’aurais pas des logs ?

Evidemment, que j’ai ceci, mais ça aurait été bien trop intelligent que je les donne avant :smiley:

Version :

Les logs (debug, et tout ce qui est encore affiché) : 0000|[2023-09-19 16:45:53]DEBUG : getInformations cfg_api_key (length) : 32000 - Pastebin.com (beaucoup trop de caractère pour ce que voulait accepter le forum)

Bon, alors la bonne nouvelle c’est que je sais ce qu’il se passe.

La mauvaise c’est que je ne sais pas tellement encore comment régler ce petit soucis.
Dans le principe et sans rentrer dans les détails du pourquoi, pour faire certains traitement, j’utilise le fait de savoir si on est sur la 5eme minute de l’heure (pour ici calculer la PROD).

0410|[2023-09-19 17:06:17]INFO : // Début du traitement du site Global  Total PV //
0411|[2023-09-19 17:06:17]DEBUG : Global - PROD Index Command Found - [Entrée][Passerelle Enphase][Prod MES] = 480304

Et là … le traitement n’arrive qu’à xxh06 … du coup il ne se passe rien.

Basiquement je dirais que si ça fonctionnait avant, tu as un truc qui prend plus de ressources qu’auparavant et qui provoque ce décalage … mais faudrait que je trouve comment régler ça … sauf que ça va pas être très pratique

EDIT : Je viens de voir ton autre sujet, du coup j’ai compris ce qui avait été modifié, tu as ajouté un équipement au moins et ça prend trop de temps :laughing:

Astuce : Tu pourrais essayer de mettre un sleep(5) plutôt que sleep(15) sur la ligne 80 du fichier solcast.class.php ?

Je viens de mettre ce sleep(5) en place. Ca sera effectif dès la prochaine heure, et donc toutes les données de production du jour seront corrigées (j’en doute), ou demain au fur et à mesure demain (ce que je pense plus raisonnable) ?

Et effectivement, la seule différence, c’est l’équipement que j’ai dupliqué pour qu’il y en ait désormais 1 de plus.

Oui … c’est le choix n°2 car c’est à chaque heure qu’il fait une différence d’index.

Je dirais que tu vas même avoir droit à un bon vieux pic à 19h05, tu me diras.

Bon,

à 8h30, il y a déjà toute la production de ce jour :


Donc, ça n’a pas été la bonne solution :thinking:
Et dans les logs, le traitement de la production se fait toujours à la 6ème minute :

0354|[2023-09-20 08:06:16]INFO : // Début du traitement du site Global  Total PV //
0355|[2023-09-20 08:06:16]DEBUG : Global - PROD Index Command Found - [Entrée][Passerelle Enphase][Prod MES] = 482492

Pourquoi vouloir être la 5ème minute ?
Est-ce que être > 5ème minute ne suffirait pas ?

La courbe s’arrêtant à 18h… Je n’ai rien vu hier soir. Mais bon, pas certain que j’aurai vu quelque chose en soit.

Vers 8h50, j’ai changé tous les sleep(15) en sleep(5) (il y en a 3 dans le code),

Voici ce qui m’est désormais affiché :


Donc, il y a bien le pic. Et je pense que les reste des données, sont celle qui étaient déjà enregistré, vu qu’il n’a pas vu « 0h05 », il n’ pas tout remis à 0.

Et dans les logs :

0408|[2023-09-20 09:05:27]INFO : // Début du traitement du site Global  Total PV //
0409|[2023-09-20 09:05:27]DEBUG : Global - PROD Index Command Found - [Entrée][Passerelle Enphase][Prod MES] = 482980

Donc, ça se passe bien comme ça.

Parce qu’il se passe des choses à xxh45 (pour récupérer les data de l’API SolCast).

J’ai été trop vite alors pour les sleep, je regarderai pour passer à sleep(5) de partout, ça permettra de pas avoir à démolir tout le code :+1:.

Et effectivement il n’y a pas eu de remise à zéro cette nuit pour la même raison.

Je suis en train de tester quelque chose, j’ai remis tout à sleep(15), et à 10h, le plugin n’a pas mis à jour les données de production, car il était 10h06 au moment de le faire.

Puis j’ai mis en place des nouveaux paramètres de configuration pour vérifier si l’équipement a déjà été joué à cet horaire là, et lancé non plus à $minutes_en_cours == '05' mais à $minutes_en_cours >= '05'. Ca a bien fonctionné à 11h06, à voir pour les prochaines heures si ce sera encore bon, et pour le reset à >0h05.

Par contre, vu que le dépôt du plugin solcast est caché, je ne peux pas te proposer de PR pour que tu puisse tester aussi. Du coup, as-tu une idée de comment je peux t’envoyer ma proposition ?

Le problème c’est que ça va aussi le faire à xxh45 et que j’avais prévu que les données de production soient misent à jour après l’heure. Ça commence à faire un moment donc je n’ai pas en tête l’ensemble des effets de bord. Peut-être que ce n’est pas plus gênant que ça…

Après le plus simple reste de changer les sleep. De mémoire j’avais juste mis 15 pour que ce soit plus facile à lire dans les logs… donc devrait pas y avoir d’impacts à rester à sleep 5 voir moins.

Je viens de lancer sur une 2ème VM une « copie » de mon installation SolCast, en gardant ton code initial (version Beta) et en changeant les 3 sleep(15) seulement.
Ainsi je pourrais voir si ma proposition d’évolution a des effets de bords.

Je te tiendrai informé. Mais je pense qu’il faut laisser au moins la journée entière de demain pour voir si tout se déroule correctement.

1 « J'aime »

Tu sollicites l’API ou tu utilises la méthode de contournement ? Parce que si API ça va faire trop de requêtes :face_with_hand_over_mouth:

Je contourne, bien évidemment :smiley:
Même si j’ai laissé les réglages (nb de requête, …) pour pouvoir n’utiliser que l’API (si pas de duplication comme j’ai fait là…)

Bon, mes modifications n’ont pas été vraiment bonnes. Il faudrait que je creuse plus pour voir où ça pêche.
Bref, en attendant, j’ai remplacé les sleep(15) par des sleep(1), et ça fonctionne bien.

Si c’est juste pour les logs, pourquoi ne mets-tu pas un truc du genre ?

log::add(__CLASS__, 'debug', '##########---------------------------------##########');

entre chaque équipement (à la place des sleep(15)), comme ça, ça ressort assez bien dans les logs et tu peux rapidement voir les différentes zones.

OK merci pour retour @Piug je mettrais 2 secondes pour la forme. Probablement vendredi soir ou samedi

1 « J'aime »

Hello,

Voilà, corrigé en bêta : Plugin SolCast - Actualités - #46 par Bison

Je me souviens maintenant pourquoi j’avais fait ça.
Je me retrouvais parfois avec les logs d’affichages du template qui n’étaient pas en un bloc parce que les logs de l’équipement suivant avaient démarrés.

Bon c’est pas méchant mais quand on analyse c’était pas facile de s’y retrouver.

C’est pas bien grave … j’ai passé les pause à 2 secondes comme prévu

Merci pour la mise à jour :+1:t2:

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.