Utilisation de la commande 'Heure de démarrage en fonction de la durée demandée'

Bonjour,
Je rencontre un problème avec la commande ‹ Heure de démarrage en fonction de la durée demandée › sur mon équipement Global.
Pour exemple, à 14h25 je recherche un créneau horaire de 5 heures (300mn) pour 1200W, créneau impossible au vu de la production estimée:


La réponse est possible à 14h30, soit une fin à 19h30 (j’aimerais bien que ce soit vrai :wink: )

Et si je fais la même requête sur les équipements associés, la réponse est bien ‹ no proposal ›.

Serait-ce un ‹ bug › de cette commande avec un équipement Global, y a-t-il quelque chose que je ne comprends pas… Merci de votre aide :slightly_smiling_face:

Salut,

Merci pour ton message.

Je regarderai mais probablement pas ce week-end.

Bison

Bonjour,

Alors en effet je pense qu’il y a quelque chose qui ne va pas. Comme il y a beaucoup de PROD dans le début de la plage horaire cela suffit à « compenser » le manque sur la fin de la plage.

Je vois grosso-modo comment ajuster ça mais j’ai un soucis avec mon environnement de dev actuellement en beta 4.4.18 : le listener ne se déclenche plus donc je n’ai plus du tout de retour.

Pour l’heure je vois pas bien d’où vient le soucis … je vais essayer de monter en beta 4.5 en espérant que ce ne soit pas trop impactant pour avancer.

1 « J'aime »

Bonjour,

Je viens de pousser une nouvelle version bêta, tu pourras me faire un retour stp ?

Bison

Bonjour @Bison,
Voici mes prévisions de production:

Et voici 3 essais pour 3, 4 et 5 heures souhaitées avec 1200W:

Je ne sais pas comment tu fais la recherche du créneau. Mais à priori, je devrais être en-dessous des 1200W entre 17h et 18h, soit environ 2h30 à partir de 15h :wink:

Je reste en beta pour un prochain test :blush:

Est-ce que tu peux me montrer ce qui est là dans la configuration, passer les logs en debug et m’envoyer (dans la balise qui va bien) le contenu à partir de l’heure où le scénario a tourné ?

Je n’ai rien mis dans ce champ « Calcul… démarrage ». Voici le log:
solcast_champ VIDE.txt (14,2 Ko)

J’ai fait 2 autres tests avec le Champ à « le plus tôt dans la journée » et " le plus tard".
Comme nous sommes en fin de journée, j’ai fait une recherche pour une puissance de 100W sur 2 heures (pour l’exemple).
PLUS TOT:


solcast_PLUS TOT.txt (18,9 Ko)

PLUS TARD:


solcast_PLUS TARD.txt (18,9 Ko)

Je n’ai pas regardé les différences dans les logs, mais le résultat est le même avec un créneau proposé entre 17h10-19h10 (la prévision est en-deçà dès 19h)

Hello,

J’ai poussé une nouvelle bêta, tu peux voir si c’est mieux ?

Hello @Bison,
J’ai choisi " le plus tôt dans la journée" et des différents tests, j’ai l’impression que les résultats sont meilleurs:+1:
Mais il reste un ‹ réglage › sur ce test de recherche d’un créneau de 80mn pour 1200W:


solcast.txt (10,5 Ko)

Avec des prévisions affichant une estimation de production de 1603W à 17h, j’aurais du avoir une proposition vers 15h40.

En tout cas, Merci @Bison du temps passé pour résoudre ce problème :wink:

En effet, bien vu, j’aurais du t’appeler quand je voulais mettre cette fonctionnalité en place, tu aurais indéniablement été un bon testeur :smile:

Je me suis bien cassé la tête pour trouver le bon algorithme et je n’avais pas assez testé à l’évidence.

J’ai vu le problème, j’ai été un cran trop loin dans le parcours des index pour vérifier les valeurs et dans cet exemple ça a pris la tranche 17h → 17h10 (qui elle n’est plus bonne).

Je corrigerais en fin de journée, avec un autre problème que j’ai vu au passage.

Ah oui, tu vas pouvoir aussi changer le titre parce que le problème était exactement le même pour les équipements non globaux.

1 « J'aime »

@micheld, voilà nouvelle bêta publiée

bêta pas encore accessible :blush:

Ah, je l’ai pourtant installée sur mon environnement de prod juste après l’avoir publiée pourtant

c’est bon :wink: peut être qu’un CTRL F5 (de ma part) aurait évité cet échange :upside_down_face:
Je regarderai demain. Merci :blush:

1 « J'aime »

Bonjour @Bison,


