Je partage avec vous la méthode que j'utilise pour modifier la configuration d'une Foscam C1 à la volée depuis l'interface de Domoticz.
Vous trouverez les documents relatifs aux caméras de la marque Fosam, permettant d'utiliser de simple requêtes HTTP. J'utilise un modèle C1 mais d'autres sont pris en charge.
cf. cette documentation trouvée sur Github :
Dans mon cas j'ai choisi de créer un sélecteur me permettant de contrôler plusieurs états de la détection de mouvement.
Un mode désactivé :
- Pas de détection de mouvement
- Détection de mouvement
- Upload des clichés sur un FTP
- Détection de mouvement
- Upload des clichés sur un FTP
- Joue un son d'alerte
Je considère que vous avez déjà une Foscam C1 (fonctionne aussi pour les autres modèles) bien configuré avec une IP fixe de préférence (via réservation DHCP par exemple). Si nécessaire un serveur mails et/ou FTP de configuré.Note
Sachez que vous pouvez très bien commander d'autres options de votre caméra (réglages divers, prise d'image, etc.). Pour savoir comment faire référez-vous aux documents github postés plus haut - bon courage.
Ouvrez un onglet dans votre navigateur et copiez/collez et adaptez le lien suivant en remplaçant les valeurs IP_DE_LA_CAMERA, NOM_UTILISATEUR, VOTREPASS :
la variable cmd affecté avec getMotionDetectConfig permet d'envoyer une requête de consultation de la configuration actuelle(gardez ce lien de coté on s'en sert jusqu'à la fin).http://IP_DE_LA_CAMERA:88/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=NOM_UTILISATEUR&pwd=VOTREPASS
Vous aurez une réponse du genre :
Code : Tout sélectionner
<CGI_Result>
<result>0</result>
<isEnable>0</isEnable>
<linkage>0</linkage>
<snapInterval>0</snapInterval>
<sensitivity>0</sensitivity>
<triggerInterval>0</triggerInterval>
<isMovAlarmEnable>1</isMovAlarmEnable>
<isPirAlarmEnable>1</isPirAlarmEnable>
<schedule0>0</schedule0>
<schedule1>0</schedule1>
<schedule2>0</schedule2>
<schedule3>0</schedule3>
<schedule4>0</schedule4>
<schedule5>0</schedule5>
<schedule6>0</schedule6>
<area0>0</area0>
<area1>0</area1>
<area2>0</area2>
<area3>0</area3>
<area4>0</area4>
<area5>0</area5>
<area6>0</area6>
<area7>0</area7>
<area8>0</area8>
<area9>0</area9>
</CGI_Result>
Créer un lien de configuration
Nous allons maintenant réaliser un lien HTTP de configuration. On va passer par l'interface web de la caméra pour paramétrer la détection de mouvement comme on le souhaite. Ensuite, on utilisera le lien de consultation pour récupérer les paramètres sous forme de texte que nous convertirons sous forme de lien, qui nous servira à paramétrer la caméra via une simple URL.
A partir de maintenant on se rend dans la configuration de la détection de mouvement.
Voici les paramètres qui correspondent mon mode "silencieux".Note :
Il est impératif de configurer rigoureusement chaque élément. Car nous allons ensuite convertir cette configuration en lien http.

Il faut prendre soin de bien paramétrer la zone de détection (très important).
Le planning d'activation doit être également configuré (très important).

