Je n'ai pas perdu l'objectif principal qui est d'utiliser mes caméras FI9805W et FI9821W v2 sur ma VeraEdge mais désolé, difficile de faire l'impasse de la partie rébarbative de l'affaire.

Je pense que ce type de prose existe déjà mais j'ai préféré écrire plutôt que de mettre plein de liens (Bon … Quelque part cela me fait réviser ;)
Pour les pros : Un peu d'indulgence même si je n'aime pas le terme: il s'agit de vulgarisation.

J'ai laissé l'interface de la Foscam en anglais non pas parce que je sois excellent dans la langue de Shakespeare mais franchement les traductions ne sont pas top.

Mon objectif n'est pas d'afficher une image sur l'IHM de la Vera qui, soit dit entre-nous, n'est pas un modèle du genre mais d'avoir une interaction avec celle-ci. A savoir :
° Mettre ma caméra en alarme à partir d'un évènement (Switch Virtuel, capteur...)
° Envoyer des captures en cas de détection vers le web.
° Générer des messages audios.
° Recevoir des notifications ...

C'est parti!

1- IP Publique:

Quèsaco ? On va faire simple : Il s'agit pour votre box l'équivalent de votre adresse postale unique au monde donc.

Deux cas :
- vous disposez d'une adresse postale fixe votre IP publique sera fixe.
- vous déménagez en permanence votre IP publique changera à chaque déménagement.

2 - DDNS (Dynamic Domain Name Server):

Si vous disposez d'une IP publique fixe (cas de free par exemple) allez directement à la partie 3 - DHCP, par contre si comme moi votre IP publique change:
a) Officiellement ce n'est pas pour vous embêter mais juste pour une question de sécurité. Dans le cas d'une IP fixe c'est comme si vous mettiez votre adresse postale avec les clefs de votre maison …
b) Vous aurez donc besoin d'une adresse de type DDNS. En gros votre adresse postale change et quelqu'un se charge de communiquer votre nouvelle adresse au monde entier (j'exagère à peine;).
Pour cela il y a des fournisseurs qui vous promettent de faire le boulot: DynDns ou No-IP. Tous ont promis de fournir ce service gratuitement mais se sont ravisés et proposent, pour les plus gentils, de se connecter au moins une fois par mois sur leur site. Foscam, comme d'autres fabricants de caméras, propose ce service. Il suffit juste de cocher la case Enable DDNS pour obtenir l'adresse accessible depuis n'importe où sur Internet. La propagation (temps nécessaire pour que le monde connaisse votre nouvelle adresse) n'est pas des plus rapide mais c'est gratos...

ddns

Il vous est alors permis d'accéder simplement à votre box depuis l'extérieur :

cmd

3- DHCP (Dynamic Host Configuration Protocol)

En gros c'est simple je suis un PC, on m'allume et là je m'aperçois que je n'ai pas de SLIP euh non pas d'adresse IP, je hurle en envoyant ma MAC address à tout le monde et là un gentil serveur m'en donne une… Ouf je vis.
Il est important que votre box soit aussi serveur DHCP toutefois il faut en restreindre la plage. Exemple sur une Livebox :

dhcp

Ainsi un nouvel équipement (une caméra notamment) se vera attribuer une adresse libre comprise entre 192.168.0.110 à 192.168.0.150 (plus facile à retrouver).

4 - PAT (Port Address Translation):

Pour reprendre l'analogie avec votre adresse postale : elle est unique donc dans le cas d'un pavillon pas de problème le facteur n'aura aucune difficulté à vous remettre le courrier, mais dans le cas d'un immeuble ?
Ouf! Vous avez pris soin de mettre une boite aux lettres à votre nom dans le hall. Le facteur se rend chez-vous (IP Publique) puis mets le courrier dans la bonne boite (PAT)
CQFD!

Donc d'un point de vue informatique : <IP Publique>:<Port> renverra vers un équipement unique de votre réseau local (Camera, Pc, Smartphone) au sein d'une même adresse publique.
Dernière petite précision les ports de 0 à 1024 sont réservés, après on peut aller jusqu'à 2^32 --> 65535 (Ya de quoi faire!). Voici un exemple avec mes deux caméras :

pat

Mes caméras ont pour adresse IP locale : 192.168.0.12 et .13 J'ai décidé de rediriger les ports 8812 et 8813 (Moyen Mnémotechnique) . J'attire votre attention sur la dangerosité d'une telle démarche. Si vous connaissez mon adresse IP publique un simple http://<mon_ip_publique>:8812 ou 8813 et vous vous retrouverez sur la bannière d'une de mes caméras ! Vous allez tomber là-dessus :

newbie

J'ai supprimé le compte admin. En cassant le mot de passe de "newbie" vous aurez accès à ma caméra en mode "visiteur". Une opportunité de me voir à poil bien que je ne sois pas sûr que cela en vaille la peine ;)

accompte

Je me trompe sûrement en considérant que cette méthode suffit à assurer une certaine sécurité. Dans tous les cas si je me connecte avec le compte administrateur pour modifier un paramètre par exemple je me reconnecte à nouveau avec le compte newbie.

5 - FTP (File Transfert Protocol)

Votre fournisseur d'accès vous propose certainement un espace où vous pouvez stocker des données via ftp au niveau de la caméra toujours dans l'onglet "Network" vous renseignez le serveur ftp, l'utilisateur et le mot de passe.ftp

Cliquez sur test et obtenez le message "Success" c'est très important.

6 – L'API Foscam et la caméra :

Il est clair que même si l'API est commune à toutes les caméras de cette génération une FI-9805W, qui n'est pas motorisée, va avoir du mal, comme moi, à faire une rotation de 90° vers le haut ;)
Je vais donc traiter de la FI-9821W v2 car il me semble qu'il y a beaucoup plus de choses à apprendre.

De manière à avancer dans notre futur projet on va créer un "Preset" à partir de l'interface : http://<ip_locale:Port> j'ai choisi le doux nom de Pos_Dep". Après avoir cliqué sur le "+" On peut manœuvrer la caméra en cliquant sur les flèches un clic sur la flèche verte+ ramène la caméra au point fixé.

posdep

Il est possible, en tous cas, avec la FI-9821W v2 et d'autres de même type d'activer ou de désactiver l'alarme. Il suffit de lancer les commandes dans un navigateur:

http://<ip_locale:port>/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=<uuuu>&pwd=<pppp>
va désactiver la détection de présence tandis que la commande:
http://<ip_locale:port>/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=<uuuu>&pwd=<pppp>
va l'activer.

Il est important de faire ce test à partir d'un navigateur et d'obtenir à chaque fois le message :
<CGI_Result>
<result>0</result>
</CGI_Result>

7 – Première mise en application :

A ce stade et même si l'on n'a pas fini de faire le tour de cette API, j'ai vraiment hâte de tester sur un premier scénario simple (Après l'effort le réconfort) :
° Je ne suis pas là.
° Quelqu'un (oh le vilain) active un détecteur de mouvement.
° La Foscam passe en mode détection de mouvement.
° En cas de détection elle envoie sur mon site FTP des images toutes les deux secondes pendant une minute.
° A l'issue, le mode détection de mouvement est désactivé.

C'est parti!

Les ingrédients :

vera foscam sauron dehors

La Vera, la cam Foscam FI9821W v2, un motion sensor de chez Fibaro et un switch virtuel. Ça fait du monde!

La recette :

Une scène sur la Vera avec une petite nouveauté : Je vais utiliser AltUI d'amg0 . Inutile de vous dire que Vera avec son UI7 a remis au goût du jour le célèbre adage : "Pourquoi faire simple quand on peut faire compliqué" Je vous conseille de lire ou de relire l'excellent post d'Antor ici (Les scènes n'auront plus de secrets pour vous.

scene_1

La scène va s'exécuter :
° Si le capteur Fibaro détecte un mouvement.
° Et si nous sommes absents de la maison.

Voici après avoir cliqué sur "Evènements" et rempli les champs :

even

Il a suffi de cliquer sur "+ à côté de Trigger" puis choisir le module Fibaro puis la condition "whether is armed or disarmed" (en anglais malheureusement). Pour la condition : "Si nous sommes absents" on clique sur le bouton Lua. L'avantage est que dès qu'un évènement survient on peut émettre une condition avant d'aller au delà (s'il fait jour ou nuit) où comme dans ce cas si nous sommes là. Codons joyeusement :

scr_lua_1

Donc dès la détection d'un mouvement la scène est quittée si nous sommes présents.

En cas de détection on sait quelle url utiliser pour activer la détection de mouvements, pour rappel :

http://<ip_locale:port>/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=<uuuu>&pwd=<pppp>

La Foscam a été paramétrée au niveau de la sensibilité, du snapshot et du calendrier :

 

Ainsi que pour la zone de détection

da

Il s'agit de ne pas les perdre! Pour cela une autre url vers l'api :

http://<ip_locale:port>/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=uuuu&pwd=pppp

Le retour ne se fait pas attendre :

cgi

Je laisse les spécialistes "parser" à l'intérieur, pour ce qui me concerne j'ai juste reconstitué la chaine qu'il faudra renvoyer :

script_2

8 – Premières conclusions :

Pour le coup j'ai l'impression d'avoir été un peu long, mais à ma décharge avant de pouvoir en profiter sur une box autant connaitre le produit.

Somme toute, tout comme la FI9805W : une bonne caméra, FosCam a un peu surpris en utilisant le protocole rtsp, mais a essayé de rattraper le coup en utilisant un flux secondaire que l'on peut bricoler (à venir).
Reste à digérer car il reste encore pas mal de fonctionnalités à découvrir comme la partie audio c'est sûr (à venir).
Pour le reste il y a les commentaires... N'hésitez pas ...