Vérifier une variable qu'après 10 min

Bonjour,

J’aurais besoin d’un coup de main sur la mise en place d’un scénario SVP.

Je dispose de panneaux photovoltaïques ainsi que de batteries, et j’aimerai pouvoir chauffer mon ballon d’eau chaude avec. (ça fonctionne déjà mais j’aimerai améliorer la chose)

Le principe :

  • Enclencher la chauffe du ballon si mes batteries sont chargées à >70% → C’est ok ça marche
  • Arrêter la chauffe du ballon si mes batteries passent en dessous de <50% → C’est ok ça marche
  • Enclencher la chauffe du ballon après 22h20 → C’est ok ça marche
  • Arrêter la chauffe du ballon à 5h00 → C’est ok ça marche

J’aimerai rajouter le fait que si ma consommation de maison est < 3000w c’est que mon ballon est chaud et donc je n’ai plus besoin de maintenir la chauffe. Ca évite surtout toutes les nuits par exemple, les petits rebonds de chauffe qu’on a toutes les heures qui servent à rien.

Mon soucis est que je ne peux pas le regarder juste après avoir enclenché mon ballon, car il y a toujours un délai, et surtout que l’information de mes onduleurs est mise à jour toutes les 5 min.

L’idée serait donc que pour la première fois j’ai un délai de 10min d’attente, et qu’ensuite je regarde tout le temps (ou alors je laisse 10min, je suis pas à ça prêt). Mais que je ne relance pas le scénario de chauffe, sauf le lendemain

Voici ce que j’ai déjà fait.
Mer par avance


Salut

Tu peux t’inspirer de cela:

Mais il doit avoir plus élégant.

Antoine

Si je comprends, tu veux tester si ta conso de maison est inférieure à 3000w pendant au moins 10min pour être sûr que ton ballon ne chauffe pas ?

Si c’est le cas, j’utiliserai les valeurs sous condition (< 3000 pendant 10min) qui initie une commande virtuelle à 1.
Associé à un scénario qui repasse cette valeur à 0 dès que ça repasse au dessus de 3000.
Libre à toi ensuite de gérer cette commande info

Normalement

C’est pas tout à fait ça que je souhaite.
Je souhaite une fois que j’ai mis mon ballon en chauffe, que je regarde ma consommation 10min après pour voir combien je consomme.
Et non pas que je sois en dessous de 3000w pendant 10min

Je suis désolé j’ai pas compris comment ça peut m’aider :roll_eyes:

Du coup, tu rajoutes un DANS 10min dans ton scénario de démarrage de chauffe
Et à l’intérieur de ce DANS, un SI xx < 3000 Alors

Je t’avoue que c’est ce que j’avais en tête, mais je ne sais pas trop comment réagit jeedom par rapport à ça.
Est-ce que le DANS ou SLEEP « bloque » le scénario ou jeedom, et que ça aurait utilisé une ressource ram pour rien.
Mais je pense que tu as raison

Les deux ne fonctionnent pas du tout pareil.

Sleep attend la durée prévue (en secondes) pendant lesquelles ton scénario reste en cours d’exécution.
Dans programme un sous scénario qui doit s’exécuter plus tard (durée en minutes).

Y a plein de façons différentes de faire ce que tu veux faire.

Mais quand tu dis que t’a un refresh toutes les 5 minutes de ton onduleur, la conso élec est aussi dessus ou juste la prod ?

Le dans ne bloque rien du tout il planifié une tâche qui se lance dans 10min, sans conséquence sur le scénario en cours

Norbert

1 « J'aime »

La solution est bien le DANS

Pour répondre à ta question, mes onduleurs (j’en ai 2), m’envoient ce que je produis, ce que j’ai dans mes batteries, mais également si je prends sur le réseau.
J’ai ensuite ce que la maison consomme

image

Heu je comprend pas la …

Si tu fais un bloc DANS, ce dernier va se lancer une seule fois à chaque déclenchement du scénario.

Déjà il y a un truc qui ne va ps dans ton scénario, tu as des blocs A et des programmations multiples c’est inutile.

Avec un bloc A, ton scénario lorsqu’il se déclenche va programmer les sous scénarios aux heures qui sont dans ton bloc A. Or tu as plusieurs programmations horaires ce qui veut dire qu’à chaque fois ton scénario se déclenche, le scénario reprogramme tous les blocs A ce qui dans ton cas ne sert à rien.

Soit tu fais une programmation à base de blocs DANS ou A, soit tu fais des multiples déclencheurs horaires. Mais le mélange des deux bien qu’il marche est assez peu utile et mouline des sous blocs de scénario inutilement

J’ai pas trop compris ton message, mais voici ce que je viens de faire.
J’ai l’impression que ça correspond (à ce que j’ai en tête en tout cas)

La journée

  • Entre 11h et 19h, si batterie chargée à 70% et pas fin de chauffe → Je chauffe
  • Si batterie sous les 50% → J’arrête la chauffe
  • Dans tous les cas à 19h10 → J’arrête la chauffe

La nuit

  • A 22h20 → Je chauffe
  • A 5h → Dans tous les cas j’arrête

Subtilité si ballon fin de chauffe
Si je chauffe, toutes les 10 min:

  • Si je suis sous les 1500w → J’arrête la chauffe et bloque le redémarrage d’une chauffe si mes batteries sont >70%

