try catch

Discussion et échanges de scripts pour la box eedomus

try catch

Messagepar khane » 28 Mai 2019 21:41

Bonsoir,
J'essaye actuellement de modifier le script daikin.php
En effet, celui-ci se connecte à ma clim régulièrement pour en récupérer l'état mais il plante lorsque celle-ci est disjonctée.
En effet il fait
Code : Tout sélectionner
$url = "http://".$GLOBALS['daikin_ip']."/aircon/get_sensor_info";
$response = httpQuery($url);

Or l'url n'est pas disponible et le httpQuery renvoi
Error 7: Failed to connect to 192.168.0.34 port 80: No route to host

J'essaye donc de faire un try / catch mais ca n'a pas l'air de fonctionner
Code : Tout sélectionner
try{
       $url = "http://".$GLOBALS['daikin_ip']."/aircon/get_sensor_info";
       $response = httpQuery($url);
       $status = explode(',',$response);
       $xml = "<xml>";
   
       foreach($status as $parametre)
       {
          $p = explode('=',$parametre);
          // Le mode automatique peut être codé sur plusieurs valeurs
          if ($p[1] == 8)
             $p[1] = 1;
          $xml = $xml ."<".$p[0].">".$p[1]."</".$p[0].">";
       }
       $xml = $xml ."</xml>";
       // Génération du XML
       sdk_header('text/xml');
       echo $xml;
    } catch (Exception $e) {
        sdk_header('text/xml');
       echo "<xml><mode>-1</mode><stemp>-1</stemp><shum>-1</shum><f_rate>-1</f_rate><f_dir>-1</f_dir></xml>";
    }

Auriez vous une idée ?
Merci d'avance
khane
 
Messages : 2
Inscription : 28 Mai 2019

Re: try catch

Messagepar merguez07 » 03 Juil 2019 16:56

Salut Khane,

je viens un peu après la bataille mais j'ai ta réponse

1 - Il faut que tu empèche le HttpQuery d'emettre une erreur en écrivant
Code : Tout sélectionner
$response = httpQuery($url, 'GET', NULL, NULL, NULL, false, $ignore_errors = true);


2 - Il faut que tu testes que ton Url est joignable
Code : Tout sélectionner
$response = httpQuery($url, 'GET', NULL, NULL, NULL, false, $ignore_errors = true);
    if(strpos($response , 'Failed') !== false) {
        $xml  ="<xml><mode>-1</mode><stemp>-1</stemp><shum>-1</shum><f_rate>-1</f_rate><f_dir>-1</f_dir></xml>";
    } else {
    //mise en forme de ton xml
};
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | Google Home Thermostat | TotalWatt | Detecfire
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1333
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: try catch

Messagepar khane » 09 Juil 2019 13:02

Merci bcp !
khane
 
Messages : 2
Inscription : 28 Mai 2019


Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : merguez07 et 2 invité(s)