Aller au contenu

Jojo (BE)

Membres
  • Compteur de contenus

    419
  • Inscription

  • Dernière visite

  • Jours gagnés

    2

Tout ce qui a été posté par Jojo (BE)

  1. Bonjour, Voici donc ma première contribution au forum. A la demande de certain, je partage ce que j'ai développé sur la box domotique Lifedomus (Deltadore) pour contrôler mes caméras connectées à Surveillance Station. La discussion originale se trouve ici. Tout d'abord, un grand merci à Grichka, sans l'aide de qui je ne serais jamais arrivé au terme de ce projet. Note : étant donné le nombre important de copies d'écran, il y a en pièce jointe un fichier pdf avec ce texte complet ET les images. J'y ai également joint un second fichier .zip contenant les icônes pour illuster les automates, etc. L'idée est donc de construire une solution qui permettra de contrôler les caméras branchées sur un NAS Synology. Donc également en protocole H.264 ;-) Pour chaque caméra vous aurez : Son ID Son nom Vous pourrez également : l'activer / la désactiver Démarrer / arrêter un enregistrement Avoir un retour de son statut en temps réel (délais = 5 secondes) Connecteur Il faut d'abord créer un connecteur universel http: (Universel -> TCP/IP Universel -> Universel HTTP) Et y importer (en cliquant sur le bouton encadré en rouge ci-dessus) le code JavaScript ci-dessous maxcameras = 4 obj = JSON.parse(trame) if (typeof obj.data != "undefined") { // Update SID if (typeof obj.data.sid != "undefined") { Idsession = obj.data.sid ldprint ("ID : " + Idsession) // Status of cameras } else if (typeof obj.data.total != "undefined") { ldprint ("data.total (cameras) : " + obj.data.total) if (obj.data.total > maxcameras) { total = maxcameras } else { total = obj.data.total } ldprint ("total = " + total) for (i=0; i < total; i++) { ldprint ("data.cameras[" + i + "].id : " + obj.data.cameras.id) eval ("Cameras" + i + "_id = obj.data.cameras[" + i + "].id") ldprint ("data.cameras[" + i + "].name : " + obj.data.cameras.name) eval ("Cameras" + i + "_name = obj.data.cameras[" + i + "].name") ldprint ("data.cameras[" + i + "].recStatus : " + obj.data.cameras.recStatus) eval ("Cameras" + i + "_recStatus = obj.data.cameras[" + i + "].recStatus") ldprint ("data.cameras[" + i + "].enabled : " + obj.data.cameras.enabled) eval ("Cameras" + i + "_enabled = obj.data.cameras[" + i + "].enabled") } } } success = obj.success Equipement Il faut créer un équipement générique (Equipements -> Universel -> Equipement (Générique)). Créez les 5 commandes (ASCII) à l'aide du bouton encadré en rouge ci-dessus Voici le contenu de ces commandes : Activer / Désactiver : (SS_Camera_action = Enable / Disable) ---------------------- /entry.cgi?api=SYNO.SurveillanceStation.Camera&method={SS_Camera_action}&version=3&cameraIds={SS_Camera_id}&_sid={SS_sid} Record Start/Stop : (SS_Camera_action = start / stop) ------------------- /entry.cgi?api=SYNO.SurveillanceStation.ExternalRecording&method=Record&version=1&cameraId={SS_Camera_id}&action={SS_Camera_action}&_sid={SS_sid} Liste des caméras : (SS_Camera_action = List) ------------------- /entry.cgi?api=SYNO.SurveillanceStation.Camera&method={SS_Camera_action}&version=4&_sid={SS_sid} Update SID : ------------ /auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account={SS_account}&passwd={SS_passwd}&session=SurveillanceStation&format=sid Logout : -------- /auth.cgi?api=SYNO.API.Auth&method=Logout&version=2&session=SurveillanceStation&_sid={SS_sid} Dans cet équipement, il faut également créer plusieurs variables Liste des variables : Idsession success Cameras#_id Cameras#_name Cameras#_recStatus Cameras#_enabled Où # est à remplacer par le numéro de la caméra, de 0 à (cfr JavaScript) maxcameras-1. Utilisateur Surveillance Station Créer un utilisateur dans Surveillance Station qui a les droits de Directeur pour toutes les caméras. Variables Il faut créer les variables suivantes dans la LD SS_account - type = Chaîne - nom de l'utilisateur dans Surveillance Station (ici Utilisateur) SS_passwd - type Chaine - mot de passe de l'utilisateur dans Surveillance Station (ici … non, je ne vous le donnerai pas ) SS_sid - type Chaîne - rempli automatiquement = token d'autorisation reçu du Synology SS_Camera_action - type Chaîne - contiendra le type d'action demandée à la caméra (Enable/ Disable / start / stop) SS_Camera_id - type Chaîne - contiendra l'ID (Synology) de la caméra pour laquelle l'action définie dans (SS_Camera_action) sera exécutée SS_Cameras#_id - type Numérique - remplie automatiquement lorsqu'on utilise la commande List. C'est ce numéro qu'il faut préciser dans SS_Camera_id. SS_Cameras#_name - type Chaîne - remplie automatiquement lorsqu'on utilise la commande List SS_Cameras#_enabled - type Booléen - remplie automatiquement par l'automate de mise à jour du statut des caméras SS_Cameras#_record - type Booléen - remplie automatiquement par l'automate de mise à jour du statut des caméras Où # est à remplacer par le numéro de la caméra, de 0 à (cfr JavaScript) maxcameras-1. Dans mon exemple, où J'ai 4 caméras, j'ai créé (5 + 4*4 = ) 21 variables avec # qui va de 0 à 3. Automates Différents automates nous permettrons de prendre les actions nécessaires et de mettre à jour les variables de statut. SS_actions : gère les actions définies : à reproduire à l'identique SS_actions_Send_Manual : exemple d'automate pour lancer une action particulière sur une caméra SS_UpdateSid : génération d'un nouveau token par Synology : à reproduire à l'identique SS_status : mise à jour les variables (SS_Cameras#_enabled & SS_Cameras#_record) avec le statut effectif des caméras. SS_status_autorun : lance l'automate SS_status à fréquence régulière (par défaut 5 secondes), SANS passer par le planificateur de tâches. N.B. : après chaque appel à l'équipement SS HTTP, faite un petit wait de 100 ms pour que la box ait le temps de traiter toutes les commandes / variables. SS_actions On teste si SS_Camera_action = Enable ou Disable. Les deux tests suivants c'est si on a mis des minuscules au lieu de majuscules à Enable et Disable. Ensuite il lance la commande (Activer/Désactiver) au niveau de l'équipement SS HTTP. Après le groupe des 3 premiers IF (pour la gestion des actions Enable/Disable), on gère les actions d'enregistrement (start/stop) suivant le même principe. Enfin, on teste l'action List (ou list), qui récupérera les informations à propos des caméras existantes sur le Synology (leur id et leur nom). Ensuite il lance la commande (List) au niveau de l'équipement SS HTTP. Ensuite, mais ici ce n'est PAS optionnel, il met à jour les informations d'id et de nom des caméras. SS_actions_Send_Manual Cet automate illustre comment utiliser le précédent. SS_UpdateSid On fait un logout, pour tuer le token (sid) existant qui n'est plus valide, et est la cause du non succès de l'action menée. Puis on demande un nouveau token (sid) au Synology : SS_status "courage", c'est le dernier gros automate qui nous permettra de connaitre le statut de toutes vos caméras. Il y a 6 tests par caméra. Car en fonction de la valeur de l'équipement, je teste la valeur de la variable qui va être mise à jour. Elle ne sera mise à jour que si elle est modifiée. Le calcul est vite fait : pour 4 caméras il y aurait 138240 variables mises à jour par jour, et dans 99% des cas pour rien. Le petit Wait de 1ms à la fin de chaue groupe de caméra, c'est pour que ce soit plus joli au niveau graphique. On envoie d'abord l'action List à l'équipement SS HTTP Puis on traite les informations pour mettre à jour les variables de statut de chaque caméra (8 variables ici) J'illustre ici pour Cameras0, mais ce sera exactement la même chose pour toutes les autres. Premier test pour savoir si la caméra est activée ou pas : Ensuite, quelle que soit la réponse, on teste la valeur de la variable, avant d'éventuellement la mettre à jour. Le second groupe de tests est pour savoir si la caméra enregistre ou pas : En fonction de l'humeur du Synology, il retourne soit un champ vide, soit 0 si la caméra n'enregistre pas, d'où le ou dans le test. Ensuite, quelle que soit la réponse, on teste la valeur de la variable, avant d'éventuellement la mettre à jour. SS_status_autorun Ce dernier automate, démarre comme un service Windows avec la box, et tourne en continu pour exécuter le précédent toutes les 5 secondes. Ainsi si vous modifiez quelque-chose à une caméra, même sans passer par la LD, dans les 5 secondes la LD en est informée. Il ne fallait surtout pas planifier le précédent automate toutes les 5 secondes, la planification de la LD serait morte. Par ailleurs, l'avantage de faire un automate séparé, est de pouvoir modifier plus facilement l'automate appelé. Vous remarquerez que j'ai commencé tous mes objets (Variables, automates, équipement sauf le connecteur) par SS. Ainsi c'est plus facile de les retrouver avec les filtres. Tuto - Surveillance Station.pdf
  2. Oui Lifedomus a été racheté par deltadore. J'ai fais un tuto qui me permet depuis ma LD de contrôler mes caméras connectées à SS (enable /disable /start-stop record) en utilisant l'api de SS.. D'où ma question pour prendre des photos et les envoyer par mail. Maintenant si tu veux que je partage cette solution ici, dit le moi sous quelle forme tu préfères Envoyé de mon Nexus 5 en utilisant Tapatalk
  3. j'avais sauvé un brouillon de ma présentation, la voici donc complète : " Bonjour, Inscrit depuis 3 ans déjà, le moins qu'on puisse dire c'est que je n'étais pas très actif... Mais mon Synology tourne tellement bien, que j'en ai presque oublié son existence... Du coup je me suis lancé à fond dans la domotique, en commençant par Fibaro (HCL puis HC2), pour ensuite faire un bref passage par Jeedom, et maintenant tout se trouve sur Lifedomus (il s'agit là d'une solution beaucoup plus fiable que Fibaro, qui risque de se faire oublier également). Donc, j'espère avoir du temps qui va se libérer pour pouvoir approfondir l'exploitation de mon Synology, et partager mes expériences, voir apporter de l'aide (mais là encore j'ai énormément à apprendre). Si vous voulez en savoir plus sur les solutions domotiques Fibaro (www.domotique-fibaro.fr) ou Lifedomus (www.forum-lifedomus.com), utilisateur Jojo A+ "
  4. Oups, merci pour l'accueil et à tapabrol pour m'avoir coupé les phrases... Je la terminerai donc demain en adaptant ma signature Envoyé de mon Nexus 5 en utilisant Tapatalk
  5. Quelqu'un a-t-il une idée ? La réponse serait si évidente que ça, que je n'aurais pas dû la poser ? Merci d'aider quelqu'un qui est loin d'arriver à la cheville de votre niveau d'expertise. Envoyé de mon Nexus 5 en utilisant Tapatalk
  6. Bonjour, Inscrit depuis 3 ans déjà, le moins qu'on puisse dire c'est que je n'étais pas très actif... Mais mon Synology tourne tellement bien, que j'en ai presque oublié son existence... Du coup je me suis lancé à fond dans la domotique, en commençant par Fibaro (HCL puis HC2), pour ensuite faire un bref passage par Jeedom, et ma Envoyé de mon Nexus 5 en utilisant Tapatalk
  7. Désolé, mon temps est très limité. Je n'ai pas été actif pour un sous, car la solution Synology est trop fiable, que j'ai oublié son existence... Je vais de ce pas faire une petite présentation. Si tu veux savoir qui je suis, tu vas sur le forum www.domotique-fibaro.fr et tu regardes pour Jojo, tu verras à quoi j'ai passé mon temps, et que quand j'ai les compétences, je suis le premier à aider. Envoyé de mon Nexus 5 en utilisant Tapatalk
  8. Bonjour, Cela fait fort longtemps que je cherche un moyen d'envoyer des photos prises par mes caméras par mail. MAIS je n'utilise PAS la détection de mouvement incorporée au Synology, ni celle de la caméra (pas assez précis, et je veux les photos que quand je suis en vacances, par exemple). J'ai de vrais détecteurs de mouvement, qui quand ils captent quelque-chose, ils lancent l'enregistrement des caméras via l'API. (Ca, je maitrise). Et je voudrais faire la même chose, qu'ils m'envoyent toutes les 30sec (par exemple) une photo des différentes caméras. Ma version de DSM : 5.2-5067 & de Surveillance Station : 7.1-4146 Merci beaucoup
  9. @Terrano, 1) merci pour ce post ! 2) comment peut-on retrouver l'information sur une API particulière ? tu as donné l'exemple pour surveillance station (ok), mais je cherche une API qui pourrait me donner la MAC address de mon Syno. Je pensais à "SYNO.Core.Network.MACClone" par exmple, mais où (dans quel dir) trouver les infos nécessaires ? Merci de votre aide
  10. Bonjour, Je souhaite automatiser le backup suivant : - Depuis mon Synology (DS212J) un shared folder - Vers un disque dur réseau externe (WDTVLiveHub) J'ai monté ce dernier sur mon Synology dans un shared folder spécifique (MountPoint). Ainsi je peux configurer une tâche de backup local vers ce mount point. Et ça marche presque parfaitement Souvent le backup plante en disant qu'il ne sait pas copier un fichier particulier (mais qui existe, et qu'il ne devrait même pas essayer de copier, car il avait déjà été pris au précédent backup). Dans le Help officiel de Synology, ce n'est pas supporté. Pourquoi ? Quelle est la différence entre un backup sur un shared folder en local sur le Synology et un qui est un mount point ? Est-ce qu'un génie parmi vous a une solution qui marche ? (autre soft, ... ?) Merci de votre aide, j'espère avoir été clair et pas trop long. Vincnt
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.