Envoyer une vidéo sur Discord suite à une alarme

Envoyer une vidéo sur Discord suite à une alarme

Envoyer une vidéo sur Discord suite à une alarme

Bonjour à tous,

Je vais tester mon premier tutoriel soyez indulgent SVP.
Merci de me dire si des coquilles pointent le bout de leur nez.

Donc cet article nous allons voir ensemble comment nous pouvons :

  1. Paramétrer une caméra FOSCAM C2M dans le plugin caméra
  2. Créer rapidement un virtuel ON/OFF déclencheur de notre scénario
  3. Le scénario pas lui même

Bon qu’est que vous pensez du programme ?
Je suis d’accord on y va, on rentre dans le vif du sujet….

Paramétrage de la caméra FOSCAM C2M dans le plugin Caméra

Alors voilà c’est pas compliqué hein ???
La caméra est normalement prise en charge lors de l’inclusion de celle-ci maintenant. Mais pour tous ceux qui ont du chercher les commandes dans les API Foscam comme moi les voici en copier coller 😉

Pour la détection IR :

IR ON :
/cgi-bin/CGIProxy.fcgi?usr=#username#&pwd=#password#&cmd=openInfraLed

IR OFF :
/cgi-bin/CGIProxy.fcgi?usr=#username#&pwd=#password#&cmd=closeInfraLed

MVT ON :
/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=158&snapInterval=1&sensitivity=1&triggerInterval=0&isMovAlarmEnable=1&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=1023&area1=1023&area2=1023&area3=1023&area4=1023&area5=1023&area6=1023&area7=1023&area8=1023&area9=1023&usr=#username#&pwd=#password#

MVT OFF :
/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&usr=#username#&pwd=#password#&isEnable=0

SON ON :
/cgi-bin/CGIProxy.fcgi?cmd=setAudioAlarmConfig&isEnable=1&linkage=142&snapInterval=1&sensitivity=4&triggerInterval=0&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&usr=#username#&pwd=#password#

SON OFF :
/cgi-bin/CGIProxy.fcgi?cmd=setAudioAlarmConfig&usr=#username#&pwd=#password#&isEnable=0

VEILLE ON :
/cgi-bin/CGIProxy.fcgi?usr=#username#&pwd=#password#&cmd=alexaSleep

VEILLE OFF :
/cgi-bin/CGIProxy.fcgi?usr=#username#&pwd=#password#&cmd=alexaWakeUp

Pour tous ceux qui veulent encore aller plus loin sur les commandes on peut retrouver tous les API de FOSCAM ici :

https://www.foscam.es/descarga/Foscam-IPCamera-CGI-User-Guide-AllPlatforms-2015.11.06.pdf

Les commandes Infra-Rouge ne vont fonctionner que si vous avez paramétré votre caméra en manuel à ce niveau dans l’application FOSCAM.
Si c’est le mode auto comme moi, ces commandes n’auront aucun effet mais elle existe : donc c’est cadeau. Je crois que maintenant elles sont même à l’intégration de la caméra dans le plugin.

Les commandes de mouvement sont longues, très longue même…
Il faut paramétrer les zones de détection sous forme de matrice (c’est très bien expliquer dans le lien précédent). Ici c’est la pleine fenêtre qui est dans la commande.
Il faut aussi paramétrer le planning horaires et journalier des détections. Dans la commande ci dessus, elles sont paramétrées sur toute la plage horaire de toute la journée, toute la semaine.
De cette manière quand j’active la commande je suis certain que la détection de mouvement est active.
Les commandes de détection sonore sont dans le même esprit que les commandes de mouvement avec un planning toute la journée tous les jours.

Voilà nous avons fait le tour des commandes pour cette caméra, on passe à la suite peut être ?

Ok alors attaquons maintenant le scénario pour envoyez un film, enfin une petite vidéo sur Discord…

Oh là là, pas si vite on avait parlé de créer notre déclencheur via un virtuel si je me souviens bien : aller on y va

Création d’un virtuel déclencheur de notre scénario

