Forum eedomus
https://forum.eedomus.com/

try catch
https://forum.eedomus.com/viewtopic.php?f=50&t=8567
Page 1 sur 1
Auteur:  khane [ 28 Mai 2019 21:41 ]
Sujet du message:  try catch

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
Auteur:  merguez07 [ 03 Juil 2019 16:56 ]
Sujet du message:  Re: try catch

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
};
Auteur:  khane [ 09 Juil 2019 13:02 ]
Sujet du message:  Re: try catch

Merci bcp !
Page 1 sur 1 Le fuseau horaire est UTC+1 heure