Remonter une detection de mouvement camera dans jeedom

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 »

Bonjour,

Je suis en train de mettre en place MotionEye.
J’arrive a l’utiliser, j’arrive a récupérer les détections de mouvements.

Mais je n’arrive pas a activer ou désactiver la détection, ni bien sûr avoir l’état de la détection.

J’ai lu le fil en long et en travers, je comprend le principe.
Le script pour transformer l’info « active » en binaire.

Mais je n’arrive pas a avoir cette info « detection status ACTIVE ».

Cette commande « http://…/1/detection/status »
je n’arrive pas a l’envoyer ni a lire l’info.

J’ai essayé dans le plugin script, en info, html, http… Mais ca ne fonctionne pas.

J’obtiens {« error »: « not found »}

Merci pour le coup de main.
Peut etre qu’une copie d’ecran de la commande m’aiderais.

Merci

EDIT:
Bon ça avance un peu,
J’ai mis le script et l’info status me remonte « False ».
Mais ma detection est active :roll_eyes:

Bonjour,

Voici une capture de ma commande script :

C’est bien l’url de MotionEye qu’il faut indiquer.
Attention, je me suis fait avoir sur le numéro à renseigner : ce n’est pas l’ID de la camera, mais le numéro d’ordre dans MotionEye (je m’en suis rendue compte quand j’ai supprimé une caméra, ça a tout décalé)
Est-ce que quand tu utilises cette URL dans le navigateur tu obtiens bien le status de la détection ? Si non, dans ce cas ce n’est pas la commande script qui a un problème.

Bonjour, merci pour la réponse.

Je ne trouve que le « camera ID » et non le numero d’ordre.
J’ai 3 cameras, Id 1, 2 et 3.

Et bien non, l’adresse dans le navigateur me donne « {« error »: « not found »} ».
J’ai essayé avec l’ip du raspberry et même avec mon ip publique.

Merci

Le numéro d’ordre (thread), c’est l’ordre dans lequel sont affichées les caméras sur MotionEye (la première en haut à gauche est la n°1). Ca correspond presque tout le temps à l’ID, sauf si on en supprime une, et qu’on en recrée une, là ça décale.

Mais le problème est plutôt réseau visiblement. Du coup je ne peux pas plus t’aider désolée, je ne suis pas experte dans ce domaine, j’applique des tutos…

Je bloque dessus depuis plusieurs jours. :triumph:

Merci pour la réponse.