Pour commencer nous avons besoin d’un déclencheur de scénario.
Dans mon cas j’ai fait un bouton ON/OFF, c’est un virtuel que je rappelle ici car il est très souvent demandé : mais comment fait-on un ON/OFF ?

Certain vont me dire : mais il y a pas de commande ON et OFF dans les paramètres sur le plugin caméra ?
Mais c’est totalement vrai, mais il sert pas à activer la caméra au sens du scénario qui arrive mais cela sert à mettre sous tension ou non la caméra via une commande de prise connectée de votre choix.

Alors je vais donc corriger l’abus de langage, nous allons créer un virtuel pour la mise en veille ou non de la caméra.
Donc voici le fameux bouton que vous pouvez mettre sur un design ou laisser sur le Dashboard.

Petit bouton ON/OFF…

Bon je vous donne la configuration du ON/OFF alors ?

Bon les bases semblent posées et bien présentes.
Nous avons un caméra configurée et un déclencheur qui est notre bouton ON/OFF : Super nous allons maintenant passer au scénario.

Scénario d’envoie d’une vidéo prise par notre Caméra C2M1 sur Discord

Alors nous avons dit que le scénario est déclenché par notre bouton ON/OFF.

Ensuite nous passons au scénario à proprement dit.

Je l’ai décomposé en 4 blocs.

Bloc 1 du Scénario

On commence par un premier bloc CODE !
Vous aurez reconnu la pâte de Stéphane et de son super tutoriel : ICI
On se sert de cette variable un peu loin dans le scénario

On ouvre donc un bloc SI/ALORS/SINON avec la condition du passage à 1 du bouton de la caméra.

Si la condition est vraie alors on lance un bloc action.

En passant pourquoi un bloc action plus que des actions vous me direz ?
Et bien car c’est beaucoup plus simple de faire un copier / coller ensuite à l’aide des deux icones en haut à droite du bloc

Donc dans ce bloc action je sors la caméra de veille avec la commande : #[Caméra][Atelier][VEILLE OFF]#

Je mets un sleep de 1s (rapide pour s’habiller quand même), bon ok je sors….

Pourquoi un sleep entre les actions ?
Tout simplement pour ne pas créer de bouchon, de conflit dans les commandes API lancées à la caméra.
En faisant ça, j’ai remarqué que les fonctions s’activaient à coup sûr. (à ajuster en fonction de vos caméra)

Je mets donc ensuite la détection de mouvement : #[Caméra][Atelier][MVT ON]#

Toujours mon sleep en 1s

Et enfin je mets la détection sonore : #[Caméra][Atelier][SON ON]#

Bloc 2 du Scénario

Nous en arrivons au bloc 2 : OH !!! qu’il est gros celui-ci mais que fait -il au juste.

Rien de bien méchant en fait mais c’est le seul moyen que j’ai trouvé pour faire des messages structurés avec le plugin Discord (si vous avez Telegram vous pouvez ne garder qu’une seule variable MSG par exemple : le message que vous voulez).

Dans ce bloc je détermine un lot de variable Titre, Description1, Description2, Description3, Description4, Description5, Description6 et MSG qui aurait pu être Description 7 au passage. C’est juste un vestige du temps où j’étais encore sur Telegram.

Ensuite je fais appel à mon centre de notification avec tous ces paramètres !!!
Quoi encore un truc que j’ai déjà vu quelque part non !?!?! Ah mais oui c’est bien ici il me semble : ICI

Et voilà le beau message que nous allons obtenir :

On continue ? Aller hop c’est parti

Bloc 3 du Scénario

Nous passons donc au bloc 3 qui est activé au changement d’état du bouton c’est-à-dire ici à l’état 0.

Rien de compliqué c’est la même chose que précédemment mais à l’envers car on arrête tout.
Passage en veille, arrêt de la détection de mouvement, arrêt de la détection sonore.

Bloc 4 du Scénario

Et ensuite dans le bloc 4 même histoire configuration du message d’arrêt.

Vous allez me dire mais tout ça pour ça !!!!

