Code : Tout sélectionner
if [ $(expr ${RAINVAL} '<' ${RAINLIMIT}) = 1 -a $(expr ${RAINVAL6H} '<' ${RAINLIMIT}) = 1 -a $(expr ${RAINVAL12H} '<' ${RAINLIMIT}) = 1] ; then
Code : Tout sélectionner
if [ $(expr ${RAINVAL} '<' ${RAINLIMIT}) = 1 -a $(expr ${RAINVAL6H} '<' ${RAINLIMIT}) = 1 -a $(expr ${RAINVAL12H} '<' ${RAINLIMIT}) = 1] ; then
Bonjour,vil1driver a écrit :et s'il pleut dans 5 heures mais pas dans 12h ?![]()
et s'il annoncent plus de 5mm de pluie dans 12h mais avec seulement 10% de probabilité ?
peut être que ce dernier cas ne peut se présenter, mais ça mérite réflexion..
je pense que correctement gérer ce paramètre pluie est un sacré chalenge..
sinon par curiosité, pourquoi créer un groupe ?
J'ai donc cherché à récupérer cette valeur sur les prochaines 24h, et dans mon test j'estime que je n'arrose pas si cette valeur supérieure ou égale à 0.2. J'ai vérifié par rapport à ces dernières journées (ça tombe bien il a pluprecipIntensity: A numerical value representing the average expected intensity (in inches of liquid water per hour) of precipitation occurring at the given time conditional on probability (that is, assuming any precipitation occurs at all). A very rough guide is that a value of 0 in./hr. corresponds to no precipitation, 0.002 in./hr. corresponds to very light precipitation, 0.017 in./hr. corresponds to light precipitation, 0.1 in./hr. corresponds to moderate precipitation, and 0.4 in./hr. corresponds to heavy precipitation.
Code : Tout sélectionner
#!/bin/bash
# Settings
# Variables pour Forecast.io
API="2t346701e1907dfc95b357527fedc5"
LAT="42.4004"
LON="2.6083"
#Variables pour Domoticz
DOMO_IP="192.168.0.5" # Domoticz IP Address
DOMO_PORT="8080" # Domoticz Port
ARROSAGE_SCENE_IDX="124" # IDX Groupe arrosage auto
ARROSAGE_STATUS="" # IDX Groupe arrosage auto
RAINLIMIT=0.2 #Seuil de declemchement de l arrosage
ACTION=$1
#
# Test du parametre action (on/off)
if [ -z ${ACTION} ] ;
then
echo "Manque 1er parametre on/off"
exit 0
elif [ ${ACTION} != "on" -a ${ACTION} != "off" ] ;
then
echo "Le 1er parametre doit etre egal a on ou off"
exit 0
fi
#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 ! "
curl "http://${DOMO_IP}:${DOMO_PORT}/json.htm?type=command¶m=addlogmessage&message='Pas%20besoin%20d%20arreter%20l%20arrosage,il%20est%20deja%20arrete%20!'"
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=om)
if [ ${ACTION} = "on" ] ;
then
if [ $(expr ${RAINVAL} '<' ${RAINLIMIT}) = 1 ] ; then
echo "Il ne va pas pleuvoir, on peut lancer l arrosage !"
curl "http://${DOMO_IP}:${DOMO_PORT}/json.htm?type=command¶m=addlogmessage&message='Il%20ne%20va%20pas%20pleuvoir,%20on%20lance%20l%20arrosage'"
curl "http://${DOMO_IP}:${DOMO_PORT}/json.htm?type=command¶m=switchscene&idx=${ARROSAGE_SCENE_IDX}&switchcmd=On"
else
echo "Il va pleuvoir, pas besoin d arroser"
curl "http://${DOMO_IP}:${DOMO_PORT}/json.htm?type=command¶m=addlogmessage&message='Il%20va%20pleuvoir,%20pas%20besoin%20d%20arroser'"
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¶m=switchscene&idx=${ARROSAGE_SCENE_IDX}&switchcmd=Off"
curl "http://${DOMO_IP}:${DOMO_PORT}/json.htm?type=command¶m=addlogmessage&message='Arret%20de%20l%20arrosage%20auto%20!'"
fi