Impossible d'envoyer une requête URL toute simple en http

Capteurs et actionneurs HTTP

Impossible d'envoyer une requête URL toute simple en http

Messagepar Zozo1202 » 11 Nov 2022 20:31

Bonjour et désolé de poser une question peut être triviale ici mais je ne trouve pas.
Je cherche à envoyer une requête URL à une caméra pour lui dire d'allumer sa diode.
J'ai la syntaxe de la trame, http://adressIP/commande&User&password...
La trame passe très bien depuis n'importe quel browser.
La diode s'alume ou s'éteint, pas de souci.

Maintenant je veux faire ça dans l'eedomus.
- Je crée un périphérique actionneur http
- je vais dans "valeurs", je colle l'URL en entier (c'est toujours la même, pas de paramètre à passer), type GET,
- je peux tester, je peux peux lancer, rien ne se passe.

J'ai pensé au port (avec ou sans aucune différence)
J'ai pensé à tester get, put, post, aucune différence
J'ai essayé actionneur http, toujours rien.

Si je passe par le lien "tester", jai ça:
<HTML><HEAD><TITLE>401 Unauthorized</TITLE></HEAD>
<BODY BGCOLOR="#cc9999"><H4>401 Unauthorized</H4>
Authorization required.
</BODY></HTML>

Bref. Pourquoi c'est unauthorised? Je fais par ailleurs plusieurs requêtes de valeurs dans d'autres appareils par URL aussi pour récupérer des valeurs de températures etc, ça marche très bien.
Qu'est qui peut bloquer ma caméra qui ne reconnait pas l'eedomus alors que ça passe très bien depuis tout le reste?
Toute suggestion bienvenue merci.
Désolé d'être nul
Zozo1202
 
Messages : 15
Inscription : 08 Déc 2017

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar thrymartin » 12 Nov 2022 07:35

normalement le login et le pass d'une requete http (ou ftp) se code ainsi
http(s)://login:pass@adresse(/complement adresse)(:port)

essaye ?
thrymartin
 
Messages : 920
Inscription : 03 Mars 2019
Localisation : La Réunion

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar tabille » 12 Nov 2022 08:09

Bonjour ,

J ai aussi un souci de requête http sur module HEATZY , elle ne fonctionne plus .
je viens de remettre en service mon programme de chauffage en fonction des jours et des moments de la journée , il fonctionnait depuis plusieurs année et ce jour mes requetes HTTP vers les modules ne fonctionne plus .

Quelqu’un peux t il m aidait ?

Voici la requête :

http://192.168.1.126/script/?exec=heatz ... 14&ordre=1

Avec l appli HEATZY toutes les requêtes fonctionnent

Merci d avance

Cordialement
Daniel
eedomus V3.2 , zwave , oregon scientific , heatzy .
tabille
 
Messages : 28
Inscription : 26 Oct 2019

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar Zozo1202 » 12 Nov 2022 10:21

@Thrymartin:
Dans le cas de la caméra concernée, la requette demande le login et mdp en fin de trame.
De toute façon la trame je la vois passer sur Chrome en me connectant à la caméra puis en l'envoyant et en regardant la console en mode inspect/network je la vois passer.
Donc la syntaxe que j'utilise est la bonne.
Par contre, il est vrai que quand je peux l'envoyer depuis chrome, je suis déjà connecté à la caméra. C'est peut être ça qui bloque.
La seule trame ne suffit peut être pas, il faut au préalable s'être déjà connecté; comment faire envoyer toute une succession trames depuis l'eedomus donc?
Zozo1202
 
Messages : 15
Inscription : 08 Déc 2017

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar Zozo1202 » 12 Nov 2022 18:17

Mes progrès sont lents. Mais ca progresse.
En fait l'eddomus envoie bien la requette http, mais se cogne à l'erreur suivante:
<HTML><HEAD><TITLE>401 Unauthorized</TITLE></HEAD>
<BODY BGCOLOR="#cc9999"><H4>401 Unauthorized</H4>
Authorization required.

Oui en principe, la caméra en question accepte bien la commande http, mais à condition que sur la page popup qu'elle envoit on lui donne le login et le mot de passe.
Les deux sont déja dans la trame http, mais clairement pour que la trame passe il faut que la caméra accepte la demande.

Il doit donc falloir un script pour que je puisse envoyer avec la trame une info login afin que la caméra soit à l'écoute de cette demande. Quelqu'un a-t-il une idée?
Zozo1202
 
Messages : 15
Inscription : 08 Déc 2017

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar Zozo1202 » 12 Nov 2022 19:22

Je crois que je progresse toujours.
EN effet lorsque je passe la trame sur un browser sur ordi, la première fois que je le fais il me demande un login dans une fenêtre de popup.
Mais quand c'est la première fois, sans ce login ça ne passe pas;

Quelqu'un sait il comment écrire une trame http qui remplira un login?

Exemple: ma camera par ex reboot sous la commande suivante:
http://192.168.1.xx/reboot.cgi?user=xxx@pwd=xxx
Il faut qu'en même temps que j'envoie cette trame en url vers l'eedomus, il faut aussi que j'envoie dans une fenêtre qui s'ouvre à la fois encore le user et le pwd.
Et ça je n'ai besoin de le faire qu'une première fois.

Comment fait on ça? Toute aide bienvenue.
Zozo1202
 
Messages : 15
Inscription : 08 Déc 2017

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar KikiFUNstyle » 14 Nov 2022 12:06

Tu ne dois pas avoir la bonne syntaxe.
Test cette url dans un onglet de navigation privé, si tu as une popup d'authentification c'est que la syntaxe n'est pas la bonne.
ZWave / RFXCom / broadlink RM /Google Mini / Yeelight / Xiaomi Vacuum V1 / Shelly <3 / Node-RED <3 <3
[Store] Shelly
KikiFUNstyle
 
Messages : 908
Inscription : 24 Avr 2014
Localisation : Toulouse

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar fullpower » 14 Nov 2022 15:30

Bonjour,

il faut que tu cherches la syntaxe de l'API de ta caméra...
Par exemple l'API de ma FOSCAM est (pour activer la détection de mouvement ) :
(J'ai donc un périphérique http avec pour valeur )
"http://192.168.1.62:88/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=caméra_de_toto&pwd=cam3ra2t0t0"

Il y'a bien l'authentification avec usr = caméra_de_toto et le mot de passe : cam3ra2t0t0

Il faut bien entendu que ta caméra soit bien sur le même réseau (internet/wifi) que ta box Eedomus
Programmation ARDUINO, NodeMCU, ESP8266 Eedomus + / Raspberry Pi 3 B + & Raspberry Pi 3 en programmation (Magic mirror)
Elegoo Mars - Artillery Sidewinder V2 - modélisation 3D sur Sketchup, Rhino 3d, Fusion 360, etc.
fullpower
 
Messages : 1159
Inscription : 11 Déc 2015
Localisation : Elsass

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar Zozo1202 » 14 Nov 2022 16:33

Merci de votre retour.
C'est une très bonne idée mais ça ne change rien: je vais essayer de tout poster en détail :

Préambule: je change l'adresse IP de ma camera (histoire d'effacer tout historique de communication de mon ordi, browser etc).
- j'envoie depuis un browser (Chrome par ex) une requette http d'une URL, j'en choisis une qui ne demande aucun login particulier à la caméra: par ex http://192.168.1.69/get_params.cgi
- une fenêtre popup s'ouvre et me demande de m'identifier: username et password.
(si je demande à chrome d'afficher
- si je ne donne pas mes identifiants, je fais annuler, je retombe sur la fenêtre principale, et j'ai une erreur 401, unauthorised. (c'est bien la même que recoit l'eedomus lorsque je lui met la trame ci dessus dans un GET.

- je recommence: http://192.168.1.69/get_params.cgi
- cette fois je donne mes identifiants username et mdp.
- j'obtiens directement la liste des paramètres.
- bien sur je peux alors lui demander tout ce que je veux car j'ai les bonnes syntaxes, mais à condition d'avoir eu cette première communication.

Une remarque importante après avoir fourni login et mdp:
- Si navigation privée: Quand je ferme la fenêtre et que je recommence, il me redemande le login mdp.
- Si fenetre "normale" (non privée): quand je ferme la fenêtre et recommence, SANS SAUVER les identifiants, ben tout passe pour le mieux, il réponds avec les params.cgi sans rien demander.

En gros je n'arrive pas à faire faire la même chose à l'eedomus:
Il semble qu'avant toute communication, la caméra ouvre une demande de login, et tant qu'elle ne l'a pas elle refuse de communiquer
- il faut que j'apprenne à écrire une requete http sous forme d'URL, mais qui soit capable d'envoyer login et mdp. (et ça je sais pas faire)
- Sachant qu'autrement erreur 401 la caméra se tait et ne répond pas.

Je me demande comment je peux passer une trame ou un script dans l'eedomus qui soit capable de remplir les deux variables admin et mdp. Et j'ai que du GET et du POST.
Toute aide bienvenue... Je suis vraiment trop nul...

Pour ceux qui peuvent creuser: ci dessous ce qui se passe dans le script (inspecter/network sur chrome):
- Saisie: http://192.168.1.69/get_params.cgi
- (le popup s'ouvre, je ne remplis rien, et je vois passer:)
Request URL: http://192.168.1.69/get_params.cgi
Request Method: GET
Status Code: 401 Unauthorized
Remote Address: 192.168.1.69:80
Referrer Policy: strict-origin-when-cross-origin
Connection: close
Content-Length: 140
Content-Type: text/html
Date: Mon, 14 Nov 2022 14:18:14 GMT
Server: Netwave IP Camera
WWW-Authenticate: Basic realm="ipcamera_XXX"
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Host: 192.168.1.69
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36


La même chose avec le login et mdp:
- Saisie: http://192.168.1.69/get_params.cgi
- (le popup s'ouvre, je le remplis, login et mdp je vois passer:)
Request URL: http://192.168.1.69/get_params.cgi
Request Method: GET
Status Code: 200 OK
Remote Address: 192.168.1.69:80
Referrer Policy: strict-origin-when-cross-origin
Cache-Control: no-cache
Connection: close
Content-Length: 4345
Content-Type: text/plain
Date: Mon, 14 Nov 2022 15:19:15 GMT
Server: Netwave IP Camera
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Authorization: Basic XXXXX==
Cache-Control: max-age=0
Connection: keep-alive
Host: 192.168.1.69
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36


Si ça parle à quelqu'un, d'avance merci.
Dernière édition par Zozo1202 le 15 Nov 2022 20:36, édité 1 fois.
Zozo1202
 
Messages : 15
Inscription : 08 Déc 2017

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar Zozo1202 » 14 Nov 2022 16:43

KikiFUNstyle a écrit:Tu ne dois pas avoir la bonne syntaxe.


Hélas je pense que la syntaxe est bonne au niveau de la trame elle même.
J'ai les sdk de cette caméra, et franchement une commande toute simple comme
http://192.168.1.70/get_params.cgi
passe sans soucis à condition d'avoir identifié la bécane qui l'envoie avant auprès de la caméra.

Oui il y a d'autres commandes comme (motion alarm on)
http://192.168.1.69/set_alarm.cgi?motion_armed=1&[login]&[mdp]
qui ellent requirent le login et mdp, certes syntaxe plus complexe, mais ça marche aussi, la encore à condition d'avoir donner le login et mdp à la caméra au préalable dans cette fenetre popup.
Zozo1202
 
Messages : 15
Inscription : 08 Déc 2017

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar fullpower » 15 Nov 2022 07:20

Bonjour,

C'est quoi la marque et le modèle de caméra ?

Est ce qu'en ajoutant un utilisateur avec les droits admin (dans les paramètres de ta camera) et en refaisant la même chose avec une commande http en utilisant le nouvel utilisateur créé fonctionne ?

Et enfin, est ce que ta caméra est atteignable depuis internet ?
c.a.d l'ouverture du d'un port de communication de ta caméra (ex les Foscam fonctionnent sur le port 88 en interne, mais pour la Eedomus, j'ai dû ouvrir un port (160) dans la configuration NAT/PAT de ma livebox) et cela sous entend aussi que j'ai fixé son adresse IP ...

Ce ne sont que des pistes à explorer, je pense que la dernière n'est pas forcement obligatoire mais bon ...
Programmation ARDUINO, NodeMCU, ESP8266 Eedomus + / Raspberry Pi 3 B + & Raspberry Pi 3 en programmation (Magic mirror)
Elegoo Mars - Artillery Sidewinder V2 - modélisation 3D sur Sketchup, Rhino 3d, Fusion 360, etc.
fullpower
 
Messages : 1159
Inscription : 11 Déc 2015
Localisation : Elsass

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar Zozo1202 » 15 Nov 2022 12:19

Merci Full power pour la réponse.

C'est quoi la marque et le modèle de caméra ?

R'CAM2 vendue sous la marque AtHome, et fabriquée par Omenex. C'est un peu vieillot mais ça marche très bien. Rotative, IR, et surtout elles envoient des photos direct par mail, j'ai pas besoin de plus.
J'en ai plusieurs, elles sont bien sur adressables depuis internet, elles marchent avec toutes les applis gratuites en ligne. login administrateur, bien sur, les ports sont ouverts depuis la freebox et ca communique très bien.

Par contre, j'aimerais que lorsque je mets mon alarme, elles se mettent automatiquement en détection de mouvement, et les arrêter quand j'arrête l'alarme. L'eedomus pourrait leur envoyer les commandes http qui vont bien pour ça.

Ces caméras ne semblent néanmoins pas compatibles eedomus, aussi j'aime pas trop leur serveur FTP de toute façon. (même si je suis Premium depuis toujours).
Aussi, par manque de bol, dans la syntaxe, la caméra passe son login et mdp en fin de trame. Et ça j'ai pas réussi à faire ça depuis le mode caméra de la eedomus. En effet, j'ai l'impression que toutes les caméras du monde communique plus ou moins en http://IP:port@admin:user etc.
Ben pas celles ci, c'est IP, puis trame, et user et pwd derrière: par ex:
http://IP:port/videostream.cgi[?user=&pwd=&resolution=]
Donc j'ai pas trouvé comment modifier la trame de l'eedomus pour les enregistrer comme caméras. Pas grave, de toute façon pas besoin ftp etc. Juste je veux faire motion detection on/off.

Today elles n'acceptent pas les trames que l'eedomus envoie (erreur 401 unauthorised).
Ben oui, il faut user et mdp à passer avant. Et je n'arrive pas à les faire passer avec un PUT ou un GET etc.

Sur un PC, quand on se connecte par ex à une Edimax (nb, compatibles eedomus), on tombe sur une page web créée par la caméra. La première chose qui apparait, c'est un popup demandant Login et mdp à saisir. Une fois que cette fenêtre est passée, on peut leur envoyer tout par url. C'est tout ce que je cherche. Pouvoir envoyer login et mdp en message url. Et je suis nul je sais pa faire.

Savez vous si c'est possible de faire faire ça à l'eedomus? Si oui comment.
Merci pour votre aide.
Zozo1202
 
Messages : 15
Inscription : 08 Déc 2017

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar KikiFUNstyle » 15 Nov 2022 15:19

tabille a écrit:Bonjour ,

J ai aussi un souci de requête http sur module HEATZY , elle ne fonctionne plus .
je viens de remettre en service mon programme de chauffage en fonction des jours et des moments de la journée , il fonctionnait depuis plusieurs année et ce jour mes requetes HTTP vers les modules ne fonctionne plus .

Quelqu’un peux t il m aidait ?

Voici la requête :

http://192.168.1.126/script/?exec=heatz ... 14&ordre=1

Avec l appli HEATZY toutes les requêtes fonctionnent

Merci d avance

Cordialement

Regarde si tu as bien le Type dans ton actionneur HTTP
Capture d’écran 2022-11-15 à 15.17.58.png
Capture d’écran 2022-11-15 à 15.17.58.png (117.19 Kio) Consulté 4649 fois
ZWave / RFXCom / broadlink RM /Google Mini / Yeelight / Xiaomi Vacuum V1 / Shelly <3 / Node-RED <3 <3
[Store] Shelly
KikiFUNstyle
 
Messages : 908
Inscription : 24 Avr 2014
Localisation : Toulouse

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar KikiFUNstyle » 15 Nov 2022 15:26

Essaye avec
Code : Tout sélectionner
http://<user>:<mdp>@192.168.1.69/get_params.cgi
ZWave / RFXCom / broadlink RM /Google Mini / Yeelight / Xiaomi Vacuum V1 / Shelly <3 / Node-RED <3 <3
[Store] Shelly
KikiFUNstyle
 
Messages : 908
Inscription : 24 Avr 2014
Localisation : Toulouse

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar thrymartin » 16 Nov 2022 03:34

Zozo1202 a écrit:http://192.168.1.69/set_alarm.cgi?motion_armed=1&[login]&[mdp]
qui ellent requirent le login et mdp, certes syntaxe plus complexe, mais ça marche aussi, la encore à condition d'avoir donner le login et mdp à la caméra au préalable dans cette fenetre popup.


et donc la, tu viens de nous dire que &[login]&[mdp] à la fin ne fonctionne pas puisqu'il te faut être identifié au préalable et que donc ça ne change rien si tu les mets ou pas.

je t'ai donné la syntaxe pour login et mdp, en http ou en ftp et KikiFUNstyle vient de te la redonner,
as-tu essayé ?

après il ya des cas ou ça ne fonctionne pas parceque l'identification est plus complexe, par exemple, la fenêtre d'intro (pour accéder à la page de contrôle après en avoir déterminé le mode d'accès) d'une ancienne cam Foscam qui demande systématiquement et quoiqu'il en soit, l'identification, mais même sur cette cam, l'appel direct (pour une capture image par exemple) se fait avec login:pwd@adresse + la commande

MAIS il existe des cas (chez Foscam aussi), ou on peut mettre login et pass à la fin, dans ce cas il faut les identifier puisque la position n'est pas conventionnelle, peut être est ce aussi ta solution ?
donc non pas
&[login]&[mdp]
mais &usr=?????&pwd=?????
(usr et pwd parceque tous les langages sont en anglais, m'étonnerait que mdp soit compris, login peut être )
EDIT : je vois que dans un de tes premiers messages, tu notes un exemple avec
http://192.168.1.xx/reboot.cgi?user=xxx@pwd=xxx
Il faudrait être sur de ta syntaxe, user ou usr ? & ou @ ou : ...
or après, tu indiques juste &[login]&[mdp] ... ça, de mon avis, ça ne peut pas fonctionner puisqu'il n'y a pas de syntaxe ni de mots clés.
quelle est la marque/modele de ta cam, il ya la banque de données IsSpy qui décortique tout pour vérifier ...
thrymartin
 
Messages : 920
Inscription : 03 Mars 2019
Localisation : La Réunion

Re: Impossible d'envoyer une requête URL toute simple en htt

Messagepar fullpower » 16 Nov 2022 07:26

Teste cette commande pour avoir un snapshot :

"http://192.168.1.69/snapshot.cgi?user=TON_LOGIN&pwd=TON_MOT_DE_PASSE&next_url=test_snapshot"

Ce qui est curieux c'est que dans la doc de ta caméra c'est basique ..les commandes http sont les mêmes que pour une FOSCAM ...
Programmation ARDUINO, NodeMCU, ESP8266 Eedomus + / Raspberry Pi 3 B + & Raspberry Pi 3 en programmation (Magic mirror)
Elegoo Mars - Artillery Sidewinder V2 - modélisation 3D sur Sketchup, Rhino 3d, Fusion 360, etc.
fullpower
 
Messages : 1159
Inscription : 11 Déc 2015
Localisation : Elsass


Retour vers Requêtes HTTP

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 15 invité(s)