Quand j’envoie la commande dans l’URL du navigateur, la réponse est : OK
Je pense que même si la réponse était mal interprétée côté Jeedom, l’action serait faite par la cible.
Je suis entrain de tester le script php mais je galère avec des erreurs de syntaxe, vu que je ne connais le php.
<?php
$request_http = new com_http('http://192.168.0.16/cgi-bin/accessControl.cgi?action=openDoor&channel=1&UserID=101&Type=Remote',"MonLogin","MonPassword");
$request_http->setCURLOPT_HTTPAUTH(CURLAUTH_DIGEST);
?>
jc@debian:/var/www/html/plugins/script/data$ php -f portier.php
PHP Fatal error: Uncaught Error: Class 'com_http' not found in /var/www/html/plugins/script/data/portier.php:2
En lisant le code php du plugin, après « La réponse ne contient pas OK » il y a du texte que vous ne donnez pas.
Pouvez-vous SVP fournir une capture d’écran du message complet?
NB: Ce que vous essayez de faire en php avec new com_http… , c’est ce que fait le plugin.
Comme vous faites exécuter le php en dehors de Jeedom avec php -f, il faut ajouter au début du php : require_once __DIR__ . '/../../../core/php/core.inc.php';
pour que la classe com_http soit définie.
Pour Olive, désolé, j’ai lu le nom trop vite
Pour le script php en ligne de commande , j’ai plus l’erreur gra ce à l’include. Mais j’ai aucun retour en ligne de commande.
L’appareil est un portier vidéo de chez Dahua. L’API est dispo
Voici la page relative à la fonction :
Il n’y a pas de login/mot de passe. Juste un UserID. Il doit être passé sur la ligne de commande avec le channel et le Type comme vous l’avez fait dans le navigateur.
C’est quelle réf votre portier?
Vous avez un lien vers la doc complète?
Si je ne passe pas le login et le mot de passe dans l’url du navigateur, je me fais prompter pour les entrer.
Le modèle c’est un VTO3211D
Pour la doc de l’API, elle fait 8 Mo en pdf.
Voici un lien, il faudra un compte je pense pour la récupérer, sinon je peux l’envoyer par un autre moyen. https://ipcamtalk.com/threads/latest-version-of-dahua-http-api-for-ipc-documentation.45213/
La nuit porte conseille et puis c’est l’heure d’aller manger
En attendant, merci beaucoup pour ces efforts.
Pour info, je crois me souvenir qu’avec un wget j’arrive à ouvrir.
Il déclenche bien l’ouverture en le testant depuis Jeedom. Mais j’aimerais bien tester le retour et le traiter pour remonter l’info dans Jeedom, pour déclencher une autre action par exemple.
Voici la sortie du wget
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 4 [text/plain]
Sauvegarde en : « STDOUT »
- 0%[ ] 0 --.-KB/s OK
- 100%[==========================================================================================================================>] 4 --.-KB/s ds 0s
2021-02-20 19:20:51 (272 KB/s) — envoi vers sortie standard [4/4]
saisir ou coller le code ici
Essayez avec l’URL entre guillemets (comme vous l’avez fait avec wget): curl -s --globoff --digest --user MonLogin:MonPassword "http://192.168.0.16/cgi-bin/accessControl.cgi?action=openDoor&channel=1&UserID=101&Type=Remote"
le &, sous bash -ou sh-, exécute la commande qui le précède en tache de fond.
en reprenant votre exemple : curl -s --globoff --digest --user MonLogin:MonPassword http://192.168.0.16/cgi-bin/accessControl.cgi?action=openDoor&channel=1&UserID=101&Type=Remote
→ cela va s’executer comme ci-dessous: