IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Cron, PHP et Horaires


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut Cron, PHP et Horaires
    Bonjour , Je vous explique le probleme : (je ne sais pas si je suis sur le bon endroit)

    Je dois toutes les 15 minutes executer un script en php avec cron

    Pour eviter les problemes j'utilise if minutes = XX (15 30 45 0 par exemple)

    Le cron execute ce script sur un serveur mais quand il atteint les 15/30/45/0 minutes aucune valeur n'est enregistré dans la BDD
    J'ai utilisé un "debuggeur" mais la seule chose qu'il m'affiche est le print de la minute
    Le script PHP a fonctionne actuellement avec
    WAMP
    et la commande php sur mon serveur : php /monscript/monscript.php
    Voici mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    <?php
    ///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    //Recuperation des valeurs obligatoires
    //Preparation de la DATE
    date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris)
    $date   = date('Y-m-d H:i');
    $minute = date('i');
    require 'config.php';
    print "{$minute}";
    //$minute = '0';
    // Test de connection a la base de donnes
    try
      {
        $bdd = new PDO('mysql:host=localhost;dbname=maquette;charset=utf8', DB_USER, DB_PASSWORD);
      }
    catch(Exception $e)
      {
        die('Erreur : ' . $e->getMessage());
      }
    //Telechargement et Chargement du fichier channels
    file_put_contents("channels.xml", fopen('http://193.54.197.212/channels.xml', 'r'));
    $Capteurs = simplexml_load_file("channels.xml");
    ///////////////////////////////////////////// Enregistrement des valeurs  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    //Insertion des Capteurs
    // REMOTE CHANNELS
    foreach($Capteurs->RemoteChannels->Channel as $channel)
      {
        print "Nom du capteur: {$channel->Tag} <br />\n";
        print "Type de valeur {$channel->Unit}<br />\n";
        print "$date <br />\n";
        //Si 15 minutes
        if($minute == '15')
          {
            if($channel->Unit == 'C' || $channel->Unit == '°C')
              {
                if($channel->Tag == 'M4IST')
                  {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                  }
                else
                  {
                    print "Temperature <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                  }
              }
            if($channel->Unit == '%' || $channel->Unit == '%H')
              {
                if($channel->Tag == 'M4ISH')
                  {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                  }
                else
                  {
                    print "Humidite <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                  }
              }
            if($channel->Unit == 'PPM' || $channel->Unit == 'ppm')
              {
                $valeur = $channel->Value * 0.10;
                print "CO2 <br /> \n";
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                print "Valeur: {$valeur} <br />\n";
              }
          }
        //Si 30 minutes
        if($minute == '30')
          {
            if($channel->Unit == 'C' || $channel->Unit == '°C')
              {
                if($channel->Tag == 'M4IST')
                  {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                  }
                else
                  {
                    print "Temperature <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                  }
              }
            if($channel->Unit == '%' || $channel->Unit == '%H')
              {
                if($channel->Tag == 'M4ISH')
                  {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                  }
                else
                  {
                    print "Humidite <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                  }
              }
            if($channel->Unit == 'PPM' || $channel->Unit == 'ppm')
              {
                $valeur = $channel->Value * 0.10;
                print "CO2 <br /> \n";
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$valeur' WHERE TagCapteur ='$channel->Tag'");
                print "Valeur: {$valeur} <br />\n";
              }
          }
        //Si 45 minutes
        if($minute == '45')
          {
            if($channel->Unit == 'C' || $channel->Unit == '°C')
              {
                if($channel->Tag == 'M4IST')
                  {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                  }
                else
                  {
                    print "Temperature <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                  }
              }
            if($channel->Unit == '%' || $channel->Unit == '%H')
              {
                if($channel->Tag == 'M4ISH')
                  {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                  }
                else
                  {
                    print "Humidite <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                  }
              }
            if($channel->Unit == 'PPM' || $channel->Unit == 'ppm')
              {
                $valeur = $channel->Value * 0.10;
                print "CO2 <br /> \n";
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                print "Valeur: {$valeur} <br />\n";
              }
          }
        //Si 1h
        if($minute == '0')
          {
            $connect = mysql_connect("localhost", "root", "*");
            mysql_select_db("maquette");
            if($channel->Unit == 'C' || $channel->Unit == '?C' || $channel->Unit == '?C')
              {
                if($channel->Tag == 'M4IST')
                  {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                    print "Temperature <br /> \n";
                    $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                    $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                    $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                    $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                    $resultat15 = mysql_result($valeur15, 0);
                    $resultat30 = mysql_result($valeur30, 0);
                    $resultat45 = mysql_result($valeur45, 0);
                    $resultat60 = mysql_result($valeur60, 0);
                    print "Valeur {$resultat15}";
                    print "Valeur {$resultat30}";
                    print "Valeur {$resultat45}";
                    print "Valeur {$resultat60}";
                    $valeur1 = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                    print "Valeur1 {$valeur1}";
                    $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur1','$date','$channel->Tag','C')");
                  }
                else
                  {
                    print "Temperature <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                    $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                    $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                    $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                    $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                    $resultat15 = mysql_result($valeur15, 0);
                    $resultat30 = mysql_result($valeur30, 0);
                    $resultat45 = mysql_result($valeur45, 0);
                    $resultat60 = mysql_result($valeur60, 0);
                    print "Valeur {$resultat15}";
                    print "Valeur {$resultat30}";
                    print "Valeur {$resultat45}";
                    print "Valeur {$resultat60}";
                    $valeur1 = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                    print "Valeur1 {$valeur1}";
                    $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur1','$date','$channel->Tag','C')");
                  }
              }
            if($channel->Unit == '%' || $channel->Unit == '%H')
              {
                if($channel->Tag == 'M4ISH')
                  {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                    print "Temperature <br /> \n";
                    $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                    $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                    $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                    $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                    $resultat15 = mysql_result($valeur15, 0);
                    $resultat30 = mysql_result($valeur30, 0);
                    $resultat45 = mysql_result($valeur45, 0);
                    $resultat60 = mysql_result($valeur60, 0);
                    print "Valeur {$resultat15}";
                    print "Valeur {$resultat30}";
                    print "Valeur {$resultat45}";
                    print "Valeur {$resultat60}";
                    $valeur1 = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                    print "Valeur1 {$valeur1}";
                    $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur1','$date','$channel->Tag','%')");
                  }
                else
                  {
                    print "Humidite <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                    $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                    $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                    $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                    $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                    $resultat15 = mysql_result($valeur15, 0);
                    $resultat30 = mysql_result($valeur30, 0);
                    $resultat45 = mysql_result($valeur45, 0);
                    $resultat60 = mysql_result($valeur60, 0);
                    print "Valeur {$resultat15}";
                    print "Valeur {$resultat30}";
                    print "Valeur {$resultat45}";
                    print "Valeur {$resultat60}";
                    $valeur1 = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                    print "Valeur1 {$valeur1}";
                    $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur1','$date','$channel->Tag','%')");
                  }
              }
            if($channel->Unit == 'PPM' || $channel->Unit == 'ppm')
              {
                $valeur = $channel->Value * 0.10;
                print "CO2 <br /> \n";
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$valeur' WHERE TagCapteur ='$channel->Tag'");
                print "Valeur: {$valeur} <br />\n";
                $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                $resultat15 = mysql_result($valeur15, 0);
                $resultat30 = mysql_result($valeur30, 0);
                $resultat45 = mysql_result($valeur45, 0);
                $resultat60 = mysql_result($valeur60, 0);
                print "Valeur {$resultat15}";
                print "Valeur {$resultat30}";
                print "Valeur {$resultat45}";
                print "Valeur {$resultat60}";
                $valeur1 = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                print "Valeur1 {$valeur1}";
                $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur1','$date','$channel->Tag','ppm')");
              }
            $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15= '0' WHERE TagCapteur='$channel->Tag'");
            $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30= '0' WHERE TagCapteur='$channel->Tag'");
            $bdd->exec("UPDATE MesureCapteurTemp SET Mesure45= '0' WHERE TagCapteur='$channel->Tag'");
            $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60= '0' WHERE TagCapteur='$channel->Tag'");
          }
      }
    unlink("channels.xml");
    ?>
    Merci de vos reponses

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas débugué plus loin ? Par exemple que vaut $Capteurs ?

    Il peut être nécessaire de préciser le php.ini à utiliser quand tu executes des script en ligne de commande, sinon les extensions ne sont pas chargées.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Est-ce que l'horaire de la cron correspond avec l'heure PHP ?

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    L'horaire de la cron est exact (j'ai mis un print pour avoir la minute exate) et s'affiche correctement dans le "Debugger" . Sachant que le script php fonctionnait auparavant avant que je n'en rajoute un autre sur le serveur je me suis dit que c'etait bon.
    Comment preciser le php.ini ?
    Merci de vos reponses

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Fait nouveau je viens de m'apercevoir que le script s'est executé a certaines heures mais la base de données n'affichent pas des valeurs "normales"

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as contrôlé ce que valait $Capteurs pour commencer ?
    Avant de se lancer dans une solution, il faut identifier l'origine du problème.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Je ne connais pas la fonction pour ouvrir le $Capteurs = simplexml_load_file("channels.xml");
    J'ai essayé avec echo / print sans succes.
    Merci de nouveau de ton aide

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Contenu de la variable $Capteurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    C:\wamp64\www\php\index.php:21:
    object(SimpleXMLElement)[2]
      public 'DeviceTag' => string 'CA' (length=2)
      public 'SerialNumber' => string '12368895' (length=8)
      public 'EnabledAnalogChannels' => string '0' (length=1)
      public 'EnabledDigitalChannels' => string '0' (length=1)
      public 'EnabledRemoteChannels' => string '37' (length=2)
      public 'EnabledVirtualChannels' => string '0' (length=1)
      public 'RemoteChannels' => 
        object(SimpleXMLElement)[3]
          public 'Channel' => 
            array (size=37)
              0 => 
                object(SimpleXMLElement)[5]
                  ...
              1 => 
                object(SimpleXMLElement)[6]
                  ...
              2 => 
                object(SimpleXMLElement)[7]
                  ...
              3 => 
                object(SimpleXMLElement)[8]
                  ...
              4 => 
                object(SimpleXMLElement)[9]
                  ...
              5 => 
                object(SimpleXMLElement)[10]
                  ...
              6 => 
                object(SimpleXMLElement)[11]
                  ...
              7 => 
                object(SimpleXMLElement)[12]
                  ...
              8 => 
                object(SimpleXMLElement)[13]
                  ...
              9 => 
                object(SimpleXMLElement)[14]
                  ...
              10 => 
                object(SimpleXMLElement)[15]
                  ...
              11 => 
                object(SimpleXMLElement)[16]
                  ...
              12 => 
                object(SimpleXMLElement)[17]
                  ...
              13 => 
                object(SimpleXMLElement)[18]
                  ...
              14 => 
                object(SimpleXMLElement)[19]
                  ...
              15 => 
                object(SimpleXMLElement)[20]
                  ...
              16 => 
                object(SimpleXMLElement)[21]
                  ...
              17 => 
                object(SimpleXMLElement)[22]
                  ...
              18 => 
                object(SimpleXMLElement)[23]
                  ...
              19 => 
                object(SimpleXMLElement)[24]
                  ...
              20 => 
                object(SimpleXMLElement)[25]
                  ...
              21 => 
                object(SimpleXMLElement)[26]
                  ...
              22 => 
                object(SimpleXMLElement)[27]
                  ...
              23 => 
                object(SimpleXMLElement)[28]
                  ...
              24 => 
                object(SimpleXMLElement)[29]
                  ...
              25 => 
                object(SimpleXMLElement)[30]
                  ...
              26 => 
                object(SimpleXMLElement)[31]
                  ...
              27 => 
                object(SimpleXMLElement)[32]
                  ...
              28 => 
                object(SimpleXMLElement)[33]
                  ...
              29 => 
                object(SimpleXMLElement)[34]
                  ...
              30 => 
                object(SimpleXMLElement)[35]
                  ...
              31 => 
                object(SimpleXMLElement)[36]
                  ...
              32 => 
                object(SimpleXMLElement)[37]
                  ...
              33 => 
                object(SimpleXMLElement)[38]
                  ...
              34 => 
                object(SimpleXMLElement)[39]
                  ...
              35 => 
                object(SimpleXMLElement)[40]
                  ...
              36 => 
                object(SimpleXMLElement)[41]
                  ...
      public 'VirtualChannels' =>

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu confirmes que tu ne vois pas les print de Nom du capteur, Type de valeur etc. ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Confirmé dans le cas du CRON uniquement
    un script similaire (sans les exceptions) me retourne : bool(false) dans le fichier texte de debug de cron

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le var_dump que tu as montré, c'est bien celui que tu obtiens via le cron ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Je l'obtiens de temps en temps quand il veut bien fonctionner (il est identique)mais la je ne l'ai plus

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu ne l'as plus ? Tu obtiens quoi du coup ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Plus rien je vais essayer de te resumer correctement la situation pour que tu puisse bien comprendre :
    J'ai deux script a executer dans le cron :
    Le premier script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    <?php
    ///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    //Recuperation des valeurs obligatoires
    //Preparation de la DATE
     
    require 'config.php';
    date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris)
    $date   = date('Y-m-d H:i');
    $minute = date('i');
     
    // Test de connection a la base de donnes 
    try {
        $bdd = new PDO('mysql:host=localhost;dbname=Microcreche;charset=utf8', DB_USER, DB_PASSWORD);
    }
    catch (Exception $e) {
        die('Erreur : ' . $e->getMessage());
    }
    //Telechargement et Chargement du fichier channels
    file_put_contents("channels.xml", fopen('http://80.13.148.4/channels.xml', 'r'));
    $Capteurs = simplexml_load_file("channels.xml");
    var_dump($Capteurs);
    ///////////////////////////////////////////// Enregistrement des valeurs  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    //Insertion des Capteurs
    // REMOTE CHANNELS
    foreach ($Capteurs->RemoteChannels->Channel as $channel) {
        //Si 15 minutes
     
        if ($minute == '15') {
            if ($channel->Unit == 'C' || $channel->Unit == '°C') {
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$channel->Value' WHERE TagCapteur ='$channel->Tag'");
                print "ok";
            }
            if ($channel->Unit == '%' || $channel->Unit == '%H') {
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$channel->Value' WHERE TagCapteur ='$channel->Tag'");
            }
            if ($channel->Unit == 'PPM' || $channel->Unit == 'ppm') {
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$channel->Value' WHERE TagCapteur ='$channel->Tag'");
            }
     
        }
        //Si 30 minutes
        if ($minute == '30') {
            if ($channel->Unit == 'C' || $channel->Unit == '°C' || $channel->Unit == 'ºC') {
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$channel->Value' WHERE TagCapteur ='$channel->Tag'");
            }
            if ($channel->Unit == '%' || $channel->Unit == '%H') {
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$channel->Value' WHERE TagCapteur ='$channel->Tag'");
            }
            if ($channel->Unit == 'PPM' || $channel->Unit == 'ppm') {
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$channel->Value' WHERE TagCapteur ='$channel->Tag'");
            }
     
        }
        //Si 45 minutes
        if ($minute == '45') {
            if ($channel->Unit == 'C' || $channel->Unit == '°C' || $channel->Unit == 'ºC') {
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure45='$channel->Value' WHERE TagCapteur ='$channel->Tag'");
            }
            if ($channel->Unit == '%' || $channel->Unit == '%H') {
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure45='$channel->Value' WHERE TagCapteur ='$channel->Tag'");
            }
            if ($channel->Unit == 'PPM' || $channel->Unit == 'ppm') {
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure45='$channel->Value' WHERE TagCapteur ='$channel->Tag'");
            }
        }
        //Si 1h
        if ($minute == '0') {
            $connect = mysql_connect("localhost", "root", "IrisVitry51")or die(mysql_error());
            mysql_select_db('Microcreche',$connect);
            if ($channel->Unit == 'C' || $channel->Unit == '°C' || $channel->Unit == 'ºC') {
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$channel->Value' WHERE TagCapteur ='$channel->Tag'");
                $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                $resultat15 = mysql_result($valeur15, 0);
                $resultat30 = mysql_result($valeur30, 0);
                $resultat45 = mysql_result($valeur45, 0);
                $resultat60 = mysql_result($valeur60, 0);
                $valeur1    = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur1','$date','$channel->Tag','C')");
            }
            if ($channel->Unit == '%' || $channel->Unit == '%H') {
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$channel->Value' WHERE TagCapteur ='$channel->Tag'");
                $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                $resultat15 = mysql_result($valeur15, 0);
                $resultat30 = mysql_result($valeur30, 0);
                $resultat45 = mysql_result($valeur45, 0);
                $resultat60 = mysql_result($valeur60, 0);
                $valeur1    = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur1','$date','$channel->Tag','%')");
            }
            if ($channel->Unit == 'PPM' || $channel->Unit == 'ppm') {
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$channel->Value' WHERE TagCapteur ='$channel->Tag'");
                $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                $resultat15 = mysql_result($valeur15, 0);
                $resultat30 = mysql_result($valeur30, 0);
                $resultat45 = mysql_result($valeur45, 0);
                $resultat60 = mysql_result($valeur60, 0);
                $valeur1    = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur1','$date','$channel->Tag','ppm')");
            }
            $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15= '0' WHERE TagCapteur='$channel->Tag'");
            $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30= '0' WHERE TagCapteur='$channel->Tag'");
            $bdd->exec("UPDATE MesureCapteurTemp SET Mesure45= '0' WHERE TagCapteur='$channel->Tag'");
            $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60= '0' WHERE TagCapteur='$channel->Tag'");
        }
    Le second script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
     <?php
    ///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    //Recuperation des valeurs obligatoires
    //Preparation de la DATE
    date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris)
     
    $date   = date('Y-m-d H:i');
    $minute = date('i');
    require 'config.php';
    //$minute = '15';
    // Test de connection a la base de donnes 
    try {
        $bdd = new PDO('mysql:host=localhost;dbname=maquette;charset=utf8', DB_USER, DB_PASSWORD);
    }
    catch (Exception $e) {
        die('Erreur : ' . $e->getMessage());
    }
    //Telechargement et Chargement du fichier channels
    file_put_contents("channels.xml", fopen('http://193.54.197.212/channels.xml', 'r'));
    $Capteurs = simplexml_load_file("channels.xml");
    var_dump($Capteurs);
    ///////////////////////////////////////////// Enregistrement des valeurs  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    //Insertion des Capteurs
    // REMOTE CHANNELS
    foreach ($Capteurs->RemoteChannels->Channel as $channel) {
        print "Nom du capteur: {$channel->Tag} <br />\n";
        print "Type de valeur {$channel->Unit}<br />\n";
        print "$date <br />\n";
        //Si 15 minutes
        if ($minute == '15') {
            if ($channel->Unit == 'C' || $channel->Unit == '°C') {
                if ($channel->Tag == 'M4IST') {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                } else {
                    print "Temperature <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                }
            }
            if ($channel->Unit == '%' || $channel->Unit == '%H') {
                if ($channel->Tag == 'M4ISH') {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                } else {
                    print "Humidite <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                }
            }
            if ($channel->Unit == 'PPM' || $channel->Unit == 'ppm') {
                $valeur = $channel->Value * 0.10;
                print "CO2 <br /> \n";
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15='$valeur' WHERE TagCapteur ='$channel->Tag'");
                print "Valeur: {$valeur} <br />\n";
            }
        }
        //Si 30 minutes
        if ($minute == '30') {
            if ($channel->Unit == 'C' || $channel->Unit == '°C') {
                if ($channel->Tag == 'M4IST') {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                } else {
                    print "Temperature <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                }
            }
            if ($channel->Unit == '%' || $channel->Unit == '%H') {
                if ($channel->Tag == 'M4ISH') {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                } else {
                    print "Humidite <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                }
            }
            if ($channel->Unit == 'PPM' || $channel->Unit == 'ppm') {
                $valeur = $channel->Value * 0.10;
                print "CO2 <br /> \n";
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30='$valeur' WHERE TagCapteur ='$channel->Tag'");
                print "Valeur: {$valeur} <br />\n";
            }
        }
        //Si 45 minutes
        if ($minute == '45') {
            if ($channel->Tag == 'M4IST') {
                $valeur = $channel->Value * 0.01;
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure45='$valeur' WHERE TagCapteur ='$channel->Tag'");
                print "Valeur: {$valeur} <br />\n";
            } else {
                print "Temperature <br /> \n";
                $valeur = $channel->Value * 0.10;
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure45='$valeur' WHERE TagCapteur ='$channel->Tag'");
                print "Valeur: {$valeur} <br />\n";
            }
            if ($channel->Unit == '%' || $channel->Unit == '%H') {
                if ($channel->Tag == 'M4ISH') {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure45='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                } else {
                    print "Humidite <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure45='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                }
            }
            if ($channel->Unit == 'PPM' || $channel->Unit == 'ppm') {
                $valeur = $channel->Value * 0.10;
                print "CO2 <br /> \n";
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure45='$valeur' WHERE TagCapteur ='$channel->Tag'");
                print "Valeur: {$valeur} <br />\n";
            }
        }
        //Si 1h
        if ($minute == '0') {
            $connect = mysql_connect("localhost", "root", "IrisVitry51");
            mysql_select_db("maquette");
            if ($channel->Unit == 'C' || $channel->Unit == '°C' || $channel->Unit == '?C') {
                if ($channel->Tag == 'M4IST') {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                    print "Temperature <br /> \n";
                    $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                    $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                    $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                    $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                    $resultat15 = mysql_result($valeur15, 0);
                    $resultat30 = mysql_result($valeur30, 0);
                    $resultat45 = mysql_result($valeur45, 0);
                    $resultat60 = mysql_result($valeur60, 0);
                    print "Valeur {$resultat15}";
                    print "Valeur {$resultat30}";
                    print "Valeur {$resultat45}";
                    print "Valeur {$resultat60}";
                    $valeur1 = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                    print "Valeur1 {$valeur1}";
                    $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur','$date','$channel->Tag','C')");
                } else {
                    print "Temperature <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                    $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                    $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                    $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                    $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                    $resultat15 = mysql_result($valeur15, 0);
                    $resultat30 = mysql_result($valeur30, 0);
                    $resultat45 = mysql_result($valeur45, 0);
                    $resultat60 = mysql_result($valeur60, 0);
                    print "Valeur {$resultat15}";
                    print "Valeur {$resultat30}";
                    print "Valeur {$resultat45}";
                    print "Valeur {$resultat60}";
                    $valeur1 = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                    print "Valeur1 {$valeur1}";
                    $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur','$date','$channel->Tag','C')");
                }
            }
            if ($channel->Unit == '%' || $channel->Unit == '%H') {
                if ($channel->Tag == 'M4ISH') {
                    $valeur = $channel->Value * 0.01;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                    print "Temperature <br /> \n";
                    $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                    $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                    $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                    $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                    $resultat15 = mysql_result($valeur15, 0);
                    $resultat30 = mysql_result($valeur30, 0);
                    $resultat45 = mysql_result($valeur45, 0);
                    $resultat60 = mysql_result($valeur60, 0);
                    print "Valeur {$resultat15}";
                    print "Valeur {$resultat30}";
                    print "Valeur {$resultat45}";
                    print "Valeur {$resultat60}";
                    $valeur1 = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                    print "Valeur1 {$valeur1}";
                    $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur','$date','$channel->Tag','%')");
                } else {
                    print "Humidite <br /> \n";
                    $valeur = $channel->Value * 0.10;
                    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$valeur' WHERE TagCapteur ='$channel->Tag'");
                    print "Valeur: {$valeur} <br />\n";
                    $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                    $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                    $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                    $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                    $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                    $resultat15 = mysql_result($valeur15, 0);
                    $resultat30 = mysql_result($valeur30, 0);
                    $resultat45 = mysql_result($valeur45, 0);
                    $resultat60 = mysql_result($valeur60, 0);
                    print "Valeur {$resultat15}";
                    print "Valeur {$resultat30}";
                    print "Valeur {$resultat45}";
                    print "Valeur {$resultat60}";
                    $valeur1 = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                    print "Valeur1 {$valeur1}";
                    $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur','$date','$channel->Tag','%')");
                }
            }
            if ($channel->Unit == 'PPM' || $channel->Unit == 'ppm') {
                $valeur = $channel->Value * 0.10;
                print "CO2 <br /> \n";
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$valeur' WHERE TagCapteur ='$channel->Tag'");
                print "Valeur: {$valeur} <br />\n";
                $req15 = "SELECT Mesure15 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur15 = mysql_query($req15, $connect) or die(mysql_error());
                $req30 = "SELECT Mesure30 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur30 = mysql_query($req30, $connect) or die(mysql_error());
                $req45 = "SELECT Mesure45 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur45 = mysql_query($req45, $connect) or die(mysql_error());
                $req60 = "SELECT Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'";
                $valeur60 = mysql_query($req60, $connect) or die(mysql_error());
                $resultat15 = mysql_result($valeur15, 0);
                $resultat30 = mysql_result($valeur30, 0);
                $resultat45 = mysql_result($valeur45, 0);
                $resultat60 = mysql_result($valeur60, 0);
                print "Valeur {$resultat15}";
                print "Valeur {$resultat30}";
                print "Valeur {$resultat45}";
                print "Valeur {$resultat60}";
                $valeur1 = ($resultat15 + $resultat30 + $resultat45 + $resultat60) / 4;
                print "Valeur1 {$valeur1}";
                $bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur1','$date','$channel->Tag','ppm')");
     
            }
    		    $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15= '0' WHERE TagCapteur='$channel->Tag'");
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30= '0' WHERE TagCapteur='$channel->Tag'");
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure45= '0' WHERE TagCapteur='$channel->Tag'");
                $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60= '0' WHERE TagCapteur='$channel->Tag'");
        }
     
    }
    unlink("channels.xml");
    ////////////////////////////////////////// NE PAS UTILISER ///////////////////////////////////
    //$bdd->exec("INSERT INTO capteur(TagCapteur,idTypeCapteur,Zone,Salle,Emplacement) VALUES('$channel->Tag','1','1','Exercice 1','sortie')");
    //mysql_query("INSERT INTO articles SET nom='".($article->nom)."' AND id='".($article->id)."'") or die("Erreur MySQL : ".mysql_error());
    //var_dump($channel->Unit);
    //$bdd ->exec('SET NAMES utf8');
    ?>
    Ces scripts fonctionnent avec :
    WAMP
    La commande php /soncourt/index.php
    Sauf avec le cron qui ne me retourne rien
    Je pense qu'il serait mieux qu'on puisse se contacter par skype

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est sûr qu'en nous rajoutant un deuxième script de 200 lignes, on va toute de suite mieux comprendre

    D'ailleurs, je vais deriver un peu du problème mais ton script contient 70% de code redondant.
    Un exemple flagrant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $bdd->exec("UPDATE MesureCapteurTemp SET Mesure15= '0' WHERE TagCapteur='$channel->Tag'");
            $bdd->exec("UPDATE MesureCapteurTemp SET Mesure30= '0' WHERE TagCapteur='$channel->Tag'");
            $bdd->exec("UPDATE MesureCapteurTemp SET Mesure45= '0' WHERE TagCapteur='$channel->Tag'");
            $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60= '0' WHERE TagCapteur='$channel->Tag'");
    Pourquoi faire une requête pour mettre à jour chaque colonne ?

    Regarde comment on peut l'amincir drastiquement, on retirant les parties qui ne sont que des répétitions (et encore on reprenant la logique à zéro on pourrait faire mieux) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     <?php
    ///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    //Recuperation des valeurs obligatoires
    //Preparation de la DATE
    date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris)
     
    $date   = date('Y-m-d H:i');
    $minute = date('i');
    require 'config.php';
    //$minute = '15';
    // Test de connection a la base de donnes 
    try {
        $bdd = new PDO('mysql:host=localhost;dbname=maquette;charset=utf8', DB_USER, DB_PASSWORD);
    }
    catch (Exception $e) {
        die('Erreur : ' . $e->getMessage());
    }
    //Telechargement et Chargement du fichier channels
    $Capteurs = simplexml_load_string("http://193.54.197.212/channels.xml");
    var_dump($Capteurs);
    ///////////////////////////////////////////// Enregistrement des valeurs  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    //Insertion des Capteurs
    // REMOTE CHANNELS
    foreach ($Capteurs->RemoteChannels->Channel as $channel) {
        print "Nom du capteur: {$channel->Tag} <br />\n";
        print "Type de valeur {$channel->Unit}<br />\n";
        print "$date <br />\n";
        //Si 15 minutes
        if (in_array($minute, array('15', '30', '45')) {
            if ($channel->Unit == 'C' || $channel->Unit == '°C') {
                if ($channel->Tag == 'M4IST') {
                    $valeur = $channel->Value * 0.01;
                } else {
                    print "Temperature <br /> \n";
                    $valeur = $channel->Value * 0.10;
                }
            }
            elseif ($channel->Unit == '%' || $channel->Unit == '%H') {
                if ($channel->Tag == 'M4ISH') {
                    $valeur = $channel->Value * 0.01;
                } else {
                    print "Humidite <br /> \n";
                    $valeur = $channel->Value * 0.10;
                }
            }
            elseif ($channel->Unit == 'PPM' || $channel->Unit == 'ppm') {
                $valeur = $channel->Value * 0.10;
                print "CO2 <br /> \n";
            }
    		$bdd->exec("UPDATE MesureCapteurTemp SET Mesure$minute='$valeur' WHERE TagCapteur ='$channel->Tag'");
            print "Valeur: {$valeur} <br />\n";
        }
    	elseif ($minute == '0') {
            if ($channel->Unit == 'C' || $channel->Unit == '°C' || $channel->Unit == '?C') {
                if ($channel->Tag == 'M4IST') {
                    $valeur = $channel->Value * 0.01;
    			}
    			else {
                    print "Temperature <br /> \n";
                    $valeur = $channel->Value * 0.10;
    			}
            }
            elseif ($channel->Unit == '%' || $channel->Unit == '%H') {
                if ($channel->Tag == 'M4ISH') {
                    $valeur = $channel->Value * 0.01;
    			}
    			else {
    				print "Humidite <br /> \n";
                    $valeur = $channel->Value * 0.10;
    			}
    		}
    		elseif ($channel->Unit == 'PPM' || $channel->Unit == 'ppm') {
                $valeur = $channel->Value * 0.10;
                print "CO2 <br /> \n";
    		}
     
            $bdd->exec("UPDATE MesureCapteurTemp SET Mesure60='$valeur' WHERE TagCapteur ='$channel->Tag'");
    		print "Valeur: {$valeur} <br />\n";
    		print "Temperature <br /> \n";
    		$sth = $bdd->query("SELECT Mesure15, Mesure30, Mesure45, Mesure60 FROM MesureCapteurTemp WHERE TagCapteur='$channel->Tag'");
    		$row = $sth->fetch(PDO::FETCH_ASSOC);
    		foreach ($row as $value) {
    			echo "Valeur " . $value;
    		}
    		$moyenne  = array_sum($row) / count($row);
    		echo "Valeur1 " . $moyenne;
    		$bdd->exec("INSERT INTO MesureCapteur(Valeur,Date,TagCapteur,Unite) VALUES('$valeur','$date','$channel->Tag','C')");
     
    		$bdd->exec("UPDATE MesureCapteurTemp SET Mesure15= '0',Mesure30= '0', Mesure45= '0',Mesure60= '0' WHERE TagCapteur='$channel->Tag'");
        }
    }
    ?>
    Pour revenir au sujet ...
    Tu me confirmes que si tu lances le script en ligne de commande (php /soncourt/index.php) à 20h30 par exemple, il fonctionne ?
    Mais que le même script lancé par cron, lui, le fonctionne pas ? D'ailleurs comment vois-tu le retour du script cron ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Woua la vache je suis etonné.
    Oui le script Fonctionne en ligne de commande a 20h30 par exemple
    Mais pas avec cron
    Je vois le retour avec le fichier log qu'on peut specifier dans cron et j'ai une vision sur la BDD
    Ps: Etant debutant dans PHP je ne connaissais pas tout çà

  18. #18
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    J'ai trouvé le a peu pres probleme . Si je met les deux scripts dans cron, les script ne fonctionnent pas. Si je met un seul script le tout fonctionne correctement.... Une idée ?

Discussions similaires

  1. script cron php
    Par kiff97one dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 14/05/2009, 19h11
  2. Exécution d'un cron PHP
    Par arkienou dans le forum Administration système
    Réponses: 9
    Dernier message: 25/07/2007, 11h44
  3. Cron (PHP et C)
    Par cortex2048 dans le forum Administration système
    Réponses: 4
    Dernier message: 11/07/2007, 16h34
  4. Problème Cron + Php + SugarCRM + 1&1
    Par kurkaine dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 28/06/2007, 06h44
  5. Cron + PHP
    Par messier79 dans le forum Administration système
    Réponses: 3
    Dernier message: 13/10/2004, 02h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo