Script Prévision de pluie pour Domoticz

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
fabd
Messages : 100
Inscription : 11 janv. 2016, 10:14

Script Prévision de pluie pour Domoticz

Message par fabd »

Bonjour tout le monde

je rebondis sur le tuto bien sympa posté le 6 mai sur la page principale d'easydomoticz

Quelqu'un pourrais m'expliquer la premiere ligne ?

Code : Tout sélectionner

pl=$(curl -s "http://www.meteofrance.com/mf3-rpc-portlet/rest/pluie/773800"|jq -r .niveauPluieText|cut -d ' ' -f7|tr -d '['|tr -d ']'|tr -d ' '|$
Ca me rend ouf je suis à 2 doigts de le faire Powershell.

Ca me retourne ./pluie.sh: line 3: $: command not found --> en rajoutant une ) a la fin du code INSEE sinon j'ai des erreurs de syntax.

Il interprete pas le curl et le resultat est NULL

Bref, si il y a une ame charitable qui a reussi a faire tourner le script, je suis preneur.

Marre de laver les carreaux quand il a plu :lol:
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Tuto Prévision de pluie pour Domoticz

Message par patrice »

Bonjour en ce qui me concerne pour 773800 ce matin et avec une correction faite hier dans le script dont la mise à jour est ici
http://easydomoticz.com/prvision-pluie/
et d'aprés un 1er test via cette url
http://www.meteofrance.com/mf3-rpc-port ... uie/773800
un petit
pi@domoticz ~/domoticz/scripts $ ./pluie.sh
{
"status" : "OK",
"title" : "SwitchLight"
}
pas de pluie
pi@domoticz ~/domoticz/scripts $
me dit qu'il n'y a pas de pluie dans le CODE INSEE 773800

pour savoir ce qu fait la ligne en question et comme décrit sur le blog
Après interrogation du site web, récupérons donc le contenu de niveauPluieText par utilisation de JQ jdont l'installation est expliquée ici, supprimons les caractères indésirables de texte horaire, de '[' ']' et espaces.
ca interroge l'url (meteofrance.../mf3-rpc...) comme l'url que j'ai écrite au dessus,
Puis ca retire via jq (module a installer), le resultat contenu dans niveaupluieText ,
Dans ce niveaupluietext on elimine les [ ] les espaces et on prend le premier mot qui est soit "Précipitations" soit "Pas" pour alimenter le widget en consequence
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
fabd
Messages : 100
Inscription : 11 janv. 2016, 10:14

Re: Tuto Prévision de pluie pour Domoticz

Message par fabd »

salut Patrice,

merci, je teste ca tout de suite :)
fabd
Messages : 100
Inscription : 11 janv. 2016, 10:14

Re: Tuto Prévision de pluie pour Domoticz

Message par fabd »

Si j'execute le script tel que :


pi@raspberrypi ~/domoticz/scripts $ ./pluie.sh
./pluie.sh: line 3: unexpected EOF while looking for matching `)'
./pluie.sh: line 17: syntax error: unexpected end of file
pi@raspberrypi ~/domoticz/scripts $

il manque la fermeture de la parenthese ouverture avant le curl
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Tuto Prévision de pluie pour Domoticz

Message par deennoo »

Merci
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
fabd
Messages : 100
Inscription : 11 janv. 2016, 10:14

Re: Tuto Prévision de pluie pour Domoticz

Message par fabd »

je fais remonter le sujet

J'ai tjrs mon bug :

Code : Tout sélectionner

pi@raspberrypi ~/domoticz/scripts $ (curl -s "http://www.meteofrance.com/mf3-rpc-portlet/rest/pluie/773800" | jq -r .niveauPluieText|cut -d ' ' -f7|tr -d '['|tr -d ']'|tr -d ' '|$)
-bash: $: command not found
ou est l'erreur ? Comment je peux verifier que jq est bien installé ?

Code : Tout sélectionner

pi@raspberrypi ~/domoticz/scripts $ jq
jq - commandline JSON processor [version 1.5]
Usage: jq [options] <jq filter> [file...]

        jq is a tool for processing JSON inputs, applying the
        given filter to its JSON text inputs and producing the
        filter's results as JSON on standard output.
        The simplest filter is ., which is the identity filter,
        copying jq's input to its output unmodified (except for
        formatting).
        For more advanced filters see the jq(1) manpage ("man jq")
        and/or https://stedolan.github.io/jq
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Tuto Prévision de pluie pour Domoticz

Message par patrice »

Il te manque quelques trucs à la fin de la ligne d'ou les erreurs
la vraie ligne est ici http://easydomoticz.com/prvision-pluie/

Code : Tout sélectionner

pl=$(curl -s "http://www.meteofrance.com/mf3-rpc-portlet/rest/pluie/773800"|jq -r .niveauPluieText|cut -d ' ' -f7|tr -d '['|tr -d ']'|tr -d ' '|sed 's/ //g'|cut -d ' ' -f1)
#echo $pl
pluie=$(echo $pl|cut -d ' ' -f1)
#echo $pluie
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
fabd
Messages : 100
Inscription : 11 janv. 2016, 10:14

Re: Tuto Prévision de pluie pour Domoticz

Message par fabd »

merci, effecitvement, j'avais pas du tilter la premiere fois que tu me l'a indiqué ... :ugeek:
fratton
Messages : 150
Inscription : 19 août 2015, 16:38

Re: Tuto Prévision de pluie pour Domoticz

Message par fratton »

Je vous propose ma version PHP qui va mettre à jour un device de type Alerte.
Je garde LUA pour les scripts de gestion de la domotique (chauffage...).
alerte_pluie.jpg
alerte_pluie.jpg (12.66 Kio) Consulté 12319 fois

Code : Tout sélectionner

<?php
$IDX="99";
$IPPORT="192.168.1.10:8080";
$URL="http://www.meteofrance.com/mf3-rpc-portlet/rest/pluie/01xxxx";

/* début du script */

$json_string = file_get_contents($URL);
$parsed_json = json_decode($json_string, true);
$parsed_json = $parsed_json['niveauPluieText'];
$text="";
foreach ($parsed_json as $value){
   $text.=$value.", ";
}


if ($text=="") {
    $niveau=0;
    $text="Pas de données";
} elseif (strpos($text, 'fortes') !== false) {
    $niveau=4;
} elseif (strpos($text, 'modérées') !== false){
    $niveau=3;
} elseif (strpos($text, 'faibles') !== false) {
    $niveau=2;
} else {
    $niveau=1;
}

if(!is_null($niveau)) {
        $text=str_replace("Pas de précipitations","Aucune",$text);
        $text=str_replace("Précipitations ","",$text);
        $majdomoticz="http://".$IPPORT."/json.htm?type=command&param=udevice&idx=".$IDX."&nvalue=".$niveau."&svalue=".urlencode($text);
        echo file_get_contents($majdomoticz);
}
echo $text."\n";
?>
Raspberry Pi B+ / RF-Link 433MHz / divers device maison 433MHz et Wifi
js-martin
Messages : 487
Inscription : 22 mars 2015, 22:08
Contact :

Re: Tuto Prévision de pluie pour Domoticz

Message par js-martin »

Bonjour,

C'est moi ou la page meteo france n'existe plus depuis quelques jours ?

J'avais un script qui me fermait mes stores en cas de pluie et ca marchait super bien...
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
Répondre