Enregistrement camera sur surveillance station

Discussion et échanges de scripts pour la box eedomus

Enregistrement camera sur surveillance station

Messagepar remy3885 » 20 Avr 2015 18:25

Salut à tous je suis en train de mettre en place un enregistrement de mes cameras lors du lancement de mon alarme et pour ça je voudrais lancer un script à l'activation de l'alarme. Le problème c'est que je suis nul en script php :D , j'en ai écrit un mais je voudrai l'avis de quelqu'un qui s'y connait. Voilà mon script :

<?php
// User configurable variables
$Synology = Net.FHttp("adresse IP", Port)
$login = "xxxxxx"
$password = "xxxxxxxx"
$event = {1, 2, 3, 4, 5, 6}

// Login session
$payload = "/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=".$login."&passwd=".$password."&session=SurveillanceStation&format=sid"
response, status, errorCode = Synology:GET(payload)
if tonumber(status) == 200 then
$jsonTable = json.decode(response);
if jsonTable.success == true then
$SID = jsonTable.data.sid

for i = 1, #event do
// Lance l'enregistrement
$payload = "/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&version=1&method=Trigger&eventId=".$event[i]."&_sid=".$SID

// Logout session
payload = "/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=1&session=SurveillanceStation&_sid=".$SID

?>
remy3885
 
Messages : 21
Inscription : 20 Mars 2015

Re: Enregistrement camera sur surveillance station

Messagepar Orel' » 23 Avr 2015 11:44

Salut,

Pourquoi tu n'utilises pas' l'API de surveillance station ?

viewtopic.php?f=15&t=1769
Eedomus +
Orel'
 
Messages : 214
Inscription : 01 Mars 2014
Localisation : Val d'Oise - France

Re: Enregistrement camera sur surveillance station

Messagepar remy3885 » 24 Avr 2015 12:06

Je l'utilise justement je souhaite juste le faire par le biais d'un script plutôt qu'avec des actionneur HTTP car la gestion du SID serait alors plus simple
remy3885
 
Messages : 21
Inscription : 20 Mars 2015

Re: Enregistrement camera sur surveillance station

Messagepar remy3885 » 03 Mai 2015 15:30

j'ai vu, après avoir lu pas mal de script pour la eedomus, que le format est inspiré du php mais pas du php 100%. Du coup j'ai écris un autre script. Je le poste si quelqu'un veut jeter un coup d’œil et faire des remarques.
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_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_decode($reponse);
  if($json['sucess']!=true){
    //on réessaye en cas de 'success' false
    $reponse=httpQuery($url,'GET');
    $json=sdk_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_decode($reponse);
  if($json['sucess']!=true){
    //on réessaye en cas de 'success' false
    $reponse=httpQuery($url,'GET');
    $json=sdk_decode($reponse);
  }
}

//execution
sdk_session();
sdk_test();
sdk_commande1Cam();
sleep($seconde);//on temporise entre les deux commandes si ces commandes sont sur la même caméra
sdk_commande2Cam();
sdk_logout();

?>
remy3885
 
Messages : 21
Inscription : 20 Mars 2015

Re: Enregistrement camera sur surveillance station

Messagepar remy3885 » 04 Mai 2015 14:48

Je viens de faire encore quelques petites corrections sur mon script pour qu'il soit accepté par l'eedomus. Entre autre la fonction sleep n'est pas supporté par la box... le voici corrigé :
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();

?>


après un test d’exécution j'ai ce 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 ma fonction httpquery() ne fonctionne pas... si quelqu'un a une idée ça m'interresse :D
remy3885
 
Messages : 21
Inscription : 20 Mars 2015

Re: Enregistrement camera sur surveillance station

Messagepar remy3885 » 11 Mai 2015 12:29

Personne ne peut me donner un coup de main?
remy3885
 
Messages : 21
Inscription : 20 Mars 2015

Re: Enregistrement camera sur surveillance station

Messagepar kalinar » 09 Fév 2016 19:45

Je pose toujours la question mais depuis le temps tu as reçu une réponse? si oui et que ton script marche tu peux montrer comment il fonctionne stp?
kalinar
 
Messages : 3
Inscription : 05 Fév 2016

Re: Enregistrement camera sur surveillance station

Messagepar Novastreet » 09 Août 2016 10:35

Bonjour,

Quelqu'un aurait il trouvé finalement un moyen de mettre en place ce script ?
Novastreet
 
Messages : 57
Inscription : 04 Mai 2016


Retour vers Scripts & Périphériques du store

Qui est en ligne ?

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