Jardin Arrosage automatique selon humidité et météo

Le choix 12 ou 24V se fera suivant le module que tu choisiras:

  • module 12V → électrovanne 12V
  • module 24V → électrovanne 24V

Oui un module contact se sera parfait. A toi d’en trouver un qui fonctionne en 12V ou 24V en Zigbee ou Z-wave

/!\ Pas un module alimenté en 230VAC

OK merci, je pense partir sur celui-ci:

trouvé grâce à cette discussion:

A priori, on peut piloter 3 électrovannes et c’est en Zigbee, faut juste que je trouve 1 électrovanne 24V DC maintenant :wink:

Bonjour, je reviens pour un petit retour d’expérience suite à un montage similaire.

J’ai utilisé des vannes rainbird en 24VAC car moins cher que les 9VDC
La vanne en bas à gauche avec l’embout gris est inversé pour l’alimentation du circuit.

Je cherche encore une caisse en plastique pour recouvrir le tout.

Comme @biarnes64 j’utilise des Sonoff 4chpro3 flashé avec ESPEasy

Schématiquement cela donne ceci:

arrosage2

arrosage1

J’ai trouvé un câble contenant 8 conducteurs, mon 2eme sonoff a encore un relais de dispo, donc si besoin je peux ajouter une 7eme vanne.

Merci encore à @biarnes64 dont les posts et tutos m’ont sacrément aidé a réaliser mon montage!

3 « J'aime »

Bravo @quatsch, super travail !

Bravo, beau montage ! :+1:

Merci, du coup @biarnes64 tu es content de ton Netatmo ? je cherche une solution fiable pour mesurer la pluviométrie. et effectivement les prévisions météorologiques sont quelque peu « aléatoires » …

Oui et non ! lol !
Je n’ai pas eu le temps malgré le confinement de me re penche sur la question vu que ça fonctionne pas mal comme ça mais on peut mieux faire je pense.
Dès que j’aurai fait la migration vers la V4 je creuserai la question.

Bravo pour le montage et merci d’avoir partagé, c’est ce que je cherchais… :slight_smile:
Donc il me manque bien une alim 24V en fait…

Je ne comprends juste pas ta connexion rouge et jaune sur le 1 du Sonoff du bas, elle sert à quoi stp ?

Merci

Oui, les vannes 24v sont en 24vac donc il te faut une alim spécifique.

Le rouge et jaune sur le 1 du sonoff c’est pour couper l’alimentation en 230v de l’alim 24vac.
Je me suis dit que ça pouvait au mieux réduire une conso inutile et au pire réduire l’usure…

Bonjour,

Un autre retour d’expérience, 6 électrovannes 24VAC gérées en zwave par 3 modules fibaro FGS-224 alimentés en 220v, le tout dans un local technique.
Pour l’instant je cherche une solution pour gérer la pluie (tombée et / ou en prévision).

2 « J'aime »

Belle install
Tu utilises quel plugin arrosage auto ?
J’ai vu qu’il y en avait 2…
Pour ma part j’ai 7 EV rainbird répartie dans 2 regard. Elles seront pilotées par une extension 8 sorties relais sur RT2 GCE.
Une des entrées sera dédiée au comptage du compteur CybleEnsor Itron.
J’attends le cable multi conducteur avant de tout mettre en service.
Je reflechi aussi pour optimiser l’arrosage en fonction de la pluie.
Je vais prendre un pluviometre Davis Instrument sur une seconde entrée du RT2 pour le comptage.
Je pense qu’avant chaque cycle journalier (le soir) du calcul d’arrosage je vais faire une verification des précipitations tombées dans la journée ou sur les 24h pour calculer une durée d arrosage mais je n’ai pas encore de recul sur comment procéder et avec quelle valeur de pluviométrie il faut calculer la durée.
J’hésite a prendre en plus un détecteur de pluie instantanée si il se met a pleuvoir pendant le cycle d’arrosage. Ca éviterait d’attendre les 0.2mm de precision du pluviometre mais pas sur que ca soit utile.
Pas de recul encore sur ce que veut dire 0.2mm de pluie et si c est utile de complementer le pluviometre par ce capteur instantané…
Si tu as des infos je prends :grin:

Pourquoi ne pas utiliser le plugin Netatmo OpenData ? J’ai un voisin qui a une station météo de la marque et je récupère les infos de pluie journalière. J’avais entreprise la construction d’un pluviomètre mais j’ai abandonné du coup pour ce plugin.

3 « J'aime »

Excellent @Kevin_Jns ! Merci, je ne conaissais pas :slight_smile:
La communauté à l’aire grande et la carte de FR bien couverte en plus…

@GerHome chouette install !
Moi pour l’instant j’utilise la valeur cumul pluie du plugin meteo france, et j’attendais noel pour m’offrir une station netatmo.
Mais du coup je vais regarder le plugin mentionné par @Kevin_Jns, merci pour la piste!
@loic69 pour ma part, si ca peut t’aider, j’utilise un scénario maison, qui regarde s’il est nécessaire d’arroser (en fonction du cumul pluie) puis va ouvrir zone par zone une durée spécifié dans un virtuel à coté. Et petit supplément, mon potager n’est arrosé que si je suis absent du domicile …

Bonjour,
Quand tu parles du cumul de pluie de météo France, c’est du prévisionnel ou du passé ?
Cordialement

J’avais espoir que ce soit passé, mais c’est prévisionnel. Mais la valeur s’actualise au cours de la journee

pour info il y a un script via scenaro fonction code (et je crois plug) info-climat sur le forum aussi

Bonjour,
Est ce que ce script fonctionne encore car difficile de récolter les données ?
Apres il faut probablement modifier le script en fonction du fichier html et la manière dont sont organisées le tableau.
Est ce vous auriez quelques tips pour retrouver les données et configurer le script sur la base de l’inspect ?

Merci d’avance

ayant plus d’info « plus de colonne » que le script original


[2021-05-25 23:51:35][SCENARIO] Start : Scenario lance manuellement.
[2021-05-25 23:51:35][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-05-25 23:51:35][SCENARIO] Exécution d’un bloc code
[2021-05-25 23:51:35][SCENARIO] Colonne ‹ Temps › ? : Température
[2021-05-25 23:51:35][SCENARIO] Valeur de j1 : 0
[2021-05-25 23:51:35][SCENARIO] Valeur de j2 : 0
[2021-05-25 23:51:35][SCENARIO] le-puy-loudes vs 23h00
[2021-05-25 23:51:35][SCENARIO] le-puy-loudes - Température : 7 °C
[2021-05-25 23:51:35][SCENARIO] => Mise à jour le-puy-loudes
[2021-05-25 23:51:35][SCENARIO] Pluie : 0 mm/1h
[2021-05-25 23:51:35][SCENARIO] Vent : 7 km/h
[2021-05-25 23:51:35][SCENARIO] rafale : 16.2
[2021-05-25 23:51:35][SCENARIO] Humidité : 77 %
[2021-05-25 23:51:35][SCENARIO] Match trouvé précipitation
[2021-05-25 23:51:35][SCENARIO] Précipitations Cumul du jour : 0 mm
[2021-05-25 23:51:35][SCENARIO] Match trouvé Degrés Jour Unifiés (DJU
[2021-05-25 23:51:35][SCENARIO]
9.6 chauffe (DJC)0 froid (DJF)
[2021-05-25 23:51:35][SCENARIO] Fin correcte du scénario

regarde en bas le cumul du jour (c’est la valeur que je récupéres)

tu crées un scenario avec un cron
image

j’ai crée une variable
ligne2
se met à jour ligne 113
voici mon script « adaptation de l’original »

// On récupère les tags du scénario
$Variable_Cumul_Precipitation = "CumulDuJourPrecipitation"; 
$tags = $scenario->getTags();
// On extrait l'éventuel tag maj
$maj = $tags['#maj#'];

// le-puy-loudes  
  $url = "https://www.infoclimat.fr/observations-meteo/temps-reel/le-puy-loudes/07471.html";

//  $url = "https://www.infoclimat.fr/observations-meteo/temps-reel/carpentras/07586.html";
  $data = file_get_contents($url);
  @$dom = new DOMDocument();
  libxml_use_internal_errors(true);
  $dom->loadHTML($data);
  libxml_use_internal_errors(false);

  $xpath = new DomXPath($dom);

  $j1 = 0;$j2 = 0;
  $s = 1; // 1 si colonne avec liens vers stations météo 

  //$node = $xpath->query("//*[@id=\"tableau-releves\"]/thead/tr/th[2]/a");
  $node = $xpath->query("//*[@id=\"resptable-releves\"]/thead/tr/th[3]/a");
  $val = $node[0]->nodeValue;
  $scenario->setLog("Colonne 'Temps' ? : ".$val);
  if ($val === "Temps") {
    $j1 = 1;//Ajout d'une colonne dans le tableau
  }
  $scenario->setLog("Valeur de j1 : ".$j1);
  //$node = $xpath->query("//*[@id=\"tableau-releves\"]/thead/tr/th[".(3+$j)."]/a");
  $node = $xpath->query("//*[@id=\"resptable-releves\"]/thead/tr/th[".(6+$s+$j1)."]/a");
  $val = $node[0]->nodeValue;
  if ($val === "Bio-météo") {
    $j2 = 1;//Ajout d'une colonne dans le tableau
  }
  $scenario->setLog("Valeur de j2 : ".$j2);

  //Heure
  //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/span");
  $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/th/span");
  $nouvelle_heure = preg_replace ('#h$#','h00',$node[0]->nodeValue);
// $cmd=cmd::byString("#[météo][InfoClimat][Heure]#");
  // $ancienne_heure = $cmd->execCmd();
  $scenario->setLog("le-puy-loudes ".$ancienne_heure. " vs ".$nouvelle_heure);

  //Température
  $i = 1 + $s;
  //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/span[1]");
  $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/td[".$i."]/span[1]");
  $nouvelle_temp = $node[0]->nodeValue;
  $scenario->setLog("le-puy-loudes - Température : ".$nouvelle_temp." °C");

 if ( ($nouvelle_heure != $ancienne_heure || $maj) && ($nouvelle_heure != "") && ($nouvelle_temp != "") )  {
  
  //Mise à jour heure et température
  $scenario->setLog("=> Mise à jour le-puy-loudes");
  // $cmd->event($nouvelle_heure);
 // cmd::byString("#[Météo][Carpentras][Température]#")->event($nouvelle_temp);

  //Pluie
  $i = 3 + $s + $j1;
  //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/span/text()");
  //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]");
  $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/td[".$i."]");   
 // cmd::byString("#[météo][InfoClimat][Pluie]#")->event($node[0]->nodeValue);
  $scenario->setLog("Pluie : ".$node[0]->nodeValue);

   //Vent
  $i =  4 + $s + $j1;
  //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/span[1]");
  $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/td[".$i."]/span[1]");
   // table#resptable-releves>tbody>tr:nth-child(1)>td:nth-child(6)>span:nth-child(1)
 // cmd::byString("#[météo][InfoClimat][Vent]#")->event($node[0]->nodeValue);   
    $scenario->setLog("Vent : ".$node[0]->nodeValue." km/h");

   //rafale
  $i = 4 + $s + $j1;
  //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/text()");
  $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/td[".$i."]/span[3]/span[2]"); 
  // cmd::byString("#[météo][InfoClimat][Pression]#")->event($node[0]->nodeValue);
      $scenario->setLog("rafale : ".$node[0]->nodeValue);  
   
   
  //Humidité
  $i = 5 + $s + $j1;
  //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/span");
  $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/td[".$i."]/span[1]");
  // cmd::byString("#[météo][InfoClimat][Humidité]#")->event($node[0]->nodeValue);
      $scenario->setLog("Humidité : ".$node[0]->nodeValue." %");
   

  //Précipitations Cumul du jour
  $precipitations = 0;
  for ($k = 3; $k <= 12; $k++) {
    $node = $xpath->query("//*[contains(@class, \"recap-clim-resp\")]/tr[".$k."]/td[1]");
    $texte = $node[0]->nodeValue;
  //  $scenario->setLog("Libellé :  $texte");
    if (stripos($texte, 'Cumul du jour') !== FALSE) {
     $scenario->setLog("Match trouvé précipitation");
     $node = $xpath->query("//*[contains(@class, \"recap-clim-resp\")]/tr[".$k."]/td[2]/div/b");
     $precipitations = $node[0]->nodeValue;
      $scenario->setLog("Précipitations Cumul du jour : ".$precipitations." mm");
    }
        if (stripos($texte, 'Degrés Jour Unifiés (DJU)') !== FALSE) {
     $scenario->setLog("Match trouvé Degrés Jour Unifiés (DJU");
     $node = $xpath->query("//*[contains(@class, \"recap-clim-resp\")]/tr[".$k."]/td[2]/div");
     $DJU = $node[0]->nodeValue;
                $scenario->setLog($DJU);
    }
  }
 // cmd::byString("#[résumé][InfoClimat][Précipitations 24h]#")->event($precipitations);
 // cmd::byString("#[météo][InfoClimat][Degrés Jour Unifiés]#")->event($DJU);
   $scenario->setData($Variable_Cumul_Precipitation, $precipitations);
 }

pour les précipitations futur j’utilise le site

il y a un xml de dispo
https://www.yr.no/place/France/Île-de-France/Paris/forecast_hour_by_hour.xml

avec un script qui cumul
https://forum.jeedom.com/viewtopic.php?f=139&t=45783&p=737885&hilit=météo#p737956

Dans Chrome : click droit > Inspecter > Mettre la flèche dans le code au dessus de la partie surlignée (parfois il faut remonter à la balise d’avant) > Click droit > Copy Xpath

Avec ça normalement on s’en sort. Le plus pénible c’est quand il y a des colonnes qui apparaissent et disparaissent, d’où les tests dans le code à adapter. A un moment - il y a longtemps - j’avais fait un script qui cherchait dans la première ligne le bon nom de colonne, mais pas forcément plus simple.

1 « J'aime »