Problème d'envoi d'une commande HTTP

La nuit porte conseille :grin: et puis c’est l’heure d’aller manger :yum:
En attendant, merci beaucoup pour ces efforts.
Pour info, je crois me souvenir qu’avec un wget j’arrive à ouvrir.

Il faut trouver une commande qui fonctionne en ssh, la mettre dans un .sh et appeler le .sh depuis Jeedom.

Avec un sudo wget « l’url avec le mot de passe », je récupère bien un fichier qui contient OK et l’ordre est bien reçu par la gache.

Reste alors à mettre la commande wget dans un fichier .sh
Et le faire exécuter par Jeedom dans une commande du plugin script.

Il y a des choses spécifiques dans le wget qui manquerait dans la commande curl ?

Absolument rien, c’est exactement la même syntaxe que l’url que je passe au navigateur.

Bonsoir,
J’ai pu faire un script très basique (je ne suis pas expert linux)

#/bin/bash
sudo wget -O- "http://Login:MotdePasse@192.168.0.16/cgi-bin/accessControl.cgi?action=openDoor&channel=1&UserID=101&Type=Remote"

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:

  • 1ere tâche (ou commande) : curl -s --globoff --digest --user MonLogin:MonPassword http://192.168.0.16/cgi-bin/accessControl.cgi?action=openDoor&
  • 2eme tache (ou commande) : channel=1&
  • 3eme tâche (ou commande) : UserID=101&
  • 4eme tâche (ou commande) : Type=Remote

en mettant entre guillements l’URL complète, les & ne sont pas interpretés, ils font partie intégrante de l’URL appelée.

1 « J'aime »

@mnpg : Merci de l’intérêt porté à mon prroblème

Cette commande fonctionne parfaitement dans une session en ssh mais impossible de la paramétrer de manière fonctionnelle en tant de que script http dans Jeedom.
Ceci n’a aucun effet sur le portier :


Et celle-la ne fonctionne pas dans Jeedom

Erreur http car les " ne sont pas supportées par le script

Bonjour @JC38,
je pensais plus comme cela :


NB : je passe certaines de mes commandes de script directement de cette façon plutôt que de faire un fichier sh (qui ne contiendrait que cette commande)

En suggestion pour votre partie « Statut du portail », je partirai également sur une commande de script de ce type (suivant les informations de l’API indiquées dans votre post précédent) :
Type script : Script
Type : Info / Autre
commande : curl -s --globoff --digest --user MonLogin:MonPassword "http://192.168.0.16/cgi-bin/accessControl.cgi?action=getDoorStatus&channel=1" | cut -d= -f2
→ En retour de cette commande, vous aurez l’état Open, Break ou Close

@mnpg
Merci bcp pour toutes ces informations.
Effectivement, passer la ligne de commande plutot qu’un script sh fonctionne bien.
Pour le statut du portail, la commande fonctionne aussi.
Voici ce que j’ai


Il me manque le traitement de la commande « Portier » qui renvoie OK quand ça se passe bien. Je voudrais pouvoir piloter avec Alexa son ouverture mais pour le moment, elle me répond l’appareil ne répond pas parce qu’il manque le retour d’état mais l’action est bien faite.
J’ai mis ceci en type générique et je suis obligé d’utiliser le mot clef allume plutôt que ouvre pour Alexa

Salut @olive
J’essaie de faire des modifications dans un plugin pour gérer des devices supplémentaires.
J’ai besoin de faire des reqettes http GET et PUT
En ligne de commande ça roule via curl via un curl -X PUT ou GET « http://… »
Le plugin concerné n’utilise par curl mais com_http en php donc.
Est il possible via com_http de faire des requetes en PUT et GET ?
Ca m’éviterait d’avoir à construire mes lignes de commandes ssh…
J’ai vu aussi qu’on pouvait utiliser en PHP curl_init. Quelle difference avec un com_http ?
Au niveau auth, j’ai besoin du BASIC pour le moment. Pas de DIGEST
Thx

salut,
par principe je touche pas aux plugin …
ce serait pas mieux que tu ouvre ton propre sujet non ?

Ce sujet a été automatiquement fermé après 30 heures. Aucune réponse n’est permise dorénavant.