Arrosage automatique du jardin

les autres capteurs : Sondes Météo, switches
manuloup
Messages : 496
Enregistré le : 18 févr. 2015, 13:05

Re: Arrosage automatique du jardin

Message par manuloup » 20 janv. 2019, 12:30

Ok je viens de comprendre. Si tu relis mon post du 28 août 2015, 23:08, il faut un paramètre on ou off lorsque tu lances ton script.

Exemple : /dev-domoticz/scripts/shell/arrosage.sh on

Cela signifie que tu veux démarrer l'arrosage. Si tu veux l'arrêter ensuite, tu mets le paramètre à off :

/dev-domoticz/scripts/shell/arrosage.sh off

Cela te permet de choisir la durée de ton arrosage.
Rapberry PI 2 (RaspBian), RFplayer, Aeon Labs Z-Stick Gen5, Everspring ST814 Temperature Sensor, Everspring SF812 Smoke Detector, 4x Fibaro Wallplug, Aeon Zwave Miniremote , Teleinfo USB

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


garycooper
Messages : 168
Enregistré le : 07 août 2017, 23:58

Re: Arrosage automatique du jardin

Message par garycooper » 20 janv. 2019, 20:48

Bonjour et merci de m'aider dans mon projet. Egalement félicitations pour ton script ! Je n'avais peut-être pas tout compris en fait ... J'ai compris que le bouton "arrosage auto" servait soit à inhiber les ordres à venir d'arrosage, soit à l'interrompre. Mais peut-être n'est-ce pas ça ...
Mon arrosage est composé de 4 électrovannes que je commande successivement par des ouvertures de 15 min environ. Pour ça, j'ai créé une scène "arrosage" qui ouvre l'électrovanne A pendant 15 min, puis elle se ferme. S'ouvre alors l'électrovanne B pendant 15min, puis elle se ferme ... ça avec les électrovannes C et D également. J'ai plannifié la scène via l'outil de planification associé à la scène dans domoticz pour un déclenchement de la scène les jours impairs à 2h30 du matin. C'est là qu'entre en scène ton script ! Ce qui m'intéresse particulièrement, c'est d'une part de pouvoir inhiber l'arrosage de septembre à avril (ça évite de solliciter les électrovannes pour rien quand le circuit est vidangé) mais également de prendre en compte la pluviométrie. Je n'ai par contre pas bien compris si le "rainval" prenait en compte la pluie tombée dans les 24h (soit avant le déclenchement de l'arrosage) ou seulement la probabilité de pluie dans les 24h (soit après le déclenchement de l'arrosage). Du coup, après avoir mis mes paramètres dans ton script ça donne ça :

Code : Tout sélectionner

#!/bin/bash
# Settings

# Variables pour Forecast.io
API="xxxxxxxxxxxxxxxx"
LAT="xxxxxxxx"
LON="xxxxxxxxxxxx"
#Variables pour Domoticz
DOMO_IP="xxxxxxxxxxx"           # Domoticz IP Address
DOMO_PORT="xxxxx"                # Domoticz Port
ARROSAGE_SCENE_IDX="3"         # IDX scène arrosage
ARROSAGE_STATUS="71"         # IDX du bouton "arrosage automatique"
RAINLIMIT="0.2" #Seuil de declenchement de l arrosage pour pluie a tomber
ACTION=$1
#
#On teste si l'arrosage est en route, sinon pas besoin de l'arreter en cas de Off
if [ ${ACTION} = "Off" ] ;
then
   ARROSAGE_STATUS=$(curl -s -i -H "Accept: application/json" "http://${DOMO_IP}:${DOMO_PORT}/json.htm?type=scenes" | egrep -w -m1 -A6 "Arrosage" |grep "Status" | cut -d'"' -f4)
#  echo "ARROSAGE_STATUS:${ARROSAGE_STATUS}"
  if [ ${ARROSAGE_STATUS} = "Off" ] ;
  then
  echo "Pas besoin d'arreter l'arrosage, il est deja arrete ! "
  MESSAGE="Pas%20besoin%20d%20arreter%20l%20arrosage,il%20est%20deja%20arrete%20!"
  curl "http://${DOMO_IP}:${DOMO_PORT}/json.htm?type=command&param=addlogmessage&message=${MESSAGE}"
  exit 0
  fi
fi

#On recupere la valeur RAINVAL correspondant a la moyenne de precipitation sous 24H
RAINVAL=$(curl -s -i -H "Accept: application/json" "https://api.forecast.io/forecast/$API/$LAT,$LON?units=ca&exclude=currently,minutely,hourly,alerts,flags" | grep precipIntensity| cut -d, -f14 |cut -d: -f2 | cut -c 1-3)
echo "RAINVAL : ${RAINVAL}"

#On traite le cas de l activation de l arrosage (action=On)
if [ ${ACTION} = "On" ] ;
then
  if [ $(expr ${RAINVAL} '<' ${RAINLIMIT}) = 1 ] ; then
    echo "Il ne va pas pleuvoir, on teste l hygro de la sonde !"
      curl "http://${DOMO_IP}:${DOMO_PORT}/json.htm?type=command&param=addlogmessage&message=il%20ne%20va%20pas%20pleuvoir,%20test%20sonde%20hygro"
  else
    MESSAGE="Il%20Ova20pleuvoir,pas%20besoin%20d%20arroser"
    echo "Il va pleuvoir, pas besoin d arroser"
    curl "http://${DOMO_IP}:${DOMO_PORT}/json.htm?type=command&param=addlogmessage&message=${MESSAGE}"
  fi
else
# On traite le cas d arret de l arrosage
  echo "Arret de l arrosage auto !"
  curl "http://${DOMO_IP}:${DOMO_PORT}/json.htm?type=command&param=switchscene&idx=${ARROSAGE_SCENE_IDX}&switchcmd=Off"
  curl "http://${DOMO_IP}:${DOMO_PORT}/json.htm?type=command&param=addlogmessage&message=Arret%20de%20l%20arrosage%20auto%20!"
fi
j'ai donc mis le script "arrosage.sh dans "/home/pi/domoticz/scripts/shell" puis j'ai mis à jour le crontab avec les éléments suivants :

Code : Tout sélectionner

30 02 * 4-9 2,4,6 /domoticz/scripts/shell/arrosage.sh on > /dev/null
30 04 * 4-9 2,4,6 /domoticz/scripts/shell/arrosage.sh off > /dev/null
Je pense que du coup ça devrait être bon, non ? Il faut du coup que j'enlève la planification de la scène dans domoticz ? Ca prend bien en compte la pluie tombée et la pluie à venir sur 24h ? Le bouton créé "arrosage auto" sert-il à quelque-chose du coup ? Après le passage du script, il n'affiche plus ni "On", ni "Off" mais "Arrêter". Je ne comprends pas tout ...

Merci encore pour ton aide !

manuloup
Messages : 496
Enregistré le : 18 févr. 2015, 13:05

Re: Arrosage automatique du jardin

Message par manuloup » 21 janv. 2019, 13:15

garycooper a écrit :
20 janv. 2019, 20:48

Je pense que du coup ça devrait être bon, non ? Il faut du coup que j'enlève la planification de la scène dans domoticz ? Ca prend bien en compte la pluie tombée et la pluie à venir sur 24h ? Le bouton créé "arrosage auto" sert-il à quelque-chose du coup ? Après le passage du script, il n'affiche plus ni "On", ni "Off" mais "Arrêter". Je ne comprends pas tout ...

Merci encore pour ton aide !
Oui ça devrait suffire. Tu peux tester le script en le lançant manuellement. Effetivement, le script regarde s'il va pleuvoir sous 24h. Si oui, alors il n'activera pas l'arrosage. Il y a un seuil (rainlimit) dont tu peux modifier la variable selon ton estimation.
Tu n'as rien d'autres à activer. Le bouton dans domoticz permet juste de voir si l'arrosage est activé ou non, et de pouvoir l'activer/désactiver manuellement.
Rapberry PI 2 (RaspBian), RFplayer, Aeon Labs Z-Stick Gen5, Everspring ST814 Temperature Sensor, Everspring SF812 Smoke Detector, 4x Fibaro Wallplug, Aeon Zwave Miniremote , Teleinfo USB

garycooper
Messages : 168
Enregistré le : 07 août 2017, 23:58

Re: Arrosage automatique du jardin

Message par garycooper » 22 janv. 2019, 00:42

OK, je te remercie encore. Le seuil de 0,2, ça correspond à 0,2 mm ?

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


manuloup
Messages : 496
Enregistré le : 18 févr. 2015, 13:05

Re: Arrosage automatique du jardin

Message par manuloup » 22 janv. 2019, 10:26

Tout à fait. Sur une journée, cela me semblait correspondre à un seuil correct.
Rapberry PI 2 (RaspBian), RFplayer, Aeon Labs Z-Stick Gen5, Everspring ST814 Temperature Sensor, Everspring SF812 Smoke Detector, 4x Fibaro Wallplug, Aeon Zwave Miniremote , Teleinfo USB

garycooper
Messages : 168
Enregistré le : 07 août 2017, 23:58

Re: Arrosage automatique du jardin

Message par garycooper » 05 avr. 2019, 18:40

Bonjour manuloup, mon script ne se lance pas (pas de ligne dans le log). Ca doit être mon crontab qui est erroné mais je ne vois pas où ...

le crontab est le suivant :

Code : Tout sélectionner

#***************** planification de l'arrosage automatique ******************
#** arrosage à 2h30 du matin les mardi, jeudi, samedi de avril à septembre **
#****************************************************************************
#
00 02 * 4-9 2,4,6 /home/pi/domoticz/scripts/shell/arrosage.sh on > /dev/null
00 03 * 4-9 2,4,6 /home/pi/domoticz/scripts/shell/arrosage.sh off > /dev/null
Le script s'appelle "arrosage.sh" et son emplacement est sous "/home/pi/domoticz/scripts/shell"

Vois-tu d'où ça peut venir ?

manuloup
Messages : 496
Enregistré le : 18 févr. 2015, 13:05

Re: Arrosage automatique du jardin

Message par manuloup » 07 avr. 2019, 11:50

Bonjour Garycooper (si un jour on m'avait dit que j'aurais l'honneur de parler à ce grand acteur :D ),

1) Je vois que tu utilises des - dans ta crontab. Vérifie que cela fonctionne correctement, j'ai déjà vu des crons ne pas comprendre le */2 par exemple

2) Lance ton script à la main, et vois si ça fonctionne

