Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1091 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  envoi de requête en php sur Home-assistant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

envoi de requête en php sur Home-assistant

n°2361222
jluc2808
peu le savent et vous ?
Posté le 02-09-2020 à 19:41:22  profilanswer
 

bonjour , je coince depuis quelques temps sur un envoi d'une requête en GET (en PHP) vers home-assistant  
mon code dans mon programme PHP executé sur un Host (HOSTPAPA)  :
 

Code :
  1. $url_to_HA = $Box_url."refresh_token=".$refresh_token."&access_token=".$access_token."&usage_point_id=".$usage_point_id."&flow_id=".$Flow_id;
  2.        if ($debug) {echo "<br>url_to_HA: $url_to_HA";}
  3.        $ch = curl_init();
  4. $headers = array();
  5.         curl_setopt($ch, CURLOPT_URL, $url_to_HA);
  6.         curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
  7.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  8.         curl_setopt($ch, CURLOPT_HEADER, FALSE);
  9.         curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
  10.         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  11.         curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1)
  12.   $response = curl_exec($ch);
  13.   $info = curl_getinfo($ch);
  14.   if($debug){
  15.     echo "<pre>";
  16.     print_r($info);
  17.     echo "</pre>";
  18.    }
  19.   curl_close($ch);


 
mon log :

Code :
  1. url_to_HA: http://xxxxxxx:8123/auth/enedis/ca [...] 18084d4367
  2. Array
  3. (
  4.     [url] => http://xxxxxxx:8123/auth/enedis/ca [...] 18084d4367
  5.     [content_type] =>
  6.     [http_code] => 0
  7.     [header_size] => 0
  8.     [request_size] => 0
  9.     [filetime] => -1
  10.     [ssl_verify_result] => 0
  11.     [redirect_count] => 0
  12.     [total_time] => 0.200431
  13.     [namelookup_time] => 3.4E-5
  14.     [connect_time] => 0
  15.     [pretransfer_time] => 0
  16.     [size_upload] => 0
  17.     [size_download] => 0
  18.     [speed_download] => 0
  19.     [speed_upload] => 0
  20.     [download_content_length] => -1
  21.     [upload_content_length] => -1
  22.     [starttransfer_time] => 0
  23.     [redirect_time] => 0
  24.     [redirect_url] =>
  25.     [primary_ip] =>
  26.     [certinfo] => Array
  27.         (
  28.         )
  29.     [primary_port] => 0
  30.     [local_ip] =>
  31.     [local_port] => 0
  32. )


 
donc au vu du log, c'est comme si la requête n'était pas envoyée ou pas reçue et du côté réception (HA) j'ai rien qui se passe  
 
ce qui me perturbe c'est que si je reprend le contenu de url_to_HA (dans le log) et que je colle le contenu dans un navigateur (ou un extension de type RESTClient), je reçois correctement la requête et j'ai un retour code 200
 
 
donc là je coince  

mood
Publicité
Posté le 02-09-2020 à 19:41:22  profilanswer
 

n°2361224
rufo
Pas me confondre avec Lycos!
Posté le 02-09-2020 à 21:54:11  profilanswer
 

C'est normal que ça soit pas du https ? T'as vérifié que de là où est ton serveur web, tu pingues bien le HA ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2361225
jluc2808
peu le savent et vous ?
Posté le 02-09-2020 à 23:49:00  profilanswer
 

merci de cette suggestion,  
je viens de tester avec du https et c'est pareil, même retour du log que celui que j'ai posté  
 
de plus quand je mets l'url dans RESTClient du browser (en http) c'est OK la requête est bien acheminée

n°2361226
rufo
Pas me confondre avec Lycos!
Posté le 03-09-2020 à 08:11:32  profilanswer
 

PHP affiche bien les mgs d'erreur au niveau du reporting ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2361340
jluc2808
peu le savent et vous ?
Posté le 03-09-2020 à 22:39:47  profilanswer
 

merci de la suggestion mais aucuns résultats et y compris le echo curl_error($ch) ne donne rien  
au passage c'est echo 'curl_error($ch)';
sinon error 500


Message édité par jluc2808 le 03-09-2020 à 22:40:05
n°2361343
rufo
Pas me confondre avec Lycos!
Posté le 03-09-2020 à 23:03:48  profilanswer
 

Non, c'est pas echo 'curl_error($ch)'; mais bien echo curl_error($ch);
Le premier va t'écrire la chaîne curl_error($ch) alors que le second va t'afficher l'erreur retournée par la dernière instruction exécutée par curl :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2361390
jluc2808
peu le savent et vous ?
Posté le 04-09-2020 à 11:32:54  profilanswer
 

rufo a écrit :

Non, c'est pas echo 'curl_error($ch)'; mais bien echo curl_error($ch);
Le premier va t'écrire la chaîne curl_error($ch) alors que le second va t'afficher l'erreur retournée par la dernière instruction exécutée par curl :o


quand je mets echo curl_error($ch);
je n'ai rien en retour et rien sur le site cible  
 
 

n°2361391
jluc2808
peu le savent et vous ?
Posté le 04-09-2020 à 11:37:36  profilanswer
 


 
 
merci de ces suggestion, j'ai bien tenté les timeout et connecttimeout avec plusieurs valeur , j'ai toujours rien  
j'ai regardé le lien, cependant je ne vois pas comment l'utiliser (pas en terme de syntaxe, ça c'est OK) , mais quoi en faire pour ce qui concerne l'envoi de data vers HA

n°2361405
rufo
Pas me confondre avec Lycos!
Posté le 04-09-2020 à 12:35:23  profilanswer
 

jluc2808 a écrit :


quand je mets echo curl_error($ch);
je n'ai rien en retour et rien sur le site cible  
 
 


Au lieu du echo fai un var_dump(curl_error($ch)); même si je toute que ça change qq chose.
T'es bien sûr d'avoir activé le reporting_error à un niveau qui permet de voir toutes les erreurs et warnings ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2361419
MaybeEijOr​Not
but someone at least
Posté le 04-09-2020 à 19:47:25  profilanswer
 

Et ton header ($headers) est ok ? Tu peux essayer de recopier celui envoyé par ton navigateur puisque la requête fonctionne à ce moment là ?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
mood
Publicité
Posté le 04-09-2020 à 19:47:25  profilanswer
 

n°2361422
rufo
Pas me confondre avec Lycos!
Posté le 04-09-2020 à 23:43:34  profilanswer
 

Je parie que ça vient du fait qu'il a pas déclaré un user-agent dans son header et/ou qu'il ne stocke pas de cookie.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2361424
jluc2808
peu le savent et vous ?
Posté le 05-09-2020 à 00:22:11  profilanswer
 

MaybeEijOrNot a écrit :

Et ton header ($headers) est ok ? Tu peux essayer de recopier celui envoyé par ton navigateur puisque la requête fonctionne à ce moment là ?


comme c'est du get rien dans le header, j'ai regardé ce qui est envoyé par RESTClient qui permet de lister simplement les différentes parties et le header est vide

n°2361425
jluc2808
peu le savent et vous ?
Posté le 05-09-2020 à 00:23:14  profilanswer
 

rufo a écrit :

Je parie que ça vient du fait qu'il a pas déclaré un user-agent dans son header et/ou qu'il ne stocke pas de cookie.


effectivement je n'ai pas de user-agent spécifié , mais c'est aussi le cas avec RESTClient qui fonctionne

n°2361440
MaybeEijOr​Not
but someone at least
Posté le 05-09-2020 à 11:50:59  profilanswer
 

Et sinon essaye peut-être de préciser le port avec CURLOPT_PORT. Par contre je ne sais pas s'il faut continuer de préciser le port dans l'url.


Message édité par MaybeEijOrNot le 05-09-2020 à 11:52:04

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  envoi de requête en php sur Home-assistant

 

Sujets relatifs
PB envoi image depuis Mobile Huaweiconversion requête sql XML -> JSON
Récupérer résultat d'une réquête dans un tableau en shell (ksh)Twitter : 4 encarts home made contenant les 4 derniers tweets
requête SQL en phpSQL DISTINCT requete spéciale (POSTGRESQL)
MYSQL : update et select en une seule requêteExcel - intégration de données JSON via requête sur site WEB
Requête ou interface avec cumul quotidien, hebdo, etc.Requete pour traitement de plusieurs Projets
Plus de sujets relatifs à : envoi de requête en php sur Home-assistant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR