Probabilité de pluie dans domoticz

SNAG-000006Aujourd’hui nous allons voir comment ajouter dans domoticz un compteur qui va représenter la probabilité de pluie dans les heures qui suivent. Ce peut être utile par exemple pour être alerté par email ou SMS quelques minutes avant qu’il ne pleuvent pour rentrer le linge, fermer un velux resté ouvert ou pour gérer un arrosage automatique (voir ici) …

 

Etape 1 : 

il vous fait avoir une clé d’api wunderground.com de type développeur (gratuite). Je vous laisse aller voir sur les références ci-dessous comment l’obtenir gratuitement en 5 minutes:

Etape 2 :

Dans votre console domoticz créez plusieurs capteur virtuels de type Pourcentage :

Depuis l’onglet Matériel : SNAG-000013SNAG-000008

Apres avoir créer les capteurs virtuels vous les retrouvez dans l’onglet Dispositifs, ajoutez les dans votre domoticz en cliquant sur la flèche verte à droite, puis donnez-leur un  nom. Vous les appellerez par exemple  « Proba Pluie 1h », « Proba Pluie 5h », « Proba Pluie 12h » et « Proba Pluie 24h » :

SNAG-2015-08-23-11.25.24

SNAG-000009

Notez bien leur idx qui est visible dans le menu dispositif (ex ici 190 et 189) : SNAG-000011

Etape 3 :

C’est presque fini il ne vous reste plus qu’a voir le script avant de la télécharger ici comme ceci :

En tant que root :

mkdir -p /root/scripts
cd /root/scripts
curl -O https://raw.githubusercontent.com/Sirus10/domoticz/master/get_rain_probability.sh
chmod +x get_rain_probability.sh

Adaptez dans le fichier créé  « /root/scripts/get_rain_probability.sh » les informations en fonction de votre ville, pays, de votre clé API (voir Etape 1), les idx des devices crées à l’étape 2 et le lien http de votre domoticz  :

COUNTRY=FRANCE
APIKEY=  # put your api key here
TOWN=PARIS    # put your town here 
IDX_1h=144    # Update according to your domoticz % divices
IDX_5h=153    # Update according to your domoticz % divices
IDX_12h=189   # Update according to your domoticz % divices
IDX_24h=190   # Update according to your domoticz % divices

DOMO_HTTP=192.168.1.16:8080

Puis testez simplement comme ça :

/root/scripts/get_rain_probability.sh

Vous devriez voir quelque chose comme ça ( x4) :

root@raspberrypi:/# /root/scripts/get_rain_probability.sh
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 68032 0 68032 0 0 88800 0 --:--:-- --:--:-- --:--:-- 96499
Proba Rain in 1 h : 0 %
http://192.168.1.16:8080/json.htm?type=command¶m=udevice&idx=144&nvalue=0&svalue=0
{
 "status" : "OK",
 "title" : "Update Device"
}

Regardez maintenant dans domoticz les compteur devrait être à jour :

SNAG-000005

Pour le planifier j’utilise :

# Update proba Rain
*/10 * * * *  /root/scripts/get_rain_probability.sh > /tmp/probal_rain.log

Attention de ne pas dépasser les quotas / clé API. 1 script toutes les 10min ça fonctionne très bien !

 

Quota pour une licence développeur  (0€) : 500 appel / jours, 10 appel / minutes. Ça vous laisse pas mal de marge…

 

Ça vous a plus ? Laissez un commentaire ça fait toujours plaisir 🙂