3) Si ça marche, vire le /dev/null et dirige le 1 ou 2 jour vers un fichier. Ca se trouve il te manque des paramètres dans ton profil, et souvent les variables d'environnement sont différentes quand le shell est lancé sous crontab.
Rapberry PI 2 (RaspBian), RFplayer, Aeon Labs Z-Stick Gen5, Everspring ST814 Temperature Sensor, Everspring SF812 Smoke Detector, 4x Fibaro Wallplug, Aeon Zwave Miniremote , Teleinfo USB

garycooper
Messages : 168
Enregistré le : 07 août 2017, 23:58

Re: Arrosage automatique du jardin

Message par garycooper » 07 avr. 2019, 20:59

Merci pour ta réponse manuloup. Quand je lance le script à la main, ça me donne ça :
./arrosage.sh: ligne 17 : [: = : opérateur unaire attendu
RAINVAL : 0.6
./arrosage.sh: ligne 35 : [: = : opérateur unaire attendu
Arret de l arrosage auto !
<html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html><html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
La première partie, OK. Il a plu aujourd'hui donc normal que ça ne lance pas l'arrosage. Par contre, la fin ... je comprends pas trop ...

manuloup
Messages : 496
Enregistré le : 18 févr. 2015, 13:05

Re: Arrosage automatique du jardin

Message par manuloup » 07 avr. 2019, 22:04

Il doit te manquer des variables, donc le test tombe à l'eau.

Tu peux me dire tes lignes 7 et 35 ?
Rapberry PI 2 (RaspBian), RFplayer, Aeon Labs Z-Stick Gen5, Everspring ST814 Temperature Sensor, Everspring SF812 Smoke Detector, 4x Fibaro Wallplug, Aeon Zwave Miniremote , Teleinfo USB

manuloup
Messages : 496
Enregistré le : 18 févr. 2015, 13:05

Re: Arrosage automatique du jardin

Message par manuloup » 07 avr. 2019, 22:17

Si tu n'as pas autorisé les appels à domoticz sans login/password en local, il faut ajouter le login/passwd de domoticz dans les appels à domoticz avec curl.

Du coup tes urls deviennent :

avant :
curl "http://${DOMO_IP}:${DOMO_PORT}/json.htm?type=command&param=addlogmessage&message=${MESSAGE}"
après :
curl "http://login:password@${DOMO_IP}:${DOMO_PORT}/json.htm?type=command&param=addlogmessage&message=${MESSAGE}"
Rapberry PI 2 (RaspBian), RFplayer, Aeon Labs Z-Stick Gen5, Everspring ST814 Temperature Sensor, Everspring SF812 Smoke Detector, 4x Fibaro Wallplug, Aeon Zwave Miniremote , Teleinfo USB

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre