Requete http en push avec Script

Bonjour,
J’ai un NAS sur mon réseau local (synology). Je peux enclencher le Home mode avec une requête HTTP toute simple. c’est comme ça que j’ai fonctionné quelque années avant de passer sur Jeedom. La requête en question fonctionne tres bien dans un navigateur
j’aimerai maintenant pouvoir la lancer depuis Jeedom (scenario…)
Malgré tous mes essais, je ne parviens pas à envoyer une bête requete HTTP vers mon NAS s
La requête est de type:

https://nomdemonnas.quickconnect.to/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method="Trigger"&version=1&eventId=1&eventName="This is external event1"&account="nomdutilisateur"&password="motdepasse"

en mettant cette requête dans un navigateur, cela fonctionne et l’action est réalisée sur le NAS (gestion du Home mode)
En créant un script HTTP en Action sans SSL (ou avec) avec la requete ci dessus, il me dit que l’action est bien réalisée, jeedom ne reçoit pas de réponse négative; mais l’action n’est pas réalisée sur le NAS.
je n’attends aucun retour dans JEedom de cette requete. mais je ne comprends pas ce qui ne fonctionne pas pour faire un push de cette requete
Pourriez vous m’aider
merci

1 « J'aime »

Au cas ou si ça peut aider :

Bonjour,
Attention de bien formater la question en utilisant les Texte préformaté par exemple.
Il faudra fournir les logs ainsi que les captures d’écran de la config de l’équipement

Voir ce sujet : Comment nous aider à vous aider - ou Comment poser une bonne question?

Bonjour,

@Mips : ok, désolé pour la mise en forme. Je n’ai pas de capture d’écran ou config d’équipement à vous donner; et pour cause. Je n’ai pas d’équipement qui permette de faire ma requête HTTP et c’est ce que je cherche.

@olive : j’ai essayé en créant un virtuel information ou un script information; aucun des 2 ne fonctionne.
Ci dessous exemple avec un virtuel :


Une idée ?
merci beaucoup !!

Re

@olive: j’ai vu dans vos nombreux posts qu’il y avait possibilité de faire un push http dans un bloc code d’un scenario ? ça m’irait tout aussi bien mais je n’ai pas franchement compris la syntaxe…

Vu le premier message, j’avais compris que tu avais un équipement de type script avec un commande de type http et la requête en question…

Que veux dire la phrase suivante alors?

Il faudrait montrer cet équipement script qui, si je comprend bien, existe

Si tu part d’un scénario un bloc de code serait semblable a celui-ci :

$req = 'curl -i -XPOST "https://............" ';
$scenario->setLog('DEBUG REQUETTE : '.$req);
$output0 = shell_exec($req);
$scenario->setLog('DEBUG RETOUR : '.$output0);
1 « J'aime »

Hello

@Mips : J’ai tâtonné ! j’ai créé un script et un virtuel pour essayer; mais la requête ne passe dans aucun des 2 cas.

Le moyen m’est égal, j’ai juste besoin de lancer un push HTTP du type décrit ci dessus.

Je commence à me demander si ce n’est pas une histoire de pare feu ou autre qui bloque. c’est bien une requete en local, mais bon…

@olive : J’ai essayé le script en scenario en collant simplement ma requete a la place du http… de ton exemple. Pour l’instant sans succes

Fait bien attention aux délimiteurs " et ’ il ne faut pas imbriquer 2 fois les mêmes !!!

Tu a les 2 lignes de debug dans le script pour t’aider n’hésite pas a consulter les log du scenario.

eh oui. voici les logs

------------------------------------
[2020-10-01 16:31:11][SCENARIO] Start : Scenario lance manuellement.
[2020-10-01 16:31:11][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-10-01 16:31:11][SCENARIO] Exécution d'un bloc élément : 123
[2020-10-01 16:31:11][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-10-01 16:31:11][SCENARIO] Exécution d'un bloc code
[2020-10-01 16:31:11][SCENARIO] DEBUG REQUETTE : curl -i -XPOST "https://nasamoi.fr4.quickconnect.to/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method="Trigger"&version=1&eventId=2&eventName="This is external event2"&account="acount"&password="motdepasse""
[2020-10-01 16:31:11][SCENARIO] DEBUG RETOUR : HTTP/2 307
location: http://nasamoi.quickconnect.to/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method=Trigger&version=1&eventId=2&eventName=This
date: Thu, 01 Oct 2020 14:31:11 GMT
content-length: 0
[2020-10-01 16:31:11][SCENARIO] Fin correcte du scénario
------------------------------------
[2020-10-01 16:41:04][SCENARIO] Start : Scenario lance manuellement.
[2020-10-01 16:41:04][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-10-01 16:41:04][SCENARIO] Exécution d'un bloc élément : 123
[2020-10-01 16:41:04][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-10-01 16:41:04][SCENARIO] Exécution d'un bloc code
[2020-10-01 16:41:04][SCENARIO] DEBUG REQUETTE : curl -i -XPOST "https://nasamoi.fr4.quickconnect.to/webapi/entry.cgi?api=SYNO.SurveillanceStation.Webhook&method="Incoming"&version=1&token=123456789GQC9Te2s3d3jqhgJ8iaWsA7gGysNaOc08e5f0yl8zQB1i3f"
[2020-10-01 16:41:04][SCENARIO] DEBUG RETOUR : HTTP/2 307
location: http://nasamoi.quickconnect.to/webapi/entry.cgi?api=SYNO.SurveillanceStation.Webhook&method=Incoming&version=1&token=123456789QC9Te2s3d3jqhgJ8iaWsA7gGysNaOc08e5f0yl8zQB1i3f
date: Thu, 01 Oct 2020 14:41:04 GMT
content-length: 0
[2020-10-01 16:41:04][SCENARIO] Fin correcte du scénario

Dans les 2 essais avec 2requetes http différentes, aucun résultat.

c’est bien ce que je dit tu devrait avoir :

curl -i -XPOST "https://nasamoi.fr4.quickconnect.to/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method='Trigger'&version=1&eventId=2&eventName='This is external event2'&account='acount'&password='motdepasse'"

ton 1er " ne doit pas être interrompu avant la fin il faut donc encadrer tes autre paramètres par des simple ’

tu peut aussi pour simplifier décomposer tes paramètres dans des variable et faire de la concaténation pour simplifier les choses.

quand ça veut pas…

------------------------------------
[2020-10-01 17:03:36][SCENARIO] Start : Scenario lance manuellement.
[2020-10-01 17:03:37][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-10-01 17:03:37][SCENARIO] Exécution d'un bloc élément : 123
[2020-10-01 17:03:37][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-10-01 17:03:37][SCENARIO] Exécution d'un bloc code
[2020-10-01 17:03:37][SCENARIO] syntax error, unexpected 'Trigger' (T_STRING)
[2020-10-01 17:03:37][SCENARIO] Fin correcte du scénario
------------------------------------
1 « J'aime »

C’est clair ta une erreur de syntaxe … cherche tu va trouver tout est dans la syntaxe de ton expression.
oublie pas les ; a la fin

1 « J'aime »

je crois que j’approche…

------------------------------------
[2020-10-01 17:27:09][SCENARIO] Start : Scenario lance manuellement.
[2020-10-01 17:27:09][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-10-01 17:27:09][SCENARIO] Exécution d'un bloc élément : 123
[2020-10-01 17:27:09][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-10-01 17:27:09][SCENARIO] Exécution d'un bloc code
[2020-10-01 17:27:09][SCENARIO] DEBUG REQUETTE : curl -i -XPOST "https://nasamoi.fr.quickconnect.to/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method=Trigger&version=1&eventId=1&eventName=This%20is%20external%20event1&account=account&password=mdp"
[2020-10-01 17:27:09][SCENARIO] DEBUG RETOUR : HTTP/2 307
location: http://nasamoi.quickconnect.to/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method=Trigger&version=1&eventId=1&eventName=This%20is%20external%20event1&account=account&password=mdp
date: Thu, 01 Oct 2020 15:27:09 GMT
content-length: 0
[2020-10-01 17:27:09][SCENARIO] Fin correcte du scénario

De ce que je comprends, le script a fonctionné… mais je n’ai toujours pas l’action à l’autre bout

ça donne quoi dans un navigateur ?

https://nasamoi.fr.quickconnect.to/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method=Trigger&version=1&eventId=1&eventName=This%20is%20external%20event1&account=account&password=mdp

il faut peut être encadrer :

This%20is%20external%20event1

et remette les espaces

un simple script bash avec un wget ca suffit pas ?

Je ne comprend pas la question

1 « J'aime »

wget est au bash ce que curl est au php :slight_smile:

hello,
honnêtement, j’ai essayé tous les encadrement possibles. j’ai essayé de voir dans les options de curl si je pouvais changer qqchose. j’ai lancé directement les requêtes curl dans le terminal de mon Rpi (qui héberge jeedom, comme ça même IP, même droits…) sans plus de succès.

Bonjour,
J’ai le même problème, lorsque j’utilise la commande donnée par mon nas

( http://192.168.1.110:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method=« Trigger »&version=1&eventId=1&eventName=« This is external event1 »&account="{account}"&password="{password}" )

Dans mon navigateur je fait un copier coller ça marche sans problème, par contre dans jeedom avec le plugin script, je n’ai aucune action

Gonzi as tu trouvé une solution pour commander surveillance station avec jeedom ?