Maraichage et Irrigation limité, quelles stratégies?

Bonjour,

Le contexte

On utilise HA depuis un an et demi maintenant sans souci.
Nous sommes en site isolé (c’est-à-dire non relié aux réseaux EDF, avec une installation solaire + batterie).
Nous sommes sur une exploitation maraîchère avec un système d’irrigation 15 zones.
Le forage pour l’irrigation est alimenté par le solaire, donc il n’est pas possible d’irriguer en continu.

Quand on commence à irriguer, on ne sait pas combien de temps, on va pouvoir le faire.

Auparavant l’irrigation était gérée plus ou moins manuellement (hors HA en tout cas), depuis ces jours les 15 électrovannes sont arrivées dans HA ;-). Il reste à faire quelque chose de fonctionnelle en termes d’automatisation et d’interface, et je ne sais pas trop quelle stratégie adopter.

Dans l’idéal ça ferait un truc du genre :

Pour chaque zone, on définit une priorité (1,2,3 …) et un temps d’arrosage (en minutes) et après, on gère l’arrosage en mode FIFO (first in first out) (mais avec tri sur la priorité).

Autrement dit :

Aujourd’hui, on veut arroser en priorité (priorité 1):
-Les tomates 30 min
-Les poivrons 40 min
En éventuellement (priorité 2):
-Les aubergines 20 min

A la fin de la journée, on a seulement pu arroser les tomates , les taches irrigation pour les poivrons et les aubergines sont reportés au lendemain pour lequel il y avait aussi de l’arrosage de prévu (concombre priorité 1 et courgette priorité 2)

Il y a beaucoup de soleil le lendemain, on arrose dans l’ordre (poivrons, concombre, aubergine, poivrons)

Bon, je suppose que ce n’est pas clair…

Je suis habitué à coder, j’aurais aimé pouvoir créer une structure {status EV; priorité ; temps d’arrosage} et faire un tableau de cette structure. Traiter cette structure dans un script pour déterminer l’électrovanne à allumer, diminué le temps d’arrosage au fur et à mesure pour garder en mémoire ce qu’il reste a arrosé)

Mais je n’ai pas l’impression que ce soit la bonne logique dans HA?

Si je dois créer toutes mes entrées sans logique de tableaux, j’ai l’impression que ça va être compliqué à maintenir.

Quelle stratégie adopteriez-vous dans mon cas ?

Merci d’avance pour vos conseils.

salut,

pour une gestion dynamique , moi j’avais commencer avec pour objectif , de créer un système , qui a pour but un (tri FIFO par priorité) , pour avoir beaucoup de facilité à le maintenir dans HA , j’avais pas autant d’électrovannes que toi. :wink:

j’ai du crée des helpers input_number, input_select, input_boolean etc.. pour chaque zone, et une automation qui trie par priorité et traite chaque zone d’arrosage, tout ça avec beaucoup de simplicité , non c’est pas vrais :joy: j’ai passer énormément de temps pour arriver a un résultat satisfaisant.

Mais maintenant avec toutes les avancées majeurs de Home assistant avec les mise a jours de ces 2 dernière années c’est devenue beaucoup plus simple a mon avis .

GUI modifiable via l’interface et simple à automatiser

Voilà les exemples des ( input_* )

input_number.tps_arrosage_*  # Minutes
input_number.tps_restant_*  # Pour stocker ce qui reste pour le lendemain 
input_select.priorite_*      # 1, 2, 3...
input_boolean.arrosage_actif_*
input_text # utiliser comme base JSON pour avoir une structure proche de ce que tu  imagine en Python 

Une automation qui pourra tout gérer une fois bien structurer pour :

  • récupère toutes les événements
  • lancer les arrosages les uns après les autres avec les condition bien définie
  • un trie selon la priorité ( 1 > 2 > 3…)
  • mise à jour les temps restants
  • pas d’arrosage si l’énergie dispo est insuffisante ( sensors indispensable dans ton cas, pour une surveillance de l’énergie disponible)
  • reporter les tâches incomplètes au lendemain ( exemple : pas assez d’énergie ou jours de pluie )

voila donc une approche suffisante pour débuter.

Good luck.

Salut,

Je te remercie pour ta réponse. Je commence à avoir une vague idée de comment je vais faire

Juste pour être sûr, car je n’ai rien trouvé dans la doc en ce sens.

La notion de tableau/pointeur n’existe pas dans home assistant.

Quand tu utilises * je dois donc faire :


input_number.tps_arrosage_1
input_number.tps_arrosage_2
...

?

Je ne trouve pas non plus d’usage de ta syntaxe « type.nom » et dans quel fichier je peux l’utiliser ?

La syntaxe dans la doc, c’est plutôt ça

input_number:
  slider1:
    name: Slider
    initial: 30
    min: -20
    max: 35
    step: 1

Merci d’avance

oui l’étoile * c’est pour indiquer le nom de chaque helper

input_number.tps_arrosage_tomates  
input_select.priorite_tomates     
input_boolean.arrosage_actif_tomates

Il est vrai que HA ne gère pas de tableau natif comme on le ferait en Python. Mais tu peut simuler une file d’attente priorisée à l’aide :

d’un fichier YAML ou un helper input_text pour stocker les tâches sous forme de JSON.

oui c’est bien ça , ici tu a la liste des helpers avec la doc .