Scénario avec une entrée et relais multiple

Salut, besoin d’un coup de pouce pour un scénario.
J’ai une réserve d’eau avec capteur de niveau.
Une pompe (qui puise dans la réserve ) associée à un relais.
Deux electrovanne : une associée au démarrage de l’arrosage automatique et l’autre sur le réseau d’eau de ville destinée à remplir la cuve quand plus d’eau de pluie dedans.
Le but est multiple.
D’une part l’electrovanne 1 relais à un timer, scénarios classique avec plage horaires.
D’autre part je voudrait que l’electrovanne 2 (relais 5) s’active et que la pompe (relais 4) s’eteigne quand le capteur d’eau envoie un signal (il ferme l’entrée quand il y a de l’eau et l’ouvre quand il n’y en a plus)
Est il possible de faire un scénario : quand le capteur s’active : allume l’électrovanne ET éteint le surpresseur? Ou bien dois je brancher l’electrovanne sur l’ipx en NC et le surpresseur en NO et je mets juste un on/off sur les deux relais?
D’autre part la gestion de l’arrosage sera par plage horaires. Si le niveau baisse en cours d’arrosage, est il possible d’interompre le timer, fermer la vanne et reprendre le timer lorsque le niveau remonte et que le capteur s’éteint?
Existe t’il’des fonctionnalité de « compteur de temps » sinon permettant de compter le temps passer à remplir la cuve pour relancer ensuite sur la même durée l’arrosage?
Merci pour vos retours!

Bonjour,

Je n’utilise pas les plages horaires (rien ne dépend d’une heure fixe chez moi :frowning:) mais à ma connaissance il n’est pas possible de changer la plage dynamiquement.

Je vous invite à consulter le compte à rebours variable sur le wiki qui va vous permettre de répondre à vos besoins (http://gce-electronics.com/wiki/index.php?title=Compte_à_rebours_variable).

Voici un joli scénario à décomposer en règles simples à mettre dans le bon ordre :

  1. Electrovanne sur relai 1 piloté par plage horaire : je sais pas faire, mais vous semblez savoir. Démarrer le compte à rebours (ajouter du nombre de secondes d’arrosage).
  2. Si capteur On relai 5 : niveau d’eau bas, remplissage
  3. Si capteur et compte à rebours actif Off relai 1 et Sortie virtuelle du compte à rebours : niveau d’eau bas, arrêt de l’arrosage
  4. Si non capteur Off relai 5 : niveau ok, fin de remplissage
  5. Si non capteur On Sortie virtuelle du compte à rebours. : redémarrage du compte à rebours
  6. Si Sortie virtuelle du compte à rebours OnOff relai 4 : synchronisation état actif du compte à rebours avec le relai de l’arrosage ( Si vous le sentez, vous pouvez confondre les 2).

Bon amusement,

1 « J'aime »

Il existe donc des compte à rebours; je vais aller sur le wiki.
Merci pour ce petit scénario; ca a l’air au poil. Si ca fonctionne, j’essayerai d’économiser 1 ou 2 lignes en couplant certaines choses.
Juste petit détails : en 3 et 4 pour le Non devant Capteur?

En 4 et 5 pardon…

J’ai supposé que le capteur (je suppose connecté à une entrée digitale) valait 1 (était vrai) quand il fallait remplir la réserve d’eau et 0 quand ce n’était pas nécessaire.

Donc en
4. Si le capteur renvoie l’info que le réservoir est plein, arrêt de l’électrovanne de remplissage
5. Si l’arrosage a été interrompu (le compte à rebours a été déclenché et le compteur n’est pas à 0) re-démarrage du compte à rebours
6. Si le compte à rebours est en cours, l’arrosage doit l’être aussi

Attention lors de la condensation des règles. Si on a une expérience de développement on a tendance à les considérer comme des if (condition) then (action) alors que ce n’est pas vraiment cela : si le résultat de l’évaluation de la condition change alors l’action est envisagée et si elle est applicable alors elle est déclenchée. A titre d’exemple une règle avec si R1 ou non R1 comme condition est toujours vraie et n’est donc jamais exécutée.

Ok. J’avais pas saisi le sens…
Je fais ca d’ici qq jours.
Avec le compte à rebours ça me prends 9 lignes de scénarios… mais c’est joli les scènes pour le compte à rebours!
Merci!

Tu disait que tu n’utilisais pas les timer; si tu dois déclencher une action ou une scène a une heure précise tu fais comment?
Il existe des conditions sur heures?

Bonjour,
les seules conditions horaires sont les timers. Pour IPX, Timer signifie Plage Horaire, , Pas Compte à rebours ni Chrono. Pour ces derniers il faudra créer des scenarii.
Après avoir créé votre plage horaire, vous pouvez l’inclure dans les évènements des scenario
exemple :
Si NON capteur(niveau bas) ET plageHoraire [ON] electrovanne

la cuve ne commence à se remplir que si le capteur signale un niveau bas pendant la plage horaire. Sinon, ça attendra l’occurence suivante de la plage horaire.
Si le remplissage doit se poursuivre en dehors de la plage, il faudra gérer le OFF sans condition de plage horaire
SI Capteur [OFF] Electrovanne.
Si le remplissage ne doit pas se poursuivre au delà de la plage, les conditions ON et OFF peuvent ête dans le même scenario
SI NON capteur ET PlageHoraire ON/OFF Electrovanne

cdt

2 « J'aime »

@Cob,

Je n’ai pas été capable d’écrire les règles de gestion fonctionnelles de mes volets dans le moteur de l’IPX (par ex. déclencher une action si température intérieure > température extérieure ou intégrer dans les règles des valeurs exogènes - hauteur du soleil-). Dès lors j’ai cantonné le rôle de l’IPX à une couche d’abstraction vis-à-vis du matériel (HAL).

Du coup, grâce aux API de l’IPX, mes règles fonctionnelles sont actuellement écrites en nodejs sur un Pi qui assure également la persistence des mesures dans une base de données sur un NAS. Pour les tâches récurrentes j’utilise donc cron.

Mais dans ton cas, je pense que tu as tout ce qu’il faut au niveau de l’IPX pour régler ton problème :slight_smile:

1 « J'aime »

Ok, j’ai compris l’essentiel.
Je viens de finir l’installation en dur, je passe aux scènes…

Voilà mon scenario
But : arrosage automatique par electrovanne (R7) avec surpresseur (R3, en NC) sur cuve d’eau qui possède un capteur de niveau (ED1, est à 1 lorsque niveau bas). L’arrosage automatique à une durée de 5mn gèrée par compte à rebours (compteur virtuel C2, VO1, VO2). Si la cuve est vide pendant l’arrosage : arrêt du compte à rebours, arrêt du surpresseur et démarrage de la vanne de remplissage (R5) jusqu’a remontée du niveau.

Démarrage du compte à rebours en fonction de la plage horaire et si niveau d’eau suffisant :

1.Plage horaires ON/OFF C2 (a 300 pour 5mn)
2.C2 ET Non ED1 ON/OFF VO2 Relais 7

Égrainage du compte à rebours

  1. Non VO1 ET VO2 ON décrément 1 C2 VO1

Arrêt du compte à rebours, arrêt du surpresseur et fermeture vanne d’arrosage, remplissage de cuve jusqu’à niveau suffisant

  1. ED1 ON/OFF relais 3 relais 5 (arrêt surpresseur et ouverture vanne si niveau bas)
  2. ED1 OFF VO2 (arrêt compte à rebours si niveau d’eau bas)

Fin du compte à rebours, arrêt arrosage

NON VO2 OFF relais 7

Y a t’il des incohérences pour vous?
L’ordre des scènes est il ok?

J’oublie de préciser, pour l’egrainage du compte à rebours
VO1 Ta : 0; Tb =1
VO2 Ta =0; Tb =0

Après relecture il me semble que je doive ajouter
Non ED1 ON VO2 pour réactiver le compte à rebours

Bonjour Cob,

L’ordre me semble bon. Pour simplifier les choses, je supprimerai V02, R7 pouvant avoir le même rôle (rien n’empêche de déclencher un arrosage en dehors des heures par incrément du compteur de compte à rebours). ce qui donnerait

1.1 Plage Horaire : … je sais pas :slight_smile: , mais OK pour démarrer la séquence par l’initialisation de C2 à 300
Plage horaire On C2=300

1.2 Gestion du relais d’arrosage : arrosage ssi compteur compte à rebours >= 1 et niveau d’eau suffisant
C2 = 1 et NON ED1 On/Off R7

2.1 Compte à rebours : décrément ssi arrosage en cours
Non VO1 et R7 On Décrément 1 C2, VO1

3.1 Gestion surpresseur / arrivée d’eau : ok mais faut-il que le surpresseur fonctionne en permanence si le niveau d’eau est suffisant, même si pas d’arrosage ?
ED1 ON/OFF relais 3 relais 5

Code superflu :
ED1 Off VO2
inutile car déjà géré par 1.2 (si le niveau est bas, le R7 est mis Off) et 2.1 (si R7 est Off, le compte à rebours est suspendu)

Non V02 off R7
Fin du compte à rebours : inutile, déjà géré en 1.2 et V02 est supprimée

Non ED1 ON VO2
Réactivation du compte à rebours : : inutile, déjà géré en 1.2 et V02 est supprimée

Voilà une logique KISS (Keep It Simple and Stupid) à tester si tu le veux bien.

P.S. 1 Pour le câblage de R3 et R5 je m’inspirerais de celui des volets roulants pour m’assurer que physiquement ils ne peuvent être activés de manière antagoniste.

P.S. 2 Je suis dispo pour répondre à toutes les questions

Effectivement beaucoup plus simple!
Il faut que je laisse la condition sur l’arrêt du surpresseur car il sert aussi à l’alimentation des WC en eau de pluie.
En faut juste déclencher un temps d’arrosage qui est suspendu par réserve vide le temps qu’elle se remplisse.
R7 peut effectivement remplacer VO2; ce qui veut dire que si j’active manuellement R7 pour arrosage ponctuel, cela déclenche le compteur?
Qu’entends-tu par câblage des relais r3 et r5 comme volet roulant? En quoi peuvent ils fonctionner de manière antagoniste?

Sinon je viens de m’apercevoir que les timers ne permettent pas de programmer une condition comme « tout les 3 jours ». Je pense donc à partir sur un autre compte à rebours avec incrément de début de la valeur souhaiter rapportée en secondes. Pour trois jours cela fait 259200.
L’ipx v4 gère t’il des décomptes aussi lourds? Quel est le max conseillé?

Je ne me rappelle plus mais c’est c’est marqué dans la doc il y a une limite

Bonjour,

sauf erreur, la valeur d’incrément d’un compteur est limitée à 8 bits (256 max)
Ce scénario initialisera donc le compteur à 44 au lieu de 300 (300 modulo 256)

Pour déclencher une action tous les 3 jours (ce qui est effectivement impossible, il faut paramétrer plusieurs plages horaires et essayer de s’en approcher.
Une le Lundi, une le Mercredi et une le Samedi par exemple.
pour le scenario, la condition deviendra alors Si plage1 OU plage2 OU plage3 ACTION …

Autre méthode :slight_smile:on règle une sortie avec Tb=3600
On initialise un compteur à 72
et chaque fois que la sortie passe OFF, on décrémente le compteur et on réactive la sortie.
L’arrosage se fait si compteur=0 . On remet alors le compteur à 72 …

Autre méthode moins consommatrice de ressources :slight_smile: :
une plage horaire tous les jours de 06:00 à 06:01 (heure du début de l’arrosage), un compteur initialisé à 3 (pour 3 jours d’intervalle)
chaque fois que la plage horaire passe à ON, on décrémente le compteur, à 0 on arrose et on remet le compteur à 3.

Oups, je voulais répondre à @Cob

cdt

1 « J'aime »

@Cob, Je vais essayer de répondre à tout :slight_smile:

De mon point de vue, le mieux serait de déclencher un arrosage manuel en incrémentant le compteur du compte à rebours.
Par exemple en utilisant VO2 avec un TB de 0,2 sec et la règle
Si V02 On Inc(C2, 60 secondes)
tu peux choisir depuis le dashboard une durée d’arrosage en minutes puis l’oublier. (Si nécessaire, un arrêt d’urgence peut être programmé en remettant le compteur à 0). Tu peux également afficher le temps restant dans un dashboard et avoir un feed-back « professionnel ».

Je te renvoie au wiki : http://gce-electronics.com/wiki/index.php?title=Fichier:C6.png . Le câblage interdit d’actionner en même temps la montée et la descente de manière astucieuse et fiable.

@fgtoul,

Tu as hélas raison, aussi bien avec un set qu’un incrément, en interne et depuis les APIs, sans même une petite erreur retournée :sleepy:.

@Cob, si la précision dans la durée d’arrosage n’est pas primordiale, le plus simple est de transformer le compte à rebours de secondes en compte à rebours en minutes en définissant
VO1 Ta : 0; Tb =60

Joli :thumbsup:

2 « J'aime »

@fgtoul : sur tes trois scénarios j’aime bien les deux derniers; la deuxième « propre » mais effectivement demande de la ressource.
L’idée d’incrementer un compteur via un timer journalier est sioux! J’adopte !
Étonnant qu’il n’y ait pas de fonction « à telle heure ou tel jour fait telle action ». Une piste de réflexion aux développeurs…

@Teebex
L’arrosage doit être automatisé pour les vacances.
Avec la fonction mémoire des relais, si coupure de courant , normalement pas de bug au retour du jus.
J’envisage aussi d’intercaler une electrovanne (fonctionnant en NO) sur arrivée d’eau générale couplée a un compteur d’eau a impulsion pour couper arrivée d’eau si consommation trop importante (bloquage de la vanne d’arrosage ou fuite qq part).
Mon idée était aussi d’intercaler un interrupteur physique sur une ED qui déclenche le compte à rebours quand je l’enclenche et l’arrête en repassant le compteur à O.
Je ne comprends pas bien le Tb=0,2 sur la VO2…

Question subsidiaire : Est ce sécurisant de laisser travailler l’ipx tout seul pendant 3 semaines?

@Teebex
Passer le Tb de VO1 à 60 et donc C2 de départ à 5 au lieu de Tb 1 et c2 à 300 : quelle différence? Moins lourd pour l’ipx?

@Teebex
Joli le câblage des volets roulant. Mais il y a de toute façon une règle qui dit : si capteur niveau bas off relais 3 et ON relais 5…

Merci pour vos idées qui m’éclairent beaucoup.
Quand j’aurais fini (et que ça marchera ) je me penche sur les API; j’y comprends que dalle pour l’instant!

J’avais pas vu la réponse de @fgtoul; avec c2 à 300 ça marchera pas…