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?
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/
Vous pourriez taper cette commande en ssh:
curl -s --globoff --digest --user login:mdp http://192.168.1.110/cgi-bin/accessControl.cgi?action=openDoor&channel=1&UserID=101&Type=Remote
Je l’ai trouvé sur ce forum: Visiophone et caméras de surveillance - Dahua ? - Page 2 - Forum Domoticz en français
Voici le résultat, ça n’a rien fait au niveau du portier.
jc@debian:/var/www/html/plugins/script/data$ curl -s --globoff --digest --user MonLogin:MonPassword http://192.168.0.16/cgi-bin/accessControl.cgi?action=openDoor&channel=1&UserID=101&Type=Remote
[1] 4687
[2] 4688
[3] 4689
jc@debian:/var/www/html/plugins/script/data$ Error
Bad Request!
[1] Fini curl -s --globoff --digest --user MonLogin:MonPassword http://192.168.0.16/cgi-bin/accessControl.cgi?action=openDoor
[2]- Fini channel=1
[3]+ Fini UserID=101
[2]- Fini channel=1
[3]+ Fini UserID=101
jc@debian:/var/www/html/plugins/script/data$
MonLogin et MonPassword, c’est ceux que vous tapez dans le navigateur ?
Oui, j’ai remplacé les vrais par MonLogin et MonPassword dans les posts du forum.
Je sèche.
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 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:
curl -s --globoff --digest --user MonLogin:MonPassword http://192.168.0.16/cgi-bin/accessControl.cgi?action=openDoor&
channel=1&
UserID=101&
en mettant entre guillements l’URL complète, les &
ne sont pas interpretés, ils font partie intégrante de l’URL appelée.
@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 :
Bonjour @JC38,
je pensais plus comme cela :
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
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.