05-05-2017, 12:16 PM
Bonjour,
Je souhaitais désactiver les caméras intérieures en ma présence et, inversement, les activer en mon absence [mise en route de l'alarme].
Toutes mes caméras sont reliées à mon NAS Synology et j'utilise le logiciel/licence Synology Surveillance Station [SSS].
Il existe une API, bien documentée [pdf de 370 pages] qui offre des perspectives beaucoup plus vastes en domotique que ma simple problématique.
A la demande de Jojo, je vous décris la procédure qui m'a permit d'aboutir à mes fins : un automate pour activer les caméras, un autre pour les désactiver.
Je n'ai quasi aucune connaissance en JS et je maitrise mal les concepts de connecteur universels de la lifedomus donc n'hésitez pas à me corriger ...
Principe du connecteur :
Le login se fait via une requête http [identifiant et mot de passe], qui renvoie un fichier JSON dans lequel apparait un numéro de session (SID). Ce numéro doit apparaitre dans toutes les autres requêtes/action que l'on souhaite réaliser. Une fois nos opérations effectuées, il faut faire un logout
Etape 1: Créer un nouveau connecteur : Universel>TCP/IP Universel>Universel HTTP
Etape 2: Paramétrer le nouveau connecteur
2.1 Saisir : IP ou nom de domaine : 192.168.X.X:5000/webapi (Indiquer l'adresse IP de son NAS)
2.2 Créer et sauvegarder un fichier javascript (fichier texte sauvegardé en *.js avec le Blocnote par exemple) :
var obj = JSON.parse(trame);
if(typeof obj.data != "undefined") {
ldprint(typeof obj.data.sid);
if(typeof obj.data.sid != "undefined") {
ldprint("Sid présent");
Idsession = obj.data.sid ;
}}
ldprint("ID :"+Idsession) ;
Note : le fichier Javascript vise à parser le JSON et de récupérer le SID. Vous verrez qu'il y beaucoup de paramètres qui sont retournés et qu'il est probable que certains utilisateurs soient intéressés pour les exploiter. Il faudra alors modifier le fichier JS en conséquence. Les conditions If avec le Typeof vise à éviter d'écraser la variable Idsession si elle n'est pas présente dans le JSON. Les ldprint ne sont pas indispensables, elles ont participé au débogage de l'ensemble.
2.3 Charger le fichier JS sur le connecteur (icône en bas, flêche entrante vers le carré avec JS)
2.4 Valider/sauvegarder le connecteur
Etape 3: Créer un nouvel équipement : Equipement>Universel>Equipement Générique
Etape 4: Paramétrer ce nouvel équipement
4.1 Sélectionner le connecteur préalablement créé [connecteur universel]
4.2 Créer une variable
4.3.1 Commande "update SID"
Note : XXXX correspond à votre Login, YYYY correspond à votre mot de passe en clair. Au lancement de la commande, le NAS renverra un JSON avec un SID qui sera récupéré dans la variable Idsession.
4.3.2 Commande : désactiver une caméra
Note : le chiffre en bleu (4) correspond à l'ID de la caméra, il doit être adapté à votre configuration, et peut probablement passer en variable en concaténant. On peut par ailleurs sélectionner plusieurs caméras en même temps.
4.3.3 Commande Activer une caméra
Note : le chiffre en bleu (4) correspond à l'ID de la caméra, il doit être adapté à votre configuration, et peut probablement passer en variable en concaténant convenablement. On peut par ailleurs sélectionner plusieurs caméras en même temps.
4.3.4 Autres commandes
L'API regorge de commandes. Il est possible de récupérer beaucoup d'info et de modifier beaucoup de paramètres. Il faut se référer à l'API et adapter les variables et le parsing pour récupérer les infos souhaitées. Vous pouvez donc créer autant de commande que vous souhaitez.
4.3.5 Commande logout
Note : Une fois la commande logout passée. Aucune commande ne pourra être passée. Il faudra relancer une commande authentification (commande Update SID) pour obtenir un SID
Etape 5 : Créer un automate
Source :
http://blog.rexave.net/utilisation-lapi-...e-station/
http://blog.rexave.net/wp-content/upload...I_v1.3.pdf
L'ensemble fonctionne sur la dernière mise à jour de SSS
[url=http://blog.rexave.net/][/url] Voilà, je reste à votre disposition pour répondre à vos questions dans la limite de mes compétences ...
Je souhaitais désactiver les caméras intérieures en ma présence et, inversement, les activer en mon absence [mise en route de l'alarme].
Toutes mes caméras sont reliées à mon NAS Synology et j'utilise le logiciel/licence Synology Surveillance Station [SSS].
Il existe une API, bien documentée [pdf de 370 pages] qui offre des perspectives beaucoup plus vastes en domotique que ma simple problématique.
A la demande de Jojo, je vous décris la procédure qui m'a permit d'aboutir à mes fins : un automate pour activer les caméras, un autre pour les désactiver.
Je n'ai quasi aucune connaissance en JS et je maitrise mal les concepts de connecteur universels de la lifedomus donc n'hésitez pas à me corriger ...
Principe du connecteur :
Le login se fait via une requête http [identifiant et mot de passe], qui renvoie un fichier JSON dans lequel apparait un numéro de session (SID). Ce numéro doit apparaitre dans toutes les autres requêtes/action que l'on souhaite réaliser. Une fois nos opérations effectuées, il faut faire un logout
Etape 1: Créer un nouveau connecteur : Universel>TCP/IP Universel>Universel HTTP
Etape 2: Paramétrer le nouveau connecteur
2.1 Saisir : IP ou nom de domaine : 192.168.X.X:5000/webapi (Indiquer l'adresse IP de son NAS)
2.2 Créer et sauvegarder un fichier javascript (fichier texte sauvegardé en *.js avec le Blocnote par exemple) :
var obj = JSON.parse(trame);
if(typeof obj.data != "undefined") {
ldprint(typeof obj.data.sid);
if(typeof obj.data.sid != "undefined") {
ldprint("Sid présent");
Idsession = obj.data.sid ;
}}
ldprint("ID :"+Idsession) ;
Note : le fichier Javascript vise à parser le JSON et de récupérer le SID. Vous verrez qu'il y beaucoup de paramètres qui sont retournés et qu'il est probable que certains utilisateurs soient intéressés pour les exploiter. Il faudra alors modifier le fichier JS en conséquence. Les conditions If avec le Typeof vise à éviter d'écraser la variable Idsession si elle n'est pas présente dans le JSON. Les ldprint ne sont pas indispensables, elles ont participé au débogage de l'ensemble.
2.3 Charger le fichier JS sur le connecteur (icône en bas, flêche entrante vers le carré avec JS)
2.4 Valider/sauvegarder le connecteur
Etape 3: Créer un nouvel équipement : Equipement>Universel>Equipement Générique
Etape 4: Paramétrer ce nouvel équipement
4.1 Sélectionner le connecteur préalablement créé [connecteur universel]
4.2 Créer une variable
- Onglet en haut à droit variable
- Icone + en bas
- Label : Idsession
- Type : String
4.3.1 Commande "update SID"
- Onglet commande
- Icone + en bas
- Modifier la commande (icône crayon sur la ligne commande)
- Label : Update SID
- Type : JS
- Commande :
Note : XXXX correspond à votre Login, YYYY correspond à votre mot de passe en clair. Au lancement de la commande, le NAS renverra un JSON avec un SID qui sera récupéré dans la variable Idsession.
4.3.2 Commande : désactiver une caméra
- Onglet commande
- Icone + en bas
- Modifier la commande (icône crayon sur la ligne commande)
- Label : "Désactiver la caméra"
- Type : JS
- Commande :
Note : le chiffre en bleu (4) correspond à l'ID de la caméra, il doit être adapté à votre configuration, et peut probablement passer en variable en concaténant. On peut par ailleurs sélectionner plusieurs caméras en même temps.
4.3.3 Commande Activer une caméra
- Onglet commande
- Icone + en bas
- Modifier la commande (icône crayon sur la ligne commande)
- Label : "Activer la caméra"
- Type : JS
- Commande :
Note : le chiffre en bleu (4) correspond à l'ID de la caméra, il doit être adapté à votre configuration, et peut probablement passer en variable en concaténant convenablement. On peut par ailleurs sélectionner plusieurs caméras en même temps.
4.3.4 Autres commandes
L'API regorge de commandes. Il est possible de récupérer beaucoup d'info et de modifier beaucoup de paramètres. Il faut se référer à l'API et adapter les variables et le parsing pour récupérer les infos souhaitées. Vous pouvez donc créer autant de commande que vous souhaitez.
4.3.5 Commande logout
- Onglet commande
- Icone + en bas
- Modifier la commande (icône crayon sur la ligne commande)
- Label : "Logout"
- Type : JS
- Commande :
Note : Une fois la commande logout passée. Aucune commande ne pourra être passée. Il faudra relancer une commande authentification (commande Update SID) pour obtenir un SID
Etape 5 : Créer un automate
- Créer un nouvel automate
- Créér une action, sélectionner l'équipement, sélectionner la commande "Update SID"
- Insérer un wait de 2 secondes (valeur arbitraire, je ne suis pas sûr que cela soit utile ...)
- Créér une action, sélectionner l'équipement, sélectionner la commande que vous souhaiter réaliser par l'automate (activer, désactiver ...)
- Insérer un wait de 2 secondes (je ne suis pas sûr que cela soit utile)
- Créér une action, sélectionner l'équipement, sélectionner la commande "Logout"
Source :
http://blog.rexave.net/utilisation-lapi-...e-station/
http://blog.rexave.net/wp-content/upload...I_v1.3.pdf
L'ensemble fonctionne sur la dernière mise à jour de SSS
[url=http://blog.rexave.net/][/url] Voilà, je reste à votre disposition pour répondre à vos questions dans la limite de mes compétences ...
Lifedomus Vision
Interface graphique : Windows Seven, Smartphone/Tablette Androïd
Domotique : KNX, ZWave [wallplug Fibaro, Keyfob], Multiroom Sonos, Ecodevice, Alarme Paradox