22 réflexions au sujet de « Probabilité de pluie dans domoticz »

  1. vil1driver

    salut,

    merci pour ce tuto et ce blog en général..

    je n’ai pas fouiné tout le xml retourné mais penses tu que l’on peut également y trouver la quantité de pluie prévue ?

    Répondre
    1. Manu Auteur de l’article

      Effectivement le xml contient beaucoup d’information sur le temps à venir comme le vent…
      L’information sur le vent peut servir également pour refermer votre store électrique si le vent arrive par exemple !

      Répondre
  2. ramses54

    Salut,
    beau boulot mais j’ai un probleme avec le device virtuel pluie. il reste à zéro. pourtant,i il pleut et même beaucoup chez moi. une idée?? les autres sensors fonctionnent très bien.
    d’avance merci

    Répondre
  3. anthony

    Bonjour, besoin d’un petit conseil …. étant novice en la matière, d’avance merci beaucoup !!!

    root@raspberrypi:~/scripts# /root/scripts/get_rain_probability.sh
    /root/scripts/get_rain_probability.sh: ligne16: DEZERT : commande introuvable
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 49545 0 49545 0 0 19319 0 –:–:– 0:00:02 –:–:– 22247
    Proba Rain in 1 h : %
    http://192.168.1.57:8080/json.htm?type=command&param=udevice&idx=16&nvalue=0&svalue=
    curl: (22) The requested URL returned error: 401
    Proba Rain in 5 h : %
    http://192.168.1.57:8080/json.htm?type=command&param=udevice&idx=17&nvalue=0&svalue=
    curl: (22) The requested URL returned error: 401
    Probal Rain in 12 h : %
    http://192.168.1.57:8080/json.htm?type=command&param=udevice&idx=18&nvalue=0&svalue=
    curl: (22) The requested URL returned error: 401
    Probal pluie dans 24 h : %
    http://192.168.1.57:8080/json.htm?type=command&param=udevice&idx=19&nvalue=0&svalue=
    curl: (22) The requested URL returned error: 401
    root@raspberrypi:~/scripts#

    Répondre
    1. anthony

      Pour complement d’information ……

      root@raspberrypi:~/scripts# sudo nano get_rain_probability.sh
      GNU nano 2.2.6 Fichier : get_rain_probability.sh

      ###############################################################################$
      # This script will get weather date from wunderground API and then add the
      # propability of rain into domoticz % devices.
      # Site : http://domotique.web2diz.net/
      # Details : http://domotique.web2diz.net/?p=392
      # Source : https://github.com/Sirus10/domoticz/blob/master/get_rain_probabilit$
      # License : CC BY-SA 4.0
      #
      # Usage:
      # ./get_rain_probability.sh
      #
      ###############################################################################$
      # Setup START
      COUNTRY=FRANCE
      APIKEY=7c630469bd669dee # put your api key here
      TOWN=LE DEZERT # put your town here
      IDX_1h=16 # Update according to your domoticz % divices
      IDX_5h=17 # Update according to your domoticz % divices
      IDX_12h=18 # Update according to your domoticz % divices
      [ Lecture de 61 lignes ]
      ^G Aide ^O Écrire ^R Lire fich.^Y Page préc.^K Couper ^C Pos. cur.
      ^X Quitter ^J Justifier ^W Chercher ^V Page suiv.^U Coller ^T Orthograp.

      Répondre
      1. anthony

        root@raspberrypi:~/scripts# sudo nano get_rain_probability.sh
        GNU nano 2.2.6 Fichier : get_rain_probability.sh

        #
        ###############################################################################$
        # Setup START
        COUNTRY=FRANCE
        APIKEY=xxxxxxxx# put your api key here
        TOWN=LE DEZERT # put your town here
        IDX_1h=16 # Update according to your domoticz % divices
        IDX_5h=17 # Update according to your domoticz % divices
        IDX_12h=18 # Update according to your domoticz % divices
        IDX_24h=19 # Update according to your domoticz % divices

        DOMO_HTTP=192.168.1.57:8080
        # Setup END

        curl -f « http://api.wunderground.com/api/$APIKEY/hourly/lang:FR/q/France/$TOWN.$

        x=1 # Hour
        proba_rain=`grep « pop » /tmp/weather$TOWN.out | sed « s/// « |sed « s//$
        echo Proba Rain in $x h : $proba_rain %

        ^G Aide ^O Écrire ^R Lire fich.^Y Page préc.^K Couper ^C Pos. cur.
        ^X Quitter ^J Justifier ^W Chercher ^V Page suiv.^U Coller ^T Orthograp.

        Répondre
  4. anthony

    Bon j’ai resolu mon problème … en fait il fallait specifier l’identifiant et le mot de passe de connexion domoticz dans le nano au niveau de domo http

    Répondre
    1. Manu Auteur de l’article

      Bonjour,
      ou effectivement c’est en fonction de ta politique de sécurité.

      pour ma part j’ai retiré le besoin d’identification pour les ip locales.

      Merci pour ton retour.

      Répondre
  5. Loic

    Bonjour un petit probleme , le voici

    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0Warning: Failed to create the file /tmp/weather****.out: Permission denied
    0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0
    curl: (23) Failed writing body (0 != 15809)

    Je ne comprends pas d’ou viens le probleme… tout marcher super bien jusqu’a mi decembre. 🙁

    En vous remerciant pour votre aide

    Répondre
  6. Manu Auteur de l’article

    Bonjour Loic,

    à en lire cela : Warning: Failed to create the file /tmp/weather****.out:

    je dirait un problème d’écriture dans ton repertoire /tmp.

    Il ne serait pas plein ?
    Pour le vois fais simplement une commande comme sela , si il y en a un a 100% c’est surement le cas :

    df -hP 

    sinon tu peux aussi supprimer le fichier /tmp/weather* et retester ?

    A+

    Répondre
  7. francklek

    Salut,
    j’ai tout intégré à mon domoticz, tout semble fonctionner à merveille mais je n’ai pas compris dans quel fichier intégrer la mise à jour du script.
    Un petit complément d’infos…

    # Update proba Rain
    */10 * * * * /root/scripts/get_rain_probability.sh > /tmp/probal_rain.log

    Merci

    Répondre
    1. Manu Auteur de l’article

      Bonjour francklek,

      je ne comprends pas ce que tu appelé la mise à jour du script,
      Ce qu’il faut faire :
      tu télécharges le script avec:
      mkdir -p /root/scripts
      cd /root/scripts
      curl -O https://raw.githubusercontent.com/Sirus10/domoticz/master/get_rain_probability.sh
      chmod +x get_rain_probability.sh

      ensuite tu edites le fichier créé : /root/scripts/get_rain_probability.sh avec les bons ldx de ton domoticz et la bonne localisation et clé d’api.

      et c’est fini normalement, il ne reste plus qu’a ajouter la planification dans la crontab de ton serveur en utilisant la commande :
      crontab -e
      et ajoutant les lignes :
      # Update proba Rain
      */10 * * * * /root/scripts/get_rain_probability.sh > /tmp/probal_rain.log

      Ça réponds à ta question ?
      Si non n’hésites pas 🙂

      Répondre
    1. Manu Auteur de l’article

      Super 🙂
      Pour ma part je suis vraiment content de ce script, il est super simple est les données dans domoticz sont assez précise je trouve. 🙂 Du coup je m’en sert pour mon arrosage automatique !!
      A+

      Répondre
  8. francklek

    Merci, j’ai hate de voir la fin de l’article consacré à l’arrosage automatique solaire. J’ai ma cuve d’eau à coté du jardin et un système un peu plus costaud avec une batterie moto et un panneau 20W….automatiser tout ça…mmmmm

    Répondre
  9. CLEMENT Fabrice

    Bonjour tout le monde,

    Je n’ai pas de problème, je dépose juste ce message pour informations :

    J’ai modifié le script selon mon besoin ; Calculer le % de probabilité de pluie durant les 36 prochaines heures. car j’ai un arrosage qui ne doit se lancer que deux fois par semaine, i lest donc inutile de le lancer s’il y a de fortes chances qu’il pleuvent dans les 36 prochaines heures (nombre max d’heures fournies par Wunderground).
    Je scan donc toutes les heures pour garder le pourcentage le plus élevé.

    J’ai également déposé ce script dans le dossier /home/pi pour ne pas avoir de problème de droits.
    Le fichier temporaire est aussi dans ce dossier pour simplifier la manoeuvre.

    Voici la partie modifiée du script qui commence ainsi :

    # Setup END

    curl -f « http://api.wunderground.com/api/$APIKEY/hourly/lang:FR/q/France/$TOWN.xml » -o weather$TOWN.out
    CMPT=1
    PROBA_MAX=0
    while [ « $CMPT » != « 37 » ]
    do
    PROBA_RAIN= »NR==$CMPT »
    PROBA_RAIN=`grep « pop » weather$TOWN.out | sed « s/// « |sed « s/// » |awk $PROBA_RAIN`
    #echo Probal pluie dans $CMPT h : $PROBA_RAIN %
    if [ $PROBA_RAIN -gt $PROBA_MAX ]; then
    PROBA_MAX=$PROBA_RAIN
    fi
    CMPT=$(($CMPT+1))
    done
    echo Probal max : $PROBA_MAX %
    url= »http://$DOMO_HTTP/json.htm?type=command&param=udevice&idx=$IDX&nvalue=0&svalue= »$PROBA_MAX
    url=`echo $url |sed « s/ // »`
    echo $url
    curl -f $url

    Répondre
  10. batdvier77

    Bonjour,

    Très bon scripts….merci, mais lorsqu’il est combiné avec une dans le crontab, il envoie systématiquement un mail pour résumé son exécution.
    Est ce qu’il ‘ya un moyen de supprimer cette notification mail ?

    Cdt,

    Répondre
  11. Ping : Potager – interface avec une api de météo gratuite, script de probabilité de pluie. – Brico-Info – le blog de Bruno CATTEAU

  12. Karl

    Bonjour,

    J’ai installé le script mais j’ai une question.

    Etant de Belgique, j’ai change la country en Belgium et mis ma ville ( comme indique sur le site de wunderground je suppose.

    # Setup START
    COUNTRY=BELGIUM
    APIKEY=*************# put your api key here
    TOWN==Chastre-Villeroux-Blanmont # put your town here
    IDX_1h=5 # Update according to your domoticz % divices
    IDX_5h=6 # Update according to your domoticz % divices
    IDX_12h=7 # Update according to your domoticz % divices
    IDX_24h=8 # Update according to your domoticz % divices

    DOMO_HTTP=127.0.0.1:8080
    # Setup END

    curl -f « http://api.wunderground.com/api/$APIKEY/hourly/lang:FR/q/France/$TOWN.$

    faut il changer dans la ligne ci dessus le /q/France par /q/Belgique ?
    Quand j’execute le script j’ai une proba de rien %. est ce normal ? chez nous il pleut souvent je trouve cela louche…

    Proba Rain in 1 h : %
    http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=5&nvalue=0&svalue=
    {
    « status » : « OK »,
    « title » : « Update Device »
    }
    Proba Rain in 5 h : %
    http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=6&nvalue=0&svalue=
    {
    « status » : « OK »,
    « title » : « Update Device »
    }
    Probal Rain in 12 h : %
    http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=7&nvalue=0&svalue=
    {
    « status » : « OK »,
    « title » : « Update Device »
    }
    Probal pluie dans 24 h : %
    http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=8&nvalue=0&svalue=
    {
    « status » : « OK »,
    « title » : « Update Device »
    }

    est ce une erreur de ma part ? ou l e script doit il être modifié pour les belges ?

    Merci

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *