biboun Posté(e) le 2 juin 2014 Signaler Posté(e) le 2 juin 2014 Salut les amis, j'en viens poser ma question aux plus pointus d'entre nous, car je m'arrache les cheveux sur un problème vraiment bête. Je teste en ce moment BlueIris pour monitorer , enregistrer, detecter mes cameras.Dans le but d'interfacer BLueIris avec le HC2, j'ai besoin de faire un bête appel http au serveur web blueiris pour le forcer a déclencher un "trigger" , la commande peut se faire depuis une page web et ressemble,à celà : http://ip/admin?camera=front&trigger&user=####&pw=#### depuis un navigateur, aucun soucis, ca retourne un petit peu de texte et ça fait l'action. maintenant, dans un bouton de virtual device: fibaro:debug("starting test") bi = Net.FHttp("192.168.0.100",80) --bi:setBasicAuthentication("######","######") response, status, errorCode=bi:GET("/admin?camera=front&trigger&user=######&pw=######") fibaro:debug(" response=".. response.." status=".. status.." errorCode=" .. errorCode) que j'utilise la syntaxe avec user=&pw= ou le setBasicAuthentication, rien n'y fait, je reçois toujours un errorCode=2J'ai essayé des tonnes de syntaxes inimaginables et inavoubales, sans aucun succès. Du coup, pour aller au bout du problème, j'ai revu mes bases et me suis dit qu'on peut faire une requete http avec un tcp socket, j'ai donc fait : fibaro:debug("starting test") bi = Net.FTcpSocket("192.168.0.100",80) --bi:setBasicAuthentication("######","######") bytes, errorCode=bi:write("GET /admin?camera=front&trigger&user=######&pw=###### HTTP/1.0\n\n") fibaro:debug(" bytes=".. bytes.." errorCode=" .. errorCode) Et là , bon je n'ai forcément pas de retour du serveur web, mais l'action est bien executée...j'ai un retour genre: bytes=65 errorCode=0 QQun peut-il m'expliquer ce que j'ai loupé avec FHttp ? je sèche merci !
Krikroff Posté(e) le 2 juin 2014 Signaler Posté(e) le 2 juin 2014 Salut Alors àvoir ton URL je pense que tu peux éviter l'utilisation de setBasicAuthentication car le couple usr/pwd est passé en paramètre et pas en entête d'authentification ... Après, peux tu poster une réponse normal de la cam suite àl'appel avec ton URL ? Attention: le début va tronquer la réponse si il n'y a pas d'échappement ou si il y a des balises html ! Envoyé de mon iPhone àl'aide de Tapatalk
biboun Posté(e) le 2 juin 2014 Auteur Signaler Posté(e) le 2 juin 2014 alors je ne suis pas sur de comprendre ce que tu veux voir,mais voici le retour complet depuis les outils d'analyse de chrome (j'ai anonimisé aussi l'ip, car la requête etait effectuée de l'exterieur, je suis encore au taf) Remote Address: ############################## Request URL: http://##################/admin?camera=front&trigger&user=####&pw=#### Request Method: GET Status Code: 200 OK Request Headersview source Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding: gzip,deflate,sdch Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4 Authorization: Basic cGllcnJlOnBpZTEwMTA= Connection: keep-alive Cookie: ZMSESSID=dfdl0vf4padngh1c6jprq0mgl4; FREEBOXOS="KO9MX581tAMmI0sJkfQ0cRq6ok2eqb+6PICzwxS6XODWYuseAiq4mBr3lSu9cgRT"; _pk_id.8.0976=bc92635cedde676d.1401720411.1.1401720438.1401720411.; session=04b51f692d0c63cd2ea0536a07ce20d3 Host: ################### User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36 Query String Parametersview sourceview URL encoded camera: front trigger: user: ########## pw: ########### Response Headersview source Access-Control-Allow-Origin: * Cache-Control: no-cache Connection: Close Date: Mon, 02 Jun 2014 16:59:31 GMT P3P: CP="CAO COR CURa ADMa DEVa OUR IND ONL COM DEM PRE" Server: BlueIris-HTTP/1.1 Set-Cookie: session=631e0bf115c164042fc938f945682bfe; path=/; et le retour html: <html><head></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">signal=green </pre><span style="margin: 0px auto; border: 2px dotted rgb(255, 165, 0); position: absolute; z-index: 2147483647; visibility: hidden; left: 127px; width: 0px; top: 80px; height: 1px;"></span><span style="z-index: 2147483647; position: absolute; visibility: hidden; left: 112px; width: 50px; top: 65px; height: 20px; font-size: 10px; color: black;"></span></body></html>
Krikroff Posté(e) le 3 juin 2014 Signaler Posté(e) le 3 juin 2014 Tu peux essayer avec la méthode post pour voir ? local http = Net.FHttp("192.168.0.100"); local response, status, errorCode = http:POST("/admin", "camera=front&trigger&user=######&pw=######"); fibaro:debug(" response=".. response.." status=".. status.." errorCode=" .. errorCode) Sinon, Blue Iris devrait avoir il me semble une API JSON non ?
biboun Posté(e) le 3 juin 2014 Auteur Signaler Posté(e) le 3 juin 2014 je vais tester; oui il y a une api json, mais l'authentification est un peu casse bonbon, il faut recuperer une cle de session, la, hasher md5 avec les login/mdp etc.. et je ne suis pas sur que les fonctions exposées soient celles que je cherche, c'est plutot orienté pour coder une interface de visu tierce..
biboun Posté(e) le 3 juin 2014 Auteur Signaler Posté(e) le 3 juin 2014 je viens de tester, en post il me jette, j'ai un retour d'erreur code 0 , mais rien ne se passe, si je le fais depuis chrome avec une extension qui permet de faire des requetes POST, je recois un code 0 NO RESPONSE
Krikroff Posté(e) le 5 juin 2014 Signaler Posté(e) le 5 juin 2014 Hum.... Tu peux me donner la main et je regarde ? Envoyé de mon iPhone àl'aide de Tapatalk
biboun Posté(e) le 6 juin 2014 Auteur Signaler Posté(e) le 6 juin 2014 Euh ouais, tu veux quoi, la mano coté hc 2 ou un lien fonctionnel avec des identifs vers le serveur blueiris ? celà dit c 'est pour la science, car la version en tcpsocket est en place depuis une petite semaine et ça marche impec, j'ai juste aucune certitude que la commande est passée coté HC2...
Krikroff Posté(e) le 6 juin 2014 Signaler Posté(e) le 6 juin 2014 oui un accès sur http://ip/admin?camera=front&trigger&user=####&pw=#### mais si ca marche avec FTcpSocket c'est bien pas la peine de réinventer le truc ... Après il faut que tu décodes "bytes" pour valider la reponse mais je pense que tu peux partir du principe que si errorCode=0 tout est ok. Mais ça confirme de nouveau les faiblesses de FHttp , bien pour cette raison que j'utilise mon framework LUA partout !
biboun Posté(e) le 11 juin 2014 Auteur Signaler Posté(e) le 11 juin 2014 Salut, j'ai été absent quelques jours, ecoutes ça marche plutôt bien avec le FTcpSocket en effet, pour le moment j'ai 100% d'efficacité. A noter que le BlueIris est vraiment une très bonne solution de monitoring/detection:seul inconvenent, basé sur windows, et nécessite pas mal de ressources si beaucoup de caméras/hd. Avant je detectais la présence devant chez moi, par un capteur pir (très aléatoire) et je déclenchais les cameras ( zoneminder à l'epoque, en requette socket), maintenant je fais tout l'inverse, blueiris détecte une présence, il lance le record d'un evenement séparé ( il record en continue aussi) me previent en push et m'envoie un mail avec 2 photos et une video mp4 en pj, de plus blueiris trigger une scene sur l'api fibaro pour faire allumer les projecteurs si c'est la nuit, bien dissuasif. Pour ceux que ca interesse, blueiris vaut environ 50€ et 8.99 l'app iphone qui permet un monitoring temps réel, accès aux records, et evenements de detection, changement de scenario de monitoring, bref indispensable. Bon c 'est sous windows...
Krikroff Posté(e) le 11 juin 2014 Signaler Posté(e) le 11 juin 2014 Oui, FTcpSocket est très stable, rien à voir avec FHttp ! Et avec iSpy, tu as essayé ? C'est opensource et il est possible de faire beaucoup de chose avec
biboun Posté(e) le 11 juin 2014 Auteur Signaler Posté(e) le 11 juin 2014 J avais testé oui, mais j'avais bloqué sur des options payantes par abonnement, je préfère payer une fois et etre tranquille Envoyé de mon iPhone àl'aide de Tapatalk
supermenteur Posté(e) le 2 avril 2015 Signaler Posté(e) le 2 avril 2015 Bonjour, Je déterre le sujet car pour moi en V4, ça ne marche pas. J'ai bien un errorcode à 0 et 62 bytes de transmis mais aucune activité cote BI. La même commande via un browser lance bien le trigger de la camera. Une idée? comment décoder la réponse de l'appel bi:Write? Merci
Messages recommandés