Script de commande surveillance station

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Script de commande surveillance station

Re: Script de commande surveillance station

par Jean Coudert » 03 mars 2016, 15:26

Bonjour à tous,

Est ce que quelq'un peut me dire si ce script marche ? REst ce que quelqu'un l'a essayé avec le Box Eedomus?

Merci pour les réponses

Re: Script de commande surveillance station

par Vince32 » 10 août 2015, 17:34

Salut,

Est-ce que tu a résolu ton problème?

Normalement comment est ce que tu te connecte sur ta box? via un formulaire?

Je pense que la fonction fopen n'est utilisable que pour ouvrir des fichiers pas pour exécuter leur script et en plus ces fichier doivent être sur le serveur où est exécuté php.

Je pense que CURL serait plus adapté.

Re: Script de commande surveillance station

par remy3885 » 05 mai 2015, 02:28

excuse moi tof pourrais tu être un peu plus explicite je débute en PHP :oops: . Il faut que je déclare mes variable sous cette forme $GLOBALS['IPSyno'] = getValue(getArg('IPSyno')) en début de script au lieu de $IPSyno=getValue(getArg('IPSyno')) :?:

Re: Script de commande surveillance station

par tof73 » 04 mai 2015, 17:55

global $IPSyno, $PortSyno;
au début des fonctions, avec les autres variables nécessaires.

Re: Script de commande surveillance station

par remy3885 » 04 mai 2015, 17:44

en effet j'avais pas fait attention à ça, dans mon script j'ai des variables normalement entre http:// et /webapi on dirait qu'elles ne sont pas prise en compte???
il devrait ouvrir un truc du genre http://192.168.1.xx:xxxx/webapi/auth...........

Re: Script de commande surveillance station

par Vince32 » 04 mai 2015, 16:33

Bonjour,

dans ton message d'erreur, on voit que l'url est mal formé :

## ERROR: Querying [http://:/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=&passwd=&session=SurveillanceStation&format=sid]


"http://:/w " devrait être "http://w"

Re: Script de commande surveillance station

par tof73 » 04 mai 2015, 16:25

http://:/webapi/auth.cgi ne me parait pas une url valide.

Re: Script de commande surveillance station

par remy3885 » 04 mai 2015, 15:57

alors j'ai repris tout mon script pour qu'il soit lisible par ma box eedomus :

Code : Tout sélectionner

<? //Déclaration des variables $IPSyno=getValue(getArg('IPSyno'));//Variable à specifier lors du lancement du script(http://192.168.1.XX/script/?exec=script_XXXXX.php&IPSyno=XXX.XXX.X.XX&PortSyno=XXXX&...) $PortSyno=getValue(getArg('PortSyno'));//Idem $event=getValue(getArg('event'));//Idem ('event' étant le n° d'évenement externe dans les régles d'action de surveillance station) $event2=getValue(getArg('event2'));//Idem $login=getValue(getArg('loginSyno'));//Idem $password=getValue(getArg('passwordSyno'));//Idem $seconde=getValue(getArg('seconde'));//Idem(tempo entre les deux commandes caméra) //Login, on génère un SID function sdk_session(){ $url='http://'.$IPSyno.':'.$PortSyno.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account='.$login.'&passwd='.$password.'&session=SurveillanceStation&format=sid'; $reponse=httpQuery($url, 'GET'); } //logout destruction du SID function sdk_logout(){ $SID=loadVariable('new_SID');//charge la SID $url='http://'.$IPSyno.':'.$PortSyno.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=1&session=SurveillanceStation&_sid='.$SID; $reponse=httpQuery($url,'GET'); $json=sdk_json_decode($reponse); if($json['sucess']!=true){ httpQuery($url,'GET'); } else{ echo'vous êtes délogué'; } } //test de la session function sdk_test(){ $json=sdk_json_decode($reponse); if($json['sucess']!=true){ sdk_logout(); sdk_session(); } else{ $SID=$json['result']['SID']; saveVariable('new_SID',$SID);//Enregistrement valeur de la SID dans une variable } } //Commande de la caméra function sdk_commande1Cam(){ $SID=loadVariable('new_SID');//charge la SID $url='http://'.$IPSyno.':'.$PortSyno.'/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&version=1&method=Trigger&eventId='.$event.'&_sid='.$SID; $reponse=httpQuery($url,'GET'); $json=sdk_json_decode($reponse); if($json['sucess']!=true){ //on réessaye en cas de 'success' false $reponse=httpQuery($url,'GET'); $json=sdk_json_decode($reponse); } } //Commande de la caméra function sdk_commande2Cam(){ $SID=loadVariable('new_SID');//charge la SID $url='http://'.$IPSyno.':'.$PortSyno.'/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&version=1&method=Trigger&eventId='.$event2.'&_sid='.$SID; $reponse=httpQuery($url,'GET'); $json=sdk_json_decode($reponse); if($json['sucess']!=true){ //on réessaye en cas de 'success' false $reponse=httpQuery($url,'GET'); $json=sdk_json_decode($reponse); } } //execution sdk_session(); sdk_test(); sdk_commande1Cam(); sdk_commande2Cam(); sdk_logout(); ?>
Par contre quand j’exécute le script j'ai un message d'erreur :
## ERROR: Querying [http://:/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=&passwd=&session=SurveillanceStation&format=sid] Error 6: Couldn't resolve host '' ## ERROR: Querying [http://:/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=1&session=SurveillanceStation&_sid=] Error 6: Couldn't resolve host '' ## ERROR: Querying [http://:/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=1&session=SurveillanceStation&_sid=] Error 6: Couldn't resolve host '' ## ERROR: Querying [http://:/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=&passwd=&session=SurveillanceStation&format=sid] Error 6: Couldn't resolve host '' ## ERROR: Querying [http://:/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&version=1&method=Trigger&eventId=&_sid=] Error 6: Couldn't resolve host '' ## ERROR: Querying [http://:/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&version=1&method=Trigger&eventId=&_sid=] Error 6: Couldn't resolve host '' ## ERROR: Querying [http://:/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&version=1&method=Trigger&eventId=&_sid=] Error 6: Couldn't resolve host '' ## ERROR: Querying [http://:/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&version=1&method=Trigger&eventId=&_sid=] Error 6: Couldn't resolve host '' ## ERROR: Querying [http://:/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=1&session=SurveillanceStation&_sid=] Error 6: Couldn't resolve host '' ## ERROR: Querying [http://:/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=1&session=SurveillanceStation&_sid=] Error 6: Couldn't resolve host ''
Je suppose que je doit avoir un problème avec la fonction httpQuery() mais je suis pas sure, si quelqu'un peu me donner un coup de main je suis preneur...

Re: Script de commande surveillance station

par remy3885 » 02 mai 2015, 15:55

Voici mon script modifié, est ce que c'est mieux comme ça?
<?php 
// Variable utilisateur
$Synology = 'http//:IP_Synology:Port_Syno';
$login = 'xxxxxx';
$password = 'yyyyyyy';

 
// Création session surveillance station
$SID=json_decode($synology.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2
&account='.$login.'&passwd='.$password.'&session=SurveillanceStation&format=sid');
//ceci génére un n° d'authentification appelé SID (je crois qu'il faut convertir le JSON en XML)		
//j'affecte le code à la variable $SID
 
			
// Lancement enregistrement caméra
file_get_contents($synology.'/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&version=1&method=Trigger&eventId=1&_sid='.$SID);

// Logout session surveillance station
file_get_contents($synology.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=1&session=SurveillanceStation&_sid='.$SID);

 ?>

Re: Script de commande surveillance station

par tof73 » 30 avr. 2015, 15:57

Script de commande surveillance station

par remy3885 » 30 avr. 2015, 14:16

Bonjour,
je débute à peine en php et je souhaite créer un script pour commander mes caméras via synology surveillance station.
Tout ça grâce au commande API de se programme. En gros je voudrais me loguer au programme grâce à une requête http, conserver le numéro d'authentification dans une variable puis lancer l'enregistrement et enfin me dé loguer du programme.
Voici le code que j'ai essayé d’écrire si quelqu'un peut m'aider :D :
<?php 
// Variable utilisateur
$Synology = 'http//:IP_Synology:Port_Syno';
$login = 'xxxxxx';
$password = 'yyyyyyy';

 
// Création session surveillance station
fopen($synology.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2
&account='.$login.'&passwd='.$password.'&session=SurveillanceStation&format=sid','r');
//ceci génére un n° d'authentification appelé SID (je crois qu'il faut convertir le JSON en XML)		
//je voudrais enregistrer ce numéro dans la variable $SID
 
			
// Lancement enregistrement caméra
fopen($synology.'/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&version=1&method=Trigger&eventId=1&_sid='.$SID;

// Logout session surveillance station
fopen($synology.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=1&session=SurveillanceStation&_sid='.$SID;

 ?>
Voilà je ne sais pas si tout est claire. Si vous voulais des précisions n’hésitez pas.