Remonter une detection de mouvement camera dans jeedom

Ah ok, merci de ton retour !:slightly_smiling_face:

Quelle latence as tu entre la detection et le traitement du mail reçu via jeedom.
Cette solution ne peut que fonctionner en effet mais je doute de l efficacité tant ol doit y avoir du delai…
D’autre part, si tu as un cambriolage et qu on te sectionne les cables telecoms en amont. Tu es marron si tu n’as pas de sms ou de lien de secours type 3g ou adsl

1 « J'aime »

Bonjour,
je relance ce sujet, car je n’arrive pas à saisir certaines subtilités décrites plus haut.

J’ai une caméra reolink 410, je récupère bien le flux RTSP dans le plugin caméra de Jeedom
J’ai installé Motioneye sur mon raspberri et je récupère bien le flux dans de la caméra via un lien RTMP (plus stable que le flux RTSP)
Dans les paramètre de la caméra dans MotionEye, je souhaiterais ajout un lien webhook pour prévenir jeedom d’une détection de mouvement.


Dans HTTP Method : il y a 4 choix, GET, Post (query), Post (Json); post(form) lequel choisir?

http://192.168.0.xxx/core/api/jeeApi.php?apikey=DXcK33d3LvpAFfrLpLwYbidxxxxxxxxx&type=camera&id=519&value=1

Jusque la, je comprends, par contre je n’arrive pas à créer la commande de type info…
Je dois la créer dans le plugin caméra de Jeedom ?
Quelqu’un pourrait me donner un exemple pour cette commande info ?

Bonjour chez moi, c est bien un Get, et dans les commandes caméra tu crées une info binaire, tu relèves son numéro que tu indiques dans motion en plus &value=1, ainsi tu peux faire un scénario sur l’ état de motion


la première fois cela n’a pas fonctionné,j’étais obligé de refaire une installation de zero
comme ici:

1 « J'aime »

Bonjour,
Merci pour la réponse.

J’ai recopié ta commande

Et au niveau de motionEye dans le webhook, j’ai placé cette URL
http://192.168.0.xxx/core/api/jeeApi.php?apikey=DXcK33d3LvpAFfrLpLwYb&type=camera&id=519&value=1

Par conséquent, lorsque MotionEye va détecter un mouvement, il va envoyer la valeur 1 a Jeedom sur la commande 519, c’est bien ça?
Et de la dans Jeedom je peux déclencher des actions si la valeur de la commande passe à 1?

J’ai l’impression que je ne reçois pas de valeur 1 sur la commande

oui c’est bien ça, et au bout d 'une minute il repasse à zéro comme sur la commande info de la caméra.
J’vais le même problème,alors j’ai fais le test avec tinycam et cela fonctionne, d’où la résolution de tout refaire l’installation de motioneye.
tu peux faire le test en passant directement ctte commande dans un navigateur et tu vérifie après la valeur de ta commande info

1 « J'aime »

Bonjour, petit conseil pour éviter de devoir recréer les commandes info si mise à jour du plugin camera, ou juste changement de config de ta camera : j’ai créé un virtuel juste pour les infos détection de mouvement. Au moins c’est complètement indépendant du plugin camera.

J’ai 1 seul virtuel pour mes 4 caméras, avec 4 infos et 8 actions (4 on / 4 off) pour la détection.

Ensuite dans MotionEye le webhook (GET) a la forme :
http://10.0.4.63/core/api/jeeApi.php?apikey=JjxxxxxBB&type=cmd&id=5899
5899 correspondant à l’action « on » de la détection de mouvement pour ma 1ere caméra.

1 « J'aime »

Oui, une bonne idée, chez moi ça marche, c était pour répondre à @nikoo

@HermioneG

En effet bonne idée, il faut que je lise la doc des virtuels (je suis super débutant jeedom pour le moment :slight_smile: )

par contre en suivant les conseils de @domoggvad ça fonctionne, je reçois bien la valeur 1 quand motioneye détecte un mouvement et j’arrive à l’interpréter dans un scénario pour envoyer une alerte.

Du coup maintenant je cherche à comprendre comment vous faites pour créer une commande action dans jeedom pour activer/désactiver le motion detection de Motioneye
Le but c’est d’activer le motion detection uniquement quand je suis en mode absent ou dodo

Mon motioneye est actuellement sur le même pi que jeedom, j’ai trouvé cet exemple de commande
Motion detection OFF = ‹ curl http://localhost:8080/0/detection/pause ›
Motion detection ON = ‹ curl http://localhost:8080/0/detection/start ›
0 étant le numéro de la caméra

Est ce que c’est une commande de type action à ajouter sur la caméra dans le plugin camera avec la commande curl… directement
ou il faut faire un script ?

D’avance, merci

Déjà, il passe à zéro au bout d’une minute si tu l’as paramétré comme ma précédente capture.
Rien ne t’empêche de le mettre à zéro après une détection et alerte par message ou telegram avec capture de photo ,dans ton scenario par la commande event, tu remets à zéro l’info motion de ta caméra.
Tu as le plugin mode, quand tu le passe en mode « Absent », tu mets tes alertes en place.
Pour ma capture j’ai fais experts le mode maison pour des tests.

Dans ta commande « Présent » du plugin mode" un scenario qui valide la commande « Détection OFF » de ta caméra

Par hésitation, j’ai en fait doublé la remise à 0 du paramètre motion,
il se remet à 0 automatiquement après une minute sur base de ton premier screen et dans le mon scénario après l’envoi de l’alerte, j’ai aussi fais un event pour le remettre à 0.
Et je me base sur mon mode présence pour envoyer ou non l’alerte.

