plus de forecast avec weatherstack ?

Discussion et échanges de scripts pour la box eedomus

plus de forecast avec weatherstack ?

Messagepar krystyan » 17 Oct 2019 18:38

A priori avec un abonnement free chez weatherstack ex apixu nous n'avons plus accès au forecast pour les prévisions notamment des précipitations bien utiles pour gérer l'arrosage.
Connaissez vous un autre site où nous pourrions avoir ces infos ?
krystyan
 
Messages : 285
Inscription : 28 Nov 2012

Re: plus de forecast avec weatherstack ?

Messagepar merguez07 » 18 Oct 2019 08:06

j'ai vu que J. Nielsen avait fait un nouveau plugin dans le store "prévision météo"

Je n'ai pas testé mais peut être que ça peut répondre à ta demande
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1507
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: plus de forecast avec weatherstack ?

Messagepar krystyan » 18 Oct 2019 15:42

merci merguez07 je regarde si je peux l'adapter
krystyan
 
Messages : 285
Inscription : 28 Nov 2012

Re: plus de forecast avec weatherstack ?

Messagepar krystyan » 19 Oct 2019 13:01

a priori le site http://www.prevision-meteo.ch donne les prévisions de précipitations heure par heure
et j'ai besoin des prévisions J+1 sur 24 heures :oops: :oops: :oops:
krystyan
 
Messages : 285
Inscription : 28 Nov 2012

Re: plus de forecast avec weatherstack ?

Messagepar merguez07 » 19 Oct 2019 16:33

krystyan a écrit:a priori le site http://www.prevision-meteo.ch donne les prévisions de précipitations heure par heure
et j'ai besoin des prévisions J+1 sur 24 heures


c'est quelle type d'infos précises qu'il te faudrait sur Eedomus ?
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1507
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: plus de forecast avec weatherstack ?

Messagepar krystyan » 19 Oct 2019 17:11

j'ai besoin des précipitations sur 24 h de J et J+1
ainsi je fais le cumul sur j-1, j et j+1 pour décider si j'autorise l'arrosage (par exemple si cumul < 5mm arrosage = on)
Auparavant j'utilisais deux requêtes sur Apixu qui me donnaient ces infos
merci de ton aide
krystyan
 
Messages : 285
Inscription : 28 Nov 2012

Re: plus de forecast avec weatherstack ?

Messagepar merguez07 » 19 Oct 2019 20:23

krystyan a écrit:j'ai besoin des précipitations sur 24 h de J et J+1
ainsi je fais le cumul sur j-1, j et j+1 pour décider si j'autorise l'arrosage (par exemple si cumul < 5mm arrosage = on)


ok je t'ai fais un petit script qui devrait te convenir
Capture7.PNG
Capture7.PNG (142.69 Kio) Consulté 353 fois

Capture8.PNG
Capture8.PNG (79.92 Kio) Consulté 353 fois


Code : Tout sélectionner
<?php
/*
 ----------------------------------------------------------------------------------------------------
|Script Meteo du Jour pour eedomus                                                                   |
|                                                                                                    |
| Script qui permet de recuperer au format XML les parametres des previsions                         |
| de la meteo du jour de l'endroit de la  ville                    |
| precisée en VAR1       
| attention le nom de la ville doit être vérifie https://www.prevision-meteo.ch/services/json/{mettre ici le nom de la ville)
 ----------------------------------------------------------------------------------------------------
*/
//************************************************************************************************************************************************************
// dialogue actionneur --> Script
//************************************************************************************************************************************************************
    $mode       =   getArg('mode'                           , true  , NULL);    // $key= cle API weatherstack
    $ville      =   getArg('city'                           , true , NULL);    // $ville =ville (optionnel car le script peut geolocaliser par l'IP externe)
    $periph_id  =   getArg('eedomus_controller_module_id'                 );    // $numero API de l'actionneur qui vient de lancer le script
//************************************************************************************************************************************************************
     
