API caméra NETATMO

Bonjour, Nouvelle API, maintenant cela fonctionne parfaitement

Les caméras NETATMO (Welcome et Presence) peuvent être commandées par une API. Vous pouvez (pratiquement) tout faire avec.
Elle s’appuie sur le SDK Netatmo officiel, même si aucune autre ressource n’est nécessaire pour obtenir vos données. Il suffit de télécharger et d’utiliser un seul fichier php!

Cette API demande de créer au préalable une APP dans le site officiel de NETATMO afin d’avoir un APP ID et un APP Secret.

Création de votre Client ID et Client secret

  • Connectez vous sur https://dev.netatmo.com/
  • Entrez votre login et mot de passe,
  • Cliquez sur Create your APP,
  • Entrez les champs obligatoires (Name, description, Data Protection Officer name et Data Protection Officer email),
  • Cliquez sur SAVE et notez votre APP id et votre APP Secret
Les opérations suivantes sont actuellement prises en charge

Caméras Présence:

Obtenez et réglez la surveillance de la caméra (activée, désactivée).
Obtenir et définir l’intensité du projecteur de la caméra.
Obtenir et régler le mode de projecteur de l’appareil photo (automatique, allumé, éteint).
Obtenez et définissez le mode automatique du projecteur de l’appareil photo (toujours, les personnes, les voitures, les animaux, autres).
Obtenez et définissez les Smart-Zones de la caméra.
Obtenir et définir des alertes et des enregistrements (ignorer, enregistrer, enregistrer et notifier) pour les humains, les véhicules, les animaux, les autres.
Obtenir et définir des heures d’alertes (de, vers).
Obtenez des événements extérieurs (filtrés par type ou non).
Obtenez l’état de la caméra (s).

Caméras Welcome:

Obtenez et réglez la surveillance de la caméra (activée, désactivée).
Obtenir et régler les personnes à la maison / maison vide.
Obtenez le statut de personne.
Obtenir et définir des alertes et des enregistrements pour les personnes, les visages inconnus, un mouvement.
Obtenir et définir des alertes pour l’alarme.
Définir une personne connue disparue après le temps.
Obtenez des événements intérieurs (filtrés par type ou non).
Obtenez l’état de la caméra (s).


Les prérequis :
– Avoir une caméra NETATMO Welcome ou Presence
– Avoir un NAS ou un serveur permettant d’héberger des scripts PHP.



Actions :
– Récupérez l’API sur le site : API NETATMO,
-> onglet ‘class’,
-> fichier ‘splNetatmoAPI.php‘.
– Sauvegardez ce fichier sur un répertoire Web de votre NAS.
– Télécharger le script PHP ci-dessous et l’enregistrer sur votre serveur

  Script PHP (3,4 KiB, 589 hits)


– Par la suite il est très simple d’ajouter de nouvelles fonctions au script, il suffit de faire un copié/collé avec celles existantes sur le fichier ‘splNetatmoAPI.php‘ et de les intégrer au script.

 

Création du périphérique dans EEDOMUS

  • Ajouter un ‘autre type de périphérique’
  • sélectionnez ‘HTTP actionneur’

Dans la variable VAR1 : Adresse IP de votre serveur (NAS)

Cliquez sur ‘Ajouter des Valeurs’ :

Pour Activer :
?Cam=Votre_Caméra&Arg=setMonitoring&Arg2=on
et
Pour Désactiver :
?Cam=Votre_Caméra&Arg=setMonitoring&Arg2=off

Pour activer, désactiver ou tout autre fonction, vous devez créer une règle et dans ‘Actions’ sélectionner votre ‘HTTP actionneur’ et choisissez l’ordre à exécuter.

Si vous avez le moindre problème, laissez un commentaire !-)

Marc

 

 

 

 

 

 

 

 

 

 

22 réflexions au sujet de « API caméra NETATMO »

  1. Bonjour Marc, super ton projet, pour ma part il s’agit de ma résidence principale. j’ai une box Tahoma, Jeedom et la Eedomus, j’ai aussi un nas synology. Pour le moment avec Tahoma, j’arrive a faire une partie, j’ai acheté les deux autres pour récupérer mes volets somfy et détecteurs luminosités en Io Homecontrol. Je découvre donc Eedomus, j’ai réussi a intégré mes volets somfy Io Homecontrol a cette derniere et ma Presence Netatmo…. J’aimerai faire un scénario avec mes volets qui se ferme si la caméra détecte une personne (pas un animal) entre tel et tel heure. Crois tu que cela est faisable et ton script fait il cela?

    Merci

    1. Bonjour Nicolas,
      Dorénavant la box EEDOMUS intègre les caméras NETATMO et tu n’aura pas besoin de mon script pour effectuer cette tâche.
      J’ai moi même fait la même chose avec des règles dans l’EEDOMUS si la caméra détecte une personne et que mes volets sont ouvert et que l’alarme est ON, les volets se ferment.
      Pour faire entre deux heures, facile tu créer une périphérique Etat et tu lui donne deux valeurs genre ON et OFF puis tu fait une règle Planification (onglet nouvelle programmation) -> heure de début et Heure de fin et en action au début Périph ON et en Fin OFF, il suffit d’ajouter le test Et Periph = ON pour la fermeture de tes volets.
      Par contre je n’ai pas encore tester, je testerais la semaine prochaine.
      La chose que je fait maintenant avec mon script et le switch entre ignore et Notification pour les personnes, cela me permets d’utiliser la caméras en lumière et je la remet en marche si les volets sont tous fermés.
      Je suis dispo si tu à d’autres questions

  2. Bonjour Marc,
    Merci pour tes explications pour l’API Netatmo.
    J’ai une welcome chez moi et voudrais déclencher la surveillance avec un actionneur HTTP avec mon Eedomus.
    Le problème est que je ne dispose pas d’un NAS.
    Comment faire alors ? Est-ce que le ddur d’une Freebox Revolution pourrait faire l’affaire ? Si oui comment ?
    Merci.

    1. Bonjour Samuel, comme expliqué sur le forum EEDOMUS, pour ce tuto il est obligatoire d’avoir un serveur hébergeant un script PHP car je fait appel à une api.
      Tu peux regarder du coté d’un Raspberry PI mais il faut avoir des bonne bases en informatique ou trouver un bon tuto.
      Éventuellement chez certain provider tu peux créer ta propre page WEB et peut être que tu peux aussi mettre des script (à vérifier).

  3. Bonjour,

    Tout d’abord merci pour ce tuto très clair 🙂
    Je l’ai mis en place sur mon Syno mais il ne fonctionne pas, j’ai cela en retour quand j’appelle le Camera.php

    Si tu peux m’aider 🙂
    Merci d’avance

    Warning: require(/var/services/web/NetatmoCameraAPI.php): failed to open stream: No such file or directory in /volume1/web/script/Camera.php on line 4 Fatal error: require(): Failed opening required ‘/var/services/web/NetatmoCameraAPI.php’ (include_path=’.’) in /volume1/web/script/Camera.php on line 4

    1. Bonjour,
      Est-ce que le programme NetatmoCameraAPI.php est bien dans le même répertoire que le programme Camera.php
      Par exemple, j’ai installé Camera.php dans le répertoire /web/EEDOMUS, la ligne 4 doit être :
      require($_SERVER[‘DOCUMENT_ROOT’].’/EEDOMUS/NetatmoCameraAPI.php’);

      1. Merci Kitor pour ton retour
        Bien vu, merci! j’ai changé le répertoire.
        J’ai cette erreur maintenant 🙁

        Warning: Invalid argument supplied for foreach() in /volume1/web/presences/class/NetatmoCameraAPI.php on line 737 Can’t find home named Votre_Lieu

  4. Bonjour,

    Merci Kitor
    Une petite question, saurais tu comment obtenir le lien VPN et direct des cameras? « https://v6.netatmo.net/ /8262a81…ae1827/qzENncEUT…DpHFqw,,/live/… »
    avec l’ancien API on pouvait obtenir cette information grace a la commande getCameraSettings mais cela ne fonctionne plus…
    Aurais tu une solution?
    Merci d’avance

    Olivier

    1. Je te conseil de regarder les fonctions
      Pour la Welcome :
      $Cameras = $_splNetatmo->getWelcomeCameras();

      Pour la Presence :
      $Cameras = $_splNetatmo->getPresenceCameras();

      Par contre je n’ai jamais réussi à comprendre comment les utiliser 🙂
      Si tu peux m’expliquer 🙂

      J’ai de mon coté la problématique de ne plus pouvoir modifier les retours d’informations entre ignorer, enregistrer et notifier.
      Cela me permettais de laisser la caméra allumée mais de ne pas avoir d’alerte.
      J’ai du changer en ON/OFF. pas terrible

      1. Bonjour Kitor,

        Désolé de ma réponse tardive, je suis de retour de congés….
        je ne vais pas etre d’une grande aide mais avant que Netatmo change l’API quand j’appelais le PHP suivant:

        <?php

        require('camera.php');

        $camera ='Olivier';

        echo " », json_encode($_NAcams->_cameras, JSON_PRETTY_PRINT), «  »;
        $settings = $_NAcams->getCameraSettings($camera);
        echo « settings: ».json_encode($settings, JSON_PRETTY_PRINT). » »;

        ?>

        Je pouvais obtenir l’ensemble de la config de la camera mais depuis cela ne fonctionne plus…
        Bonne soiree
        Olivier

        1. Désolé Olivier,
          dans l’urgence, je n’avais pas modifié mon script d’appel de l’API.
          Voila qui est fait :).
          Par contre, à présent tu dois avoir :
          ton USER Netatmo,
          ton Mot de passe Netatmo,
          ton Id API Netatmo
          ton Secret API Netamo.

          Expliqué dans le paragraphe Client ID et Client secret

  5. Salut Kitor,
    ile semble que j’ai bien tout renseigné mais lorsque je teste, j’ai vedic comme réponse : Can’t connect to netatmo server

    Qu’est ce que j’ai donc encore oublié de faire ???

    Merci

    1. Salut,
      Pas évident pour répondre à ce problème.
      A tu bien créer l’APP sur le site officiel de Netatmo comme expliqué au début ?
      Si tu lance le script sans paramètre dans un navigateur, peux tu me donner exactement la ligne qui pose problème et le message ?

  6. Hello Kitor,
    J’ai bien placé ton script sur mon NAS et créé l’APP sur le site NETATMO. Malgré cela, j’ai une page blanche lorsque je teste le script PHP dans le navigateur (les identifiants sont bien renseignés dans le fichier Camera.php).
    Aurais-tu une piste ? J’utilise mon NAS pour d’autres scripts PHP qui fonctionnent bien.
    Merci de ton aide!

  7. bonsoir Kitor
    je n’arrives pas a faire fonctionner l’api il me mets le message suivant:
    Failed to connect to 192.168.0.10 port 80: Connection refused
    petite question j’ai place le répertoire EEDOMUS sur ma time capsule mais je ne suis pas sur que ce soit un NAS.
    merci.

    1. Comme expliqué sur le forum EEDOMUS, je ne connais pas Time capsule, il te faut un serveur pouvant faire tourner du PHP, le moins cher et un RASPBERRY PI mais il faut s’y connaitre un minimum en informatique pour cela.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.