Bonjour,

Bon et bien cette nuit ça n’a pas fonctionné.
Dans ma dernière partie, à savoir si je suis sous les 1500w, il n’est passé qu’une fois dans le bloc DANS 10min.
Sauriez vous pourquoi ?

Est-ce dû au fait que mon déclencheur (ballon en marche) n’a pas changé d’état et est resté à 1 ?

Bonjour,

C’est normal, il n’y a aucune boucle puisque rien ne re-déclenche ce scénario avant 05h00.
Le déclencheur n’est pas le bon : ce devrait être la puissance reportée par les onduleurs qui déclenche le test, et non pas l’état du chauffe-eau (qui ne change pas puisqu’aucune condition ne va le stopper…).

Ceci dit, il est compliqué à comprendre votre scénario…
Certes, ça fonctionne (la journée), mais comme le dit @Aurel, vous mélangez allégrement dans un seul scénario des déclenchements par programmations, états de la batterie, état du chauffe-eau, et de plus, vous rajoutez des programmations avec des blocs A…FAIRE et DANS…FAIRE.
C’est un peu lourd…
Mieux vaudrait décomposer un peu tout ça en plusieurs scénarios, avec leurs propres déclencheurs, et prévoir un lancement quotidien qui va programmer les actions à effectuer à heures fixes, non ?

2 « J'aime »

Voila ce qui ne me plait pas c’est le mélange de genre entre des multis programmations et des blocs A.
Sauf quelques rares exceptions la mélange des deux est rarement une bonne idée.
En général ce qu’il faut retenir c’est que quand on programme des blocs A, un seul déclencheur horaire est suffisant et recommandé.

Alors la effectivement y a deux écoles et celle dont tu parles c’est pas forcément la mienne …

Perso j’aime bien le scénario unique qui gère un peu tous les cas de figure plutôt que de décomposer en X scénarios, je trouve que c’est plus clair pour comprendre tous les cas de figure, comme l’a fait @michael.e

Par contre du coup ça peut se faire à condition de simplifier le tout.

Déjà je mettrais un seul déclencheur et pas 5 comme aujourd’hui : l’update de l’onduleur.

Donc à chaque actualisation de l’onduleur tu teste tous tes cas de figure possible :

Dans l’idée quelque chose du style

SI HEURE entre 11h et 19h
  SI batterie > 70%
  ALORS allumage chauffe
SINON SI HEURE entre 22h20 et 22h30
ALORS allumage chauffe
SINON SI ...

Du coup je pense que tu peux même te passer des variables avec ça car la je sais pas à quoi elles servent.

1 « J'aime »

Je comprends ce que vous me dites et je suis en phase avec vous.
J’ai fait des modifs cet après-midi et rien n’a fonctionné.

Je vais reprendre tranquillement demain et je pense que je vais l’imaginer comme un grafcet, mais mon soucis ceux sont les tempos qui n’en sont pas comme sur un automate.

Ma difficulté c’est que je ne peux pas prendre en compte ma valeur de mon onduleur en déclencheur car celle-ci n’est mise à jour que toutes les 5min (j’ai pas le choix)

Du coup, à part si j’ai pas compris, je vais être en dessous des 1500w, je vais lancer ma chauffe, mais le cycle suivant je vais de nouveau être en dessous des 1500w donc il va vouloir se couper. Alors que j’aurais dû attendre plus de 5 min

Ce n’est pas un souci en soit. Justement vu que les valeurs qui vont te servir à prendre des décisions ensuite sont les valeurs qui viennent de ton onduleur, se baser sur ce déclencheur ça fait sens pour moi.

Surtout que je ne sais pas comment est récupéré cette valeur, mais dans le cas où elle n’est pas mise à jour à un horaire bien précis (par exemple 22:05:36, 22:10:59, 22:16:02 …) autant attendre que la valeur soit réellement à jour plutôt que sa fréquence purement théorique.

Je pense que j’ai surtout mal expliqué :wink:

Ce n’est pas parce que ton scénario se déclenche toutes les 5 minutes que tu es obligé de te baser uniquement sur la dernière valeur.
Tu as un paquet de formules de calcul possibles dans les scénarios : https://doc.jeedom.com/fr_FR/core/4.4/scenario

Par exemple avec max(#[Maison][Conso Electrique][Puissance apparente]#,15 min) tu peux conditionner un SI pour savoir si le maximum de puissance consommée ces 15 dernières minutes est supérieur à une valeur (il faut que ta commande soit historisée pour cela).

Rien à voir mais vu que tu as coché la case solution sur ton post, attention ce dernier risque d’être fermé automatiquement. Décoche la case si tu veux continuer la discussion.

Merci pour tes messages et ton aide.
J’ai pas l’impression que ça puisse marcher avec les formules de types max etc… ou alors au contraire il faut que je regarde le min en me disant si je suis sous les 1500w sur les 15 dernières minutes, c’est ça l’astuce ?

Sinon je pensais le faire en mode grafcet.
Je fais tourner mon scénario toutes les 2 min, quand je chauffe je me met un petit compteur qui va faire un +1 à chaque lancement du scénario pour faire ça.


image

C’est du coup très certainement pas comme vous l’auriez fait.