Eh bien oui un scénario simple mais efficace pour allumer et éteindre vos caméras.
Vous pouvez multiplier les blocs SI/ALORS/SINON en fonction du nombre de caméra ou faire un scénario par caméra : c’est au choix.

Mais vous pouvez aller encore un peu plus loin, cela vous dit ?

En fonction de votre installation, vous pouvez sur l’ouverture d’une porte déclencher le lancement d’une séquence vidéo par exemple.
C’est encore présent sur notre site ICI

Pour vous aider la documentation du plugin est très bien faite : https://doc.jeedom.com/fr_FR/plugins/security/camera/

En voici un extrait

Options avancées des captures

  • nbSnap : nombre de capture, si non précisé alors les captures sont faites jusqu’à une demande d’arrêt d’enregistrement ou d’arrêt de la caméra
  • delay : délai entre 2 captures, si non précisé alors le délai est de 1s
  • wait : délai d’attente avant de commencer les captures, si non précié alors aucun envoi n’est fait
  • sendPacket : nombre de captures déclenchant l’envoi de paquet de captures, si non précisé alors les captures ne seront envoyées qu’à la fin
  • movie=1 : une fois l’enregistrement terminé, les images sont converties en vidéo
  • sendFirstSnap=1 : envoi la première capture de l’enregistrement

Si on reprend avec ce que j’ai réalisé : nbSnap=1 message='Détection Mouvement Atelier'

Avec ce paramètre nous avons 1 photo réalisée grâce à nbSnap=1 pour un envoi immédiat en guise d’alerte.

Je termine l’envoie des images par un sleep d’une seconde car il faut encore une fois laisser le temps aux caméras de faire les captures mais il faut aussi laisser le temps à Discord de recevoir vos multiples messages avec l’image.
Sinon il y a des risques de perdre le message dans la nature et vous ne le serez pas.

Dans ce bloc BOUCLE je lance des captures d’images que j’assemble ensuite en vidéo et que j’envoie encore une fois sur Discord.

Regardons de plus près le paramétrage :

nbSnap=20 delay=1 movie=1 sendPacket=1 message='Détection Mouvement Atelier'

Je prends 20 captures avec le paramètre nbSnap = 20

Elles sont prises à intervalle de 1 seconde avec le delay=1 (en dessous de 1, je n’ai pas remarqué d’effet)

Je réalise l’assemblage en fichier vidéo mp4 avec movie=1
Cette vidéo sera de 10s !
Rappelez vous nous avons mis 2 images par secondes en capture dans le plugin c’est ici que ça joue.
Si vous mettez 4 vous aurez une vidéo de 5 secondes par exemple.

J’envoie le tout en une seul fois à la fin avec le paramètre sendPacket=1

Et enfin je mets un message qui fait office de titre dans mon message Discord au cas où je ne reconnaisse pas ma maison….

Je termine ma boucle par un sleep de 24 secondes dans mon exemple car c’est le temps qu’il faut à la prise de vue de 20 captures plus l’assemblage et l’envoie sur une commande à la caméra.

C’est ainsi que je peux avoir le nombre de boucle (ici 2) qui est égale au nombre de vidéo que je vais avoir en message sur Discord.

Si je veux 5 vidéos je mettrais 5 au niveau de la boucle.

En conclusion la configuration présentée dans cet exemple vous permet d’avoir des messages sur Discord comme suit :

  • 1 image capture instantanée par caméra
  • 2 vidéos de 10 secondes (assemblage de 20 captures) par caméra.
    2 étant égale au nombre indiqué dans la boucle

Ensuite suivant votre installation, vos modèles de caméra les paramètres pourront évoluer mais c’est une base pour s’exercer.
Le tout résidera dans les tests que vous ferez sur le terrain.

PS : Vous retrouvez toutes les images prises dans JeeXplorer dans html>plugin>camera>data>record> « Le répertoire de votre camera »

Ce que je ne sais pas faire c’est envoyer ces images en lieu sûr au cas où (genre Dropbox NAS etc….)

Auteur de l’article : Jérôme Lebaud