// On recupere la meteo
    if ($mode=="condition") {
       
        sdk_header('text/xml');
        $xml = '<?xml version="1.0" encoding="UTF-8"?>'         ."\n";
        $xml .= '<meteodujour>'                                 ."\n";

        $url="https://www.prevision-meteo.ch/services/json/" .$ville;
        $Tjson = sdk_Tjson($url);


        if (!$Tjson[errors][0][code]) {
            $ville      =   $Tjson[city_info][name];
           
            $Tdata_now          = $Tjson[current_condition];
                $heure_now      = str_replace(':', 'H', $Tdata_now[hour]);
                $date_now       = $Tdata_now[date]." ".$Tdata_now[hour] ; //"19.10.2019 18:00"
            //$tress      = $Tjson[current][feelslike];
                $temp_now       = $Tdata_now[tmp];
                $vent_now       = $Tdata_now[wnd_spd];
                $press_now      = $Tdata_now[pressure];
                $hyg_now        = $Tdata_now[humidity];
                $dirvent_now    = $Tdata_now[wnd_dir];
                $condition_now  = strtolower($Tdata_now[condition]);
           
            $Tdata_day          = $Tjson[fcst_day_0];
                $tmin_day       = $Tdata_day[tmin];
                $tmax_day       = $Tdata_day[tmax];
                $tmoy_day       = ($tmax+$tmin)/2;
           
            $Tdata_day_hour     = $Tjson[fcst_day_0][hourly_data];
                $precip_now     = $Tdata_day_hour[$heure_now][APCPsfc]; //mm
                $type_precip_now= $Tdata_day_hour[$heure_now][ISSNOW]; //0=pluie - 1=neige
                $type_precip_now=($type_precip_now>0)? "neige":"pluie";
                $dirventdeg     = $Tdata_day_hour[$heure_now][WNDDIR10m];
           
            for ($i=0; $i <=4 ; $i++) {
                $Tdata_day_hour[$i]     = $Tjson['fcst_day_'.$i][hourly_data];
                foreach ($Tdata_day_hour[$i]  as $key => $value) {
                    $precip=$value[APCPsfc];
                    if ($precip>0){
                        $heure_deb_precip=$key;
                        $type_precip=$value[ISSNOW];
                        break;
                    }
                }   
                $is_precip_day[$i]   = ($precip>0)? "yes":"no";$precip="";
                $heure_precip_day[$i] = $heure_deb_precip;$heure_deb_precip="";
                $type_precip_day[$i]  = ($type_precip>0)? "neige":"pluie";$type_precip="";
            }   
           
            for ($i=0; $i <=4 ; $i++) {
                $Tdata_day_hour[$i]     = $Tjson['fcst_day_'.$i][hourly_data];
                foreach ($Tdata_day_hour[$i]  as $key => $value) {
                    $cumul_precip+=$value[APCPsfc];
                   
                }   
                $cumul_precip_day[$i]   = $cumul_precip;$cumul_precip="";
 
            }   

            $Tforecast  = (current($Tjson[forecast]));
           
           
           
           
           
           
            $dirventdeg = $Tjson[current][wind_degree];
           
            $pluieact   = $Tjson[current][precip];                     
            $visact     = $Tjson[current][visibility];                                 

            $xml .= '  <status>'      .'ok'         .'</status>'    ."\n";
            $xml .= '  <ville>'       .$ville       .'</ville>'     ."\n";
            $xml .= '  <dateupdate>'  .$date_now  .'</dateupdate>'."\n";   
            $xml .= '  <tact>'        .$temp_now        .'</tact>'      ."\n";   
            $xml .= '  <tmin>'        .$tmin_day        .'</tmin>'      ."\n"; 
            $xml .= '  <tmax>'        .$tmax_day        .'</tmax>'      ."\n";   
            $xml .= '  <tmoy>'        .$tmoy_day        .'</tmoy>'      ."\n"; 
            $xml .= '  <condition>'   .$condition_now   .'</condition>' ."\n";
            $xml .= '  <pressact>'    .$press_now    .'</pressact>'  ."\n"; 
            $xml .= '  <ventact>'     .$vent_now     .'</ventact>'   ."\n";
            $xml .= '  <dirvent>'     .$dirvent_now     .'</dirvent>'   ."\n"; 
            $xml .= '  <dirventdeg>'  .$dirventdeg  .'</dirventdeg>'."\n";
            $xml .= '  <hygact>'      .$hyg_now      .'</hygact>'    ."\n"; 
            $xml .= '  <precipit>'    .$precip_now    .'</precipit>'  ."\n";   
            $xml .= '  <type_precipit_act>'      .$type_precip_now      .'</type_precipit_act>'    ."\n";
            $xml .= '  <is_precip_j>'      .$is_precip_day[0]      .'</is_precip_j>'    ."\n"; 
            $xml .= '  <type_precip_j>'    .$type_precip_day[0]     .'</type_precip_j>'  ."\n";   
            $xml .= '  <heure_precip_j>'      .$heure_precip_day[0]       .'</heure_precip_j>'    ."\n";
            $xml .= '  <cumul_precip_j>'      .$cumul_precip_day[0]       .'</cumul_precip_j>'    ."\n";   
            $xml .= '  <is_precip_j1>'      .$is_precip_day[1]       .'</is_precip_j1>'    ."\n"; 
            $xml .= '  <type_precip_j1>'    .$type_precip_day[1]    .'</type_precip_j1>'  ."\n";   
            $xml .= '  <heure_precip_j1>'      .$heure_precip_day[1]      .'</heure_precip_j1>'    ."\n"; 
            $xml .= '  <cumul_precip_j1>'      .$cumul_precip_day[1]       .'</cumul_precip_j1>'    ."\n";
            $xml .= '  <is_precip_j2>'      .$is_precip_day[2]      .'</is_precip_j2>'    ."\n"; 
            $xml .= '  <type_precip_j2>'    .$type_precip_day[2]    .'</type_precip_j2>'  ."\n";   
            $xml .= '  <heure_precip_j2>'      .$heure_precip_day[2]      .'</heure_precip_j2>'    ."\n";   
            $xml .= '  <cumul_precip_j2>'      .$cumul_precip_day[2]       .'</cumul_precip_j2>'    ."\n";
            $xml .= '  <is_precip_j3>'      .$is_precip_day[3]      .'</is_precip_j3>'    ."\n"; 
            $xml .= '  <type_precip_j3>'    .$type_precip_day[3]    .'</type_precip_j3>'  ."\n";   
            $xml .= '  <heure_precip_j3>'      .$heure_precip_day[3]       .'</heure_precip_j3>'    ."\n";
            $xml .= '  <cumul_precip_j3>'      .$cumul_precip_day[3]       .'</cumul_precip_j3>'    ."\n";
            $xml .= '  <is_precip_j4>'      .$is_precip_day[4]       .'</is_precip_j4>'    ."\n"; 
            $xml .= '  <type_precip_j4>'    .$type_precip_day[4]    .'</type_precip_j4>'  ."\n";   
            $xml .= '  <heure_precip_j4>'      .$heure_precip_day[4]      .'</heure_precip_j4>'    ."\n";
            $xml .= '  <cumul_precip_j4>'      .$cumul_precip_day[4]       .'</cumul_precip_j4>'    ."\n";

        } else {
            $xml .= '  <status> Erreur '.$Tjson[error][0][code]." - ".$Tjson[error][0][text].$Tjson[error][0][description] .'</status>'    ."\n";
        }

        $xml .= '</meteodujour>';
        saveVariable('meteodujour', $xml);
    } else {
        $xml=loadvariable('meteodujour'); 
    }

    echo $xml;                           
    die;                                 



   
    function sdk_Tjson($url){                 

        $json   = httpQuery($url);             
        $Tjson  = sdk_json_decode($json);     
        return $Tjson;                       
    }

   
?>
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1507
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: plus de forecast avec weatherstack ?

Messagepar ARTNOW » 19 Oct 2019 21:40

Je suis admiratif MERGUEZ , comment faire pour apprendre à programmer comme tu fais (en autodidacte bien sur , je ne vais pas retourner à l'école)... :shock:
EEDOMUS + -RFP1000-ENOCEAN-IPX 800 V4-FIBARO -GOOGLE(Home-Nest & mini)
ARDUINO-RASPBERRY PRUSA MK3S
Domotisation de :1xPiscine/9xClimatisations réversibles/2xVolets somfy/1xAlarme/1xChauffe-Eau thermodynamique/3xPortes Garage et 1xportail
ARTNOW
 
Messages : 242
Inscription : 22 Avr 2018
Localisation : LOIRE ATLANTIQUE

Re: plus de forecast avec weatherstack ?

Messagepar merguez07 » 19 Oct 2019 22:33

ARTNOW a écrit:comment faire pour apprendre à programmer comme tu fais


Je te rassure ArtNow, le script que je viens de faire est à la portée de tous. Je n'ai pas un gros niveau car j'ai appris aussi en autodidacte dès que j'ai eu ma box Eedomus. Certains membres de ce forum sont capables de faire des scripts beaucoup plus élaborés.
Dans ma signature il y a un guide pour faire des scripts.

Il y a pas mal de sites internet qui proposent des tutos interessants en PHP

après je peux t'expliquer mon code, ligne par ligne si tu veux comprendre rapidement.

A+
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1507
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: plus de forecast avec weatherstack ?

Messagepar ARTNOW » 19 Oct 2019 23:50

merguez07 a écrit:
ARTNOW a écrit:comment faire pour apprendre à programmer comme tu fais


Je te rassure ArtNow, le script que je viens de faire est à la portée de tous. Je n'ai pas un gros niveau car j'ai appris aussi en autodidacte dès que j'ai eu ma box Eedomus. Certains membres de ce forum sont capables de faire des scripts beaucoup plus élaborés.
Dans ma signature il y a un guide pour faire des scripts.

Il y a pas mal de sites internet qui proposent des tutos interessants en PHP

après je peux t'expliquer mon code, ligne par ligne si tu veux comprendre rapidement.

A+


Merci de ta réponse , je vais avoir du temps libre en novembre , je vais suivre déjà tes liens et m’instruire , je reviendrais vers toi si j'ai des question merci MERGUEZ ;)
EEDOMUS + -RFP1000-ENOCEAN-IPX 800 V4-FIBARO -GOOGLE(Home-Nest & mini)
ARDUINO-RASPBERRY PRUSA MK3S
Domotisation de :1xPiscine/9xClimatisations réversibles/2xVolets somfy/1xAlarme/1xChauffe-Eau thermodynamique/3xPortes Garage et 1xportail
ARTNOW
 
Messages : 242
Inscription : 22 Avr 2018
Localisation : LOIRE ATLANTIQUE

Re: plus de forecast avec weatherstack ?

Messagepar krystyan » 20 Oct 2019 08:07

Waouh ! grand merci merguez07
je regarde tout cela et je te fais un retour
krystyan
 
Messages : 285
Inscription : 28 Nov 2012

Re: plus de forecast avec weatherstack ?

Messagepar merguez07 » 20 Oct 2019 10:09

signification des xpath

//status --> pour vérifier que la requête ets bien passée
//ville -->
//dateupdate --> date et heure de la mesure ou prévision
//tact --> température en cours
//tmin --> température mini prévue dans la journée
//tmax --> température maxi prévue dans la journée
//tmoy --> température moyenne prévue dans la journée
//condition--> condition de la journée
//pressact --> pression en cours (mbar/hPa)
//ventact --> vitesse du vent en cours (km/h)
//dirvent --> direction du vent en cours
//dirventdeg--> direction du vent en cours (°)
//hygact --> humidité en cours (%)
//precipit--> precipitation en cours (mm)
//type_precipit_act --> type de précipitation en cours (pluie, neige)
//is_precip_j --> va t il precipiter aujourd'hui ? (yes, No)
//type_precip_j --> prévision du type de précipitation du jour (pluie, neige)
//heure_precip_j --> prévision de l'heure de début de la précipitation du jour
//cumul_precip_j --> hauteur prévue de précipitation du jour (mm)
//is_precip_j1
//type_precip_j1
//heure_precip_j1
//cumul_precip_j1
//is_precip_j2
//type_precip_j2
//heure_precip_j2
//cumul_precip_j2
//is_precip_j3
//type_precip_j3
//heure_precip_j3
//cumul_precip_j3
//is_precip_j4
//type_precip_j4
//heure_precip_j4
//cumul_precip_j4
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1507
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: plus de forecast avec weatherstack ?

Messagepar krystyan » 20 Oct 2019 10:20

je dois faire une erreur quelque part ?

Capture.JPG
Capture.JPG (132.43 Kio) Consulté 325 fois
krystyan
 
Messages : 285
Inscription : 28 Nov 2012

Re: plus de forecast avec weatherstack ?

Messagepar merguez07 » 20 Oct 2019 12:06

krystyan a écrit:je dois faire une erreur quelque part ?


comme ça je vois pas d'erreur. j'ai testé pour paris et chez moi ça marche nickel

Tu as quelle box Eedomus ?
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1507
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: plus de forecast avec weatherstack ?

Messagepar krystyan » 20 Oct 2019 12:14

je teste sur une eedomus v2.1
j'ai peut être mal copier le script ?
krystyan
 
Messages : 285
Inscription : 28 Nov 2012

Re: plus de forecast avec weatherstack ?

Messagepar merguez07 » 20 Oct 2019 12:18

tu as team viewer ? je pourrais regarder à distance ton poste
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1507
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: plus de forecast avec weatherstack ?

Messagepar krystyan » 20 Oct 2019 12:34

oui je t'ai envoyé un mp
krystyan
 
Messages : 285
Inscription : 28 Nov 2012

Re: plus de forecast avec weatherstack ?

Messagepar merguez07 » 20 Oct 2019 12:38

krystyan a écrit:oui je t'ai envoyé un mp


idem
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1507
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: plus de forecast avec weatherstack ?

Messagepar merguez07 » 20 Oct 2019 13:16

Krystyan,

comme vu ensemble le problème est lié à la fonction HttpQuery qui affiche chez toi (pas chez moi) un pb de protocole. Je fais remonter à Bart

avais tu essayé le plugin "prévision météo" de J. Nielsen.

En toute logique ce plugin ne devrait pas marcher chez toi mais peux tu confirmer ?
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1507
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: plus de forecast avec weatherstack ?

Messagepar krystyan » 20 Oct 2019 13:24

oui effectivement j'avais essayé ce plugin et il me renvoyait en erreur
krystyan
 
Messages : 285
Inscription : 28 Nov 2012

Suivant

Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invité(s)