Remonter une detection de mouvement camera dans jeedom

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 »)

Bonjour,
Effectivement lorsqu’on appelle l’url en http, on obtient le texte « camera x detection status ACTIVE ».
Du coup, j’appelle plutôt un script PHP qui a un paramètre : l’url de status.

Ma commande est de type binaire. Mon script (déjà indiqué plus haut) doit renvoyer une info binaire.
Il est tout simple, il ne fait que lire l’url, et retourne le résultat de la condition :

print(« ACTIVE » in res.content)

(est-ce que le mot « ACTIVE » est présent dans le retour de la requête).
Ma commande prend donc bien la valeur 0 ou 1.

Bonjour,
Ca commence à s’eclaircir, par contre comment dois créer mon script « HtmlText.py » stp? Je le crée en ligne de commande dans /var/www/html/plugins/script/data, puis j’ajoute simplement print(« ACTIVE » in res.content) dedans?

Je ne sais pas si c’est la meilleure façon de faire. Moi j’utilise un éditeur (notepad++) puis je l’ai copié dans /var/www/html/plugins/script/data avec le plugin JeeExplore.
Sinon le script complet c’est :

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

Et bien merci ça fonctionne :wink:
Reste la détection de mouvement à récupérer.

1 « J'aime »

Salut à tous,

Je vois que pas mal de personne s’amusent avec la détection de Motion eyes os. De mon côté, il est en prod depuis deux ans et j’ai jamais trouvé un compromis correct jusqu’à ce weekend…Entre la quantité de faux positif et le fait de rater des événements…ça devient pour finir commun d’être alerté pour rien…

Bon, ça vie un peu ici, végétation, pas mal de chiens, des allers-retours au faff à des heures différentes… Bref de quoi emmerder toute config avec motioneyeos… :slight_smile:, comme chez tous le monde quoi.

Fatigué d’essayé, j’ai laissé l’enregistreur faire son taff et installer des capteurs de mouvement extérieur aux endroits stratégiques, le visuel couvre l’ensemble de la propriété et les points chauds sont couvert par les détecteurs.

Si détection (Une vraie !!!), ça screenshot en masse + Notif, si intrusion, les données audios/vidéos et sensibles sont backups ailleurs.

Avez vous affiné une configuration correcte de votre côté avec motion ?

avec du soleil, de la neige, des voitures garées et les reflets dans les vitres etc. non aucun bins réglages trouvés non plus :cold_sweat:

1 « J'aime »