Par contre je trouve que ce n’est pas très efficient, car actuellement Motioneye fait fonctionner le mode détection en permanence, envoi la valeur 1 a chaque détection et c’est jeedom qui filtre sur base du mode présence si il envoit une alerte ou non.

Pour économiser mon pi3+, je voudrais inverser la logique et faire en sorte que jeedom en fontion de ma présence ou mon absence, active ou désactive le motiondetection dans motioneye. afin de pas detecter les mouvements quant c’est pas nécessaire.

Je pensais dans les commandes de la caméra dans le plugin camera avec les deux actions

mais est ce que url de la commande c’est
Motion detection OFF = http://localhost:8080/0/detection/pause
Motion detection ON = http://localhost:8080/0/detection/start
?
le port de motioneye etant 8765 à la place du 8080
0 étant le num de la camera dans motioneye

J’ai donc ceci dans les commandes du plugin camera


et dans le plugin mode

ca parait trop simple :confused: et j’ai pas l’impression que ça fonctionne :slight_smile:

Je ne sais pas si motioneye accepte les commandes depuis jeedom،، jamais testé, il suffit de mettre la caméra sur off, quand on est à la maison

Hello,
MotionEye accepte bien les commandes.
Je ne voulais pas laisser le mode détection de MotionEye en permanence, car à chaque fois il capture des sequences et les envoie sur mon NAS en sFTP, ce qui ne sert à rien quand je suis présente.
Il y a donc des commandes possibles pour activer/désactiver, et même connaitre le statut. Il faut utiliser le Plugin Script pour créer ces commandes (et je vous conseille vraiment de ne rien ajouter aux commandes du Plugin Camera, pour éviter de les perdre à chaque maj)

Script pour connaitre le statut :


J’ai fait un seul équipement et une commande par caméra (l’id est dans l’url)

Script pour activer (start)/ arreter (pause) :


Là j’ai fait un équipement Script par Camera, mais j’aurais pu n’en faire qu’un seul.

Ensuite, il n’y a qu’à lancer les commandes start/pause en fonction du mode ou autre évènement.
Et la commande status pour bien vérifier la prise en compte et même afficher un widget si détection active ou non. J’ai fait un virtuel et un interrupteur pour pourvoir agir aussi manuellement.
image

L’url correspond bien à celle de MotionEye. Moi il est sur un raspberry Pi 4, donc l’url est son IP fixe et le port de MotionEye (7999 pour moi).

Merci pour ce partage que je vais certainement adopté, qu’as tu dans ton fichier HtmlText.py ?

C’est un fichier à mettre dans le Plugin Script. J’avais trouvé cette méthode dans un tuto, je vais essayer de retrouver le lien d’origine. En attendant voici le fichier :

> #! /usr/bin/env python3
> # coding: utf8
> import requests
> from sys import argv
> res = requests.get(argv[1])
> #resultat
> print("ACTIVE" in res.content)

Il me fait une belle erreur lors de l’enregistrement,je pense qu’il manque des packet pyton, si tu retrouves ton lien
merci

Erreur sur python /var/www/html/plugins/script/data/HtmlText.py http://192.18.0.11:7999/1/detection/status 2>&1 valeur retournée : 1. Détails : Traceback (most recent call last): File "/var/www/html/plugins/script/data/HtmlText.py", line 5, in res = requests.get(argv[1]) File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 76, in get return request('get', url, params=params, **kwargs) File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 61, in request return session.request(method=method, url=url, **kwargs) File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 530, in request resp = self.send(prep, **send_kwargs) File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 643, in send r = adapter.send(request, **kwargs) File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 516, in send raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.18.0.11', port=7999): Max retries exceeded with url: /1/detection/status (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 110] Connection timed out',))

Je cherche… cela fait plus de 6 mois et j’avais lu tellement de topics pour ça !
Un de mes points de départ était ce post : Domoticz able to activate motionEye motion detection - Domoticz
Qui m’a indiqué la doc API de MotionEye : MotionHttpAPI < Motion < Foswiki

Je continue de chercher. Par contre pour le problème de paquets Python, je ne pourrai pas t’aider, désolée, je ne suis plus à niveau (mais je suis une tueuse en Cobol, ABAP… :grin:)

J’ai retrouvé mon point de départ : Récupérations valeurs sur page web - #11 par olive
A partir de là, j’avais testé avec BeautifulSoup, puis en php, et enfin tout simplement en python. J’ai les 3 scripts dans mon répertoire /Data mais seul le HtmlText est utilisé.
Du coup je pense que si tu suis les explications pour mettre à jour python de ce fil, ça devrait marcher.

1 « J'aime »

J’ai fini juste par modifier le port de motion en 8085 dans les 2 fichiers config motioneye et motion et là les simple commande HTML passent sans problème
http://192.168.0.11:8085/1/detection/start
http://192.168.0.11:8085/1/detection/status
http://192.168.0.11:8085/1/detection/pause

Super !
Mon équipement script pour le status ne sert qu’à transformer le HTML en binaire, pour pouvoir l’utiliser simplement.

Bonsoir,
Je suis justement en pleine recherche pour convertir/récupérer mon retour d’info http://…/…/detection/status en binaire ou autre et je tombe sur ton post😉. Comment procèdes tu? J’ai tenté une info virtuelle avec html dans le plugin script mais je n’y parvient pas… peux-tu stp m’éclairer? Pour le moment je récupère l’info du status en info http mais inexploitable (voir ci dessus, c’est le « <-back Camera2 - - Terrasse detection status ACTIVE »)