Automatiser l’activation de caméras D-Link DCS dans Domoticz

2 mai 2016 - Domotique

Disposant de caméras D-Link (modèles DCS-930-L-1 et DCS-932B), j’ai cherché un moyen d’actionner automatiquement les captures de photos dans Domoticz. Cela peut avoir beaucoup d’intérêts dans une installation domotique, et les possibilités d’utilisation sont nombreuses, par exemple :

  • activation/désactivation automatique selon un planning prédéfini (pendant vos heures de travail où vous n’êtes pas à la maison par exemple).
  • activation/désactivation sur un évènement piloté par un autre périphérique de l’installation (télécommande, ouverture/fermeture d’une porte, activation ou désactivation d’un système d’alarme).

Les caméras D-Link, comme la plupart des caméras IP, possèdent des API d’accès et d’activation de leurs paramètres via des commandes HTTP. Dans la plupart des cas, les interfaces utilisateurs propres aux caméras utilisent elles-mêmes ces commandes.

Note : pour les périphériques D-Link, j’ai trouvé ce document dont le contenu semble obsolète:
D-Link_IP_surveillance_SDK(CGI_API)_List_V2_2(Feb_26_2013)

D-Link fournit une documentation avec les commandes disponibles pour ses caméras, mais dans les tests que j’ai pu faire, elles semblent obsolètes ou non complètement fonctionnelles. J’ai donc procédé « autrement » pour arriver à mes fins.

Paramétrage des caméras

settings_mailCes explications reposent sur l’activation / désactivation de la fonction « Détection de mouvement » sur les caméras. Vous devez donc auparavant avoir configuré votre ou vos caméra(s) pour transmettre les images capturées (par email ou sur un serveur FTP). Dans l’exemple ci-dessous, les paramètres de messagerie sont préparés, et l’envoi d’un message électronique est activé à chaque détection de mouvement.

Le paramètre que nous allons piloter pour l’activation / désactivation des envois. En mode manuel, cela se passe dans la fenêtre « Détection de mouvement ». Il faut pré-paramétrer l’écran pour que les envois soient faits immédiatement.

settings_capture

En mode « Détection de mouvement » activé uniquement, la caméra enverra un email avec les captures effectuées à chaque mouvement par email. La même chose peut être faite vers un serveur FTP (pour archiver ou publier les captures effectuées).

Pour connaître quelles commandes étaient envoyées dans le navigateur, j’ai utilisé le plugin Live HTTP Headers dans Firefox. A chaque activation (ou désactivation) du paramètre « Détection de mouvement », on peut voir que les commandes suivantes sont envoyées via une méthode POST à l’adresse http://<IP>/setSystemMotion (où <IP> est l’adresse IP de votre caméra):

  • pour l’activation:

  • pour la désactivation :

Des scripts (shell) pour Domoticz

On peut donc aisément écrire un script shell qui reproduit cette action, en utilisant la commande curl, et en lui passant les différents paramètres nécessaires tels que : les identifiants de connexion (à votre caméra, nom d’utilisateur et mot de passe), l’adresse vers où poster les commandes, et le contenu de la commande. Voici le contenu de chacun des scripts. Vous veillerez à remplacer les éléments dans la section « Parameters » par vos identifiants et adresse IP

Script d’activation de la détection de mouvement

Script de désactivation de la détection de mouvement

Ces scripts sont chacun à créer sur votre installation Domoticz dans le répertoire scripts, exemples :

camera1_detection_on.sh et camera1_detection_off.sh

Veillez à donner les droits d’exécution à chacun des scripts (exemple : chmod +x camera1_*.sh)

Activation des composants dans Domoticz

Dans Domoticz, vous devez créer un capteur virtuel de type Interrupteur par caméra. Le seul paramètre nécessaire à la création est le nom du capteur. Vous le retrouvez après sa création dans l’onglet « Interrupteurs ».

Depuis cet onglet, cliquez sur le bouton Editer de l’interrupteur et remplissez le comme sur l’image suivante :

domoticz_interrupteur

Les informations à remplir sont les actions On et Off. Elles indiquent qu’elles doivent exécuter le script que vous avez placé dans le répertoire « scripts » de Domoticz à chaque action. Notez bien que les noms de scripts doivent être précédés par le préfixe script://.

Et c’est tout ! Vous disposez à présent d’un interrupteur virtuel capable d’activer ou de désactiver la détection de mouvement sur vos caméras.

Testé avec des caméras D-Link DCS-930L-1 et D-Link DCS-932B, sous Domoticz (sur Raspberry Pi) version V3.4834.

 

Comments

  1. nicolas dit :

    Merci beaucoup. Après de longs mois de galère ça fonctionne. Par contre pour ma DCS-932L j’ai dû modifier quelque peu la ligne de commande:

    curl -u userid:password http://IPaddress/setSystemMotion –referer http://IPaddress/motion.htm -d « ReplySuccessPage=motion.htm&ReplyErrorPage=motion.htm&MotionDetectionEnable=1&MotionDetectionScheduleDay=0&MotionDetectionScheduleMode=0&MotionDetectionSensitivity=30&ConfigSystemMotion=Save » > /dev/null 2>&1

  2. Borny dit :

    Bonjour,

    Pour ma part j’utilise ceci sur DCS-935L. Appel direct au URL depuis le dummy switch.
    On :
    http://login:pwd@IP/config/motion.cgi?enable=yes
    Off :
    http://login:pwd@IP/config/motion.cgi?enable=off

    Cdlt.

  3. Prayci dit :

    Sur le script d’activation, il y a une coquille dans le nom de la variable ! Ce n’est pas REFERRER mais REFERER.

    En espérant que ça aide 😉

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.