On enregistre et on va à nouveau appeler le lien de consultation précédent, à savoir :
Dans mon cas cela me donne le résultat suivant :http://IP_DE_LA_CAMERA:88/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=NOM_UTILISATEUR&pwd=VOTREPASS
Code : Tout sélectionner
<CGI_Result>
<result>0</result>
<isEnable>1</isEnable>
<linkage>4</linkage>
<snapInterval>5</snapInterval>
<sensitivity>0</sensitivity>
<triggerInterval>10</triggerInterval>
<isMovAlarmEnable>1</isMovAlarmEnable>
<isPirAlarmEnable>1</isPirAlarmEnable>
<schedule0>281474976710655</schedule0>
<schedule1>281474976710655</schedule1>
<schedule2>281474976710655</schedule2>
<schedule3>281474976710655</schedule3>
<schedule4>281474976710655</schedule4>
<schedule5>281474976710655</schedule5>
<schedule6>281474976710655</schedule6>
<area0>252</area0>
<area1>252</area1>
<area2>252</area2>
<area3>192</area3>
<area4>192</area4>
<area5>992</area5>
<area6>992</area6>
<area7>992</area7>
<area8>1008</area8>
<area9>1008</area9>
</CGI_Result>
Code : Tout sélectionner
&isEnable=1
&linkage=4
&snapInterval=5
&sensitivity=0
&triggerInterval=10
&isMovAlarmEnable=1
&isPirAlarmEnable=1
&schedule0=281474976710655
&schedule1=281474976710655
&schedule2=281474976710655
&schedule3=281474976710655
&schedule4=281474976710655
&schedule5=281474976710655
&schedule6=281474976710655
&area0=252
&area1=252
&area2=252
&area3=192
&area4=192
&area5=992
&area6=992
&area7=992
&area8=1008
&area9=1008
Là vous vous demandez surement pourquoi envoyer toute la configuration et pas uniquement certaines variables. Tous simplement parce que quand je désactive la détection, mes paramètres reviennent tous à zéro. D'où l’intérêt de ce long et imbuvable lien.http://IP_DE_LA_CAMERA:88/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&usr=NOM_UTILISATEUR&pwd=VOTREPASS&isEnable=1&linkage=4&snapInterval=5&sensitivity=0&triggerInterval=10&isMovAlarmEnable=1&isPirAlarmEnable=1&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=252&area1=252&area2=252&area3=192&area4=192&area5=992&area6=992&area7=992&area8=1008&area9=1008
Passons aux tests, pour cela on envoie une requête qui désactive la détection de mouvement, comme ceci :
Utilisez le lien de consultation ou rendez-vous dans l'interface et constatez la désactivation.http://IP_DE_LA_CAMERA:88/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&usr=NOM_UTILISATEUR&pwd=VOTREPASS&isEnable=0
Envoyez maintenant le long lien généré précédemment et idem, vérifier la prise en compte.
A partir de la vous avez un aperçu de la manière dont fonctionne les caméras via des liens http Foscam. La documentation donnée précédemment est vraiment ultra complète et offre un tas de possibilités. Je n'ai pas lu toute la documentation, mais je pense qu'il est possible de tout configurer, comme les paramètres d'envoie de mails ou d'envoie de fichiers via FTP par exemple.
Intégration dans domoticz
Maintenant que nous avons nos URL bien paramétrées, on va les intégrer dans Domoticz.
Pour cela, on commence par créer un capteur virtuel de type "interrupteur selecteur".

Nommez-le à votre convenance.

Vous le retrouverez dans la catégorie interrupteurs.

On va maintenant éditer sa configuration pour lui donner trois état différents (vous pouvez en faire bien plus - il suffira d'adapter le script).

On peu éventuellement utiliser une icone plus sexy.


Vous pouvez la télécharger ici : Il est normalement possible de paramétrer ici les liens que nous avons créé, cependant chez moi ça ne passe pas. Je soupçonne une taille limite. Personnellement ça ne me dérange en rien car en général je préfère gérer via des scripts.
Donc on applique et on créé un nouveau script lua via le menu Événements. Donnez-lui un nom et collez-ci, que vous adapterez en fonction de votre configuration :
Code : Tout sélectionner
commandArray = {}
FoscamIP = "IP_FOSCAM:88"
FoscamUser = "UTILISATEUR"
FoscamPass = "MOT DE PASSE"
Device = "NOM DU DEVICE"
-- niveaux du switch
State00 = "Off"
State10 = "Silencieux"
State20 = "Sentinelle"
-- commandes foscam
Cmd00 = "&isEnable=0 etc ...."
Cmd10 = "&isEnable=0 etc ...."
Cmd20 = "&isEnable=1 etc ...."
-- A modifier uniquement si nécessaire
curlcmd = "curl 'http://" .. FoscamIP .. "/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&usr=" .. FoscamUser .. "&pwd=" .. FoscamPass
if (devicechanged[Device] == State00) then
os.execute( curlcmd .. Cmd00 .. "' 2>/dev/null")
print(Device .. " - " .. State00)
elseif (devicechanged[Device] == State10) then
os.execute( curlcmd .. Cmd10 .. "' 2>/dev/null")
print(Device .. " - " .. State10)
elseif (devicechanged[Device] == State20) then
os.execute( curlcmd .. Cmd20 .. "' 2>/dev/null")
print(Device .. " - " .. State20)
end
return commandArray

Conclusion
De base la Foscam C1 est un rapport/qualité prix avec globalement de bon avis. Même si l'interface est laide à souhait et plutôt pauvre en configuration (les 80% des paramètres proposé dans l'interface ne serons jamais utilisés par le commun des mortels), il n'en reste pas moi qu'on peut tout de même interagir via les requetes HTTP et c'est presque parfait. Oui, presque, car j'aurai souhaité que cela ce fasse avec plus de sécurité, car les mots de passes en clair dans le lien me dérange un peu. Mais dans mon cas comme ça reste en local ça va encore.
Je n'ai que la C1, mais normalement ces commandes sont valables avec d'autres modèles de la marque.
Maintenant, je me répète, mais en mettant le nez dans la doc on trouve plusieurs commandes intéressantes comme celle-ci :
- Active l'infrarouge :
- http://IP_DE_LA_CAMERA:88/cgi-bin/CGIProxy.fcgi?cmd=openInfraLed&usr=NOM_UTILISATEUR&pwd=VOTREPASS
- Désactive l'infrarouge :
- http://IP_DE_LA_CAMERA:88/cgi-bin/CGIProxy.fcgi?cmd=closeInfraLed&usr=NOM_UTILISATEUR&pwd=VOTREPASS