Ce matin, je n’ai pas pu faire de tests sur les valeurs horaires de production montantes et descendantes.

Sur les tests de cet après-midi, je constate 2 choses:

  • la dernière tranche horaire n’est pas prise en compte dans la recherche du créneau. Par exemple, en recherchant un créneau de 130 et 140mn pour 1000W, le résultat : OUI pour 130mn (soit la période 14h30-17h) et NOK pour 140mn, alors que ces 1000W approcheraient les 17h30 (en considérant une décroissance linéaire de puissance entre 17h - 1390W et 18H - 570W). On aurait du ainsi être OK aux alentours des 180mn (14h30-17h30).


    solcast.txt (51,9 Ko)

  • La pause de 2 secondes -mise dans le scénario entre l’envoi de la demande (event) et le test de résultat - influence le résultat. Pour exemple, une demande de 1000W sur 140mn:


    Avec la pause, le résultat est juste (puisque impossible) à contrario du retrait de cette pause dans le scénario. A priori, on garderait le contenu de la précédente demande.

A ta dispo pour d’autres tests :wink:

Salut,

Là on atteint la limite de ce que j’ai mis en place. Je ne me suis pas lancé dans les calculs avec des courbes de décroissance (ou de croissance). Je coupe la plage en 6 pour faire des paquets de 10mn. Donc en effet, il y a une « rupture » à chaque changement d’heure.

Je ne pense pas pousser le bouchon plus loin mais si quelqu’un veut se lancer :slight_smile:

Là par contre c’est pas possible … la pause est juste là pour laisser le temps au plugin de faire le calcul et de renvoyer le résultat dans la commande.

Regarde dans les logs à 14:14:28, il est très probable que tu es eu un « no proposal » mais que ton scénario est indiqué 1520 car c’était le résultat d’un test précédent.

Merci de ta réponse @Bison :blush:
Pour la pause, on dit la même chose :slightly_smiling_face: car sans cette pause, le plugin est en cours de calcul. Et comme, l’event n’est pas bloquant pour le scénario, le test suivant récupère la précédente recherche.

Sinon, avec ton commentaire sur la division / 6 des productions horaires et des logs, je comprends ta ligne « array_pv_10mn_temp » où on retrouve cette découpe (linéaire !) en pas de 10mn.
Avec ce même principe de découpe / 6, voici comment j’arrive à une différence de 20mn:


Le principe :

  • Pour chaque tranche horaire, on divise par 6 la différence entre les valeurs horaires, par ex. (Prod 15h - Prod 14h)/6. Ainsi, par tranche horaire, on a une valeur positive ou négative (notée Intermédiaire XX pour l’explication).
  • Pour chaque début de tranche horaire, on additionne la valeur de l’heure précédente à sa valeur intermédiaire (par ex. Valeur ‹ tranche 13h-14h à 00mn › = Valeur ‹ tranche 12h-13h à 00mn › + Valeur Intermédiaire ‹ tranche 13h-14h ›)
  • Et pour les 5 pas de 10mn de cette tranche horaire, on additionne la valeur ci-dessus à sa valeur intermédiaire (par ex. Valeur ‹ tranche 13h-14h à 10mn › = Valeur ‹ tranche 13h-14h à 00mn › + Valeur Intermédiaire ‹ tranche 13h-14h ›)

J’espère que mon explication sera plus claire dans l’image :upside_down_face:

Cela pourrait faire gagner quelques dizaines de minutes voire rendre un créneau possible, surtout si la production estimée sur une heure donnée est juste en-dessous de la puissance demandée (par ex. puissance estimée de 990W à 18h pour 1000W souhaités).

Je ne sais ce que tu en penses…

Ce qui est certain est que cette commande que tu as inventé est utile :+1:

Pour l’histoire, je cherche à optimiser mes conso gaz/électricité pour que ma PAC chauffe uniquement lorsque la production estimée le permet en autoconsommation.
Ainsi, un scénario recherchera le plus long créneau possible pour une puissance donnée, avec un minimum de temps imposé afin qu’il n’y ait pas des mises en route de la PAC de ‹ quelques minutes ›.

D’où l’importance pour moi d’avoir le maximum de minutes proposées pour (essayer !) de rentabiliser ce fonctionnement et donc mes questions/présentation d’un calcul :blush:

En effet c’est plutôt une bonne idée. En procédant comme ça, on effacerait pas mal la rupture un peu brutale entre chaque tranche horaire.

Je regarde pour modifier le code dès que je peux, au moins pour récompenser tes efforts :laughing:

EDIT ; @micheld en fait il y a un truc qui va pas parce qu’ici ta répartition par tranche de 10mn est trop importante.

Entre 14h et 15h00 il est prévu 2484 Wh (CM4)
Entre 14h et 14h10 il ne peut pas y avoir 2457 Wh (CH12)

Il faudrait tomber sur des valeurs proche de 414 Wh

J’ai mis en place en redivisant le résultat par 6 pour retomber sur des quantités en Wh toutes les 10mn mais c’est pas la bonne façon de faire. Je continuerai d’y réfléchir mais je fais pas le bon calcul là (et faut que j’aille bosser).

[2024-10-22 08:44:12] DEBUG  [SolCast G] /SearchBestTimeStart val : 88 Wh
[2024-10-22 08:44:12] DEBUG  [SolCast G] /SearchBestTimeStart val_next_hour : 347 Wh
[2024-10-22 08:44:12] DEBUG  [SolCast G] /SearchBestTimeStart ventiled_value : 43 Wh
[2024-10-22 08:44:12] DEBUG  [SolCast G] /SearchBestTimeStart $array_pv_10mn_temp[$] : 22 Wh
[2024-10-22 08:44:12] DEBUG  [SolCast G] /SearchBestTimeStart $array_pv_10mn_temp[$] : 29 Wh
[2024-10-22 08:44:12] DEBUG  [SolCast G] /SearchBestTimeStart $array_pv_10mn_temp[$] : 36 Wh
[2024-10-22 08:44:12] DEBUG  [SolCast G] /SearchBestTimeStart $array_pv_10mn_temp[$] : 43 Wh
[2024-10-22 08:44:12] DEBUG  [SolCast G] /SearchBestTimeStart $array_pv_10mn_temp[$] : 51 Wh
[2024-10-22 08:44:12] DEBUG  [SolCast G] /SearchBestTimeStart $array_pv_10mn_temp[$] : 58 Wh

A l’origine je répartissais 88/6 = environ 15 Wh

Et ici : 22+29+36+43+51+58=239

Bonjour @Bison,
Peut être que j’ai pas bien compris le tableau des prévisions :slightly_smiling_face:
Voici comment je l’interprète.

  • Pour le créneau 14h-15h de la journée d’hier, j’ai les estimations de 2351Wh à 14h et 2484Wh à 15h.
  • Le pas 10mn de ce créneau 14h-15h est de (2484-2451)/6 = (5,5Wh (valeur arrondie à 6 dans le tableau)
  • A 14h10, j’aurais (devrais avoir !) 2351 + 5,5 = 2356,5Wh
  • A 14h20, 2356,5+5,5 = 2462Wh etc jusqu’à 15h (2484Wh)
  • A 15h00, je recalcule le pas 10mn du créneau 15h-16h (2102-2484)/6 = -63,67Wh (arrondie à -64Wh dans le tableau)
  • A 15h10, 2484+ (-63,67) = 2420,33Wh etc jusqu’à 16h (2102Wh)

En fait, j’ai un pas de 10mn pour chaque tranche horaire que j’additionne 6 fois pour couvrir l’heure concernée.

En considérant une production possible entre 7h-21h (on peut rêver !), j’aurai donc 14 pas de 10mn et donc 6x14 = 84 puissances de 10mn pour une journée de production.

PS: histoire d’alléger les calculs, ces 84 puissances pourraient être calculé qu’une seule fois sur la prévision de 6h. C’est surtout impactant si on recherche le plus long créneau horaire. Ainsi, le scénario va lancer des tests pour un créneau de 5h, puis 4h50, puis 4h40… pour finir à 1h. Le plugin va recalculer 25 fois les 84 valeurs pour rien :upside_down_face:

Après, je teste uniquement si la puissance souhaitée est inférieure ou égale à chacune des 84 puissances de 10mn pour définir (si possible) un créneau pouvant accueillir la puissance souhaitée sur la période donnée (par ex. 300;1200).

Comme tu le dis, çà évite une ‹ rupture › entre les tranches horaires et permet ainsi d’agrandir la zone de recherche :wink:

Tu avais 2451 Wh à 14h d’après les logs, ça correspond à la prévision de production sur la tranche 13h-14h

Du coup c’est plutôt « A 13h10, j’aurais (devrais avoir !) 2451 + 5,5 = 2456,5Wh »

Et c’est là où c’est pas bon parce qu’il faut découper en quantité d’énergie produite sur 10mn
Entre 13h et 14h tu devrais produire 2451 Wh
Donc entre 13h et 13h10, grosso modo tu devrais produire 408,5 Wh (2451/6).

Il faudrait donc trouver un moyen de pondérer ce 408,5 Wh en regardant la prévision de l’heure suivante pour savoir s’il faut augmenter un peu ou diminuer un peu.