[Store] uCam : Plugin de caméra universel (Snapshot)

Discussion et échanges de scripts pour la box eedomus

[Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar Nikya63 » 30 Nov 2017 14:28

Bonjour,

Je vous propose un plugin caméra universel, qui permet de piloter certaines caméras IP.

Dans un premier temps, seul la fonctionnalité snapshot est disponible.
(Fonctionnalité preset à venir ultérieurement si plébiscite)

  • Ce plug-in se veut universel, car il peut fonctionner avec toutes les caméras IP qui fournissent des URL de pilotage.
  • En contre-partie, c'est à vous de trouver et fournir à ce plugin les URL nécessaires. Il est possible de la trouver :
    • Dans la documentation de votre caméra
    • Sur le site suivant iSpyConnect
    • Sur le forum de ce plugin : forum eedomus

Son utilité peut être par exemple d'enregistrer une série de photo

  • Lorsque quelqu'un sonne chez vous
  • Quand une intrusion est détectée


Toute la documentation détaillée et le code du plugin est disponible ici : Github/Nikya/uCam


Mises à jours

  • 1.0 : Version initiale
  • 1.1 : 11/02/2018 : Correction de photo qui s'écrasent
Dernière édition par Nikya63 le 11 Mars 2018 16:21, édité 1 fois.
Développeur (LinkedIn)
Mes scripts eedomus : GitHub
Rédacteur à Devotics.fr (les articles eedomus)
Nikya63
 
Messages : 26
Inscription : 23 Juil 2017
Localisation : Auvergne / Puy-De-Dôme / Cournon

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar lecalvezmikael » 05 Déc 2017 20:52

Salut ! Merci pour ce script. J'ai réussi à le paramétrer mais ça ne me remonte pas l'image dans le FTP d'Eedomus alors que mes tests sont conclues via l'API HTTP depuis un navigateur et que ma commande fonctionne voir capture. As tu une piste pour moi ?
Pièces jointes
Capture d’écran 2017-12-05 à 20.51.10.png
capture
Capture d’écran 2017-12-05 à 20.51.10.png (81.49 Kio) Consulté 3872 fois
lecalvezmikael
 
Messages : 21
Inscription : 17 Août 2017

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar Nikya63 » 05 Déc 2017 21:16

Bonjour,

Je rencontre un problème similaire avec une caméra en particulier, il se pourrait que cela vienne de l'URL de snap qui comporte un PORT spécifique. Dans mon cas j'ai :

Code : Tout sélectionner
http://camera999:Xxxxx@192.168.1.2:1024/shot.jpg

Dans mon cas, j'ai un port spécifique de précisé : 1024.

La fonction mise à disposition par la box eedomus httpQuery ne permet pas de faire cette demande d'image avec un autre port que celui par défaut (80). Alors qu'un navigateur, lui le prendra en compte.

A confirmer, mais si cela sévère, j'ai peur qu'il n'y est pas de correctif possible pour ces cas là :(
Développeur (LinkedIn)
Mes scripts eedomus : GitHub
Rédacteur à Devotics.fr (les articles eedomus)
Nikya63
 
Messages : 26
Inscription : 23 Juil 2017
Localisation : Auvergne / Puy-De-Dôme / Cournon

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar LaFrite72 » 25 Jan 2018 10:38

Merci pour ce super script, je vais pouvoir totalement repenser le fonctionnent de mes cameras.

J'ai eu quelque soucis lorsque je voulait des snapshot trop rapproché (1s), le serveur FTP ne me prenais qu'une image sur 5 (le temps que le serveur ftp supprimer l'image).

J'ai donc modifier un peu ton script pour incrémenter le nom du fichier envoyer sur le serveur et la plus de soucis.

Lignes que j'ai modifiées:

$r = sdk_ftpUpload($aFtpTarget, $content, $i);

'time_fetch_box_'.$i.'.jpg'



Code : Tout sélectionner
<?php
/*******************************************************************************
* Nikya eedomus Script uCam
********************************************************************************
* Plugin version : 1.0
* Author : Nikya
* Origine : https://github.com/Nikya/eedomusScript_ucam
*******************************************************************************/

/** Utile en cours de dev uniquement */
//$eedomusScriptsEmulatorDatasetPath = "eedomusScriptsEmulator_dataset.json";
//require_once ("eedomusScriptsEmulator.php");

/** Initialisation de la réponse */
$result = array();

/*******************************************************************************
* Lecture des variables
*/

/** [Optionnel] Nombre de photo à prendre */
$snapCount = getArg('snapcount', false, 1);

/** [Optionnel] Temps d'attente en seconde entre les photos */
$snapInterval = getArg('snapinterval', false, 1);

/** [VAR1] Url pour obtenir un snap (URL à enconder)*/
$urlSnap = getArg('urlsnap');

/** [VAR2] Informations de FTP : User : Password @ server FTP */
$ftpTarget = getArg('ftptarget');

/*******************************************************************************
* Procéder
*/
sdk_main();
function sdk_main() {
   global $snapCount;
   global $snapInterval;
   global $urlSnap;
   global $ftpTarget;
   $r = null;


   $aFtpTarget = sdk_readFtpTarget($ftpTarget);
   if ($aFtpTarget == null) {
      sdk_finish(array('success'=>false, 'msg' => 'Incorrecte ftpTarget '.$ftpTarget));
   }
   else {
      $i=0;
      for ( ; $i<$snapCount; $i++) {
         $content = httpQuery($urlSnap);
         $res['snapshot'][$i]['snap']['success'] = $content != null;
         $res['snapshot'][$i]['snap']['content'] = substr($content, 0, 50) . '...';
         $r = sdk_ftpUpload($aFtpTarget, $content, $i);
         $res['snapshot'][$i]['ftpupload']['success'] = $r != null;
         $res['snapshot'][$i]['ftpupload']['content'] = $r;
         usleep($snapInterval*1000*1000);
      }

      $res['success'] = true;
      $res['msg'] = "A total of $i snaps processed (Interval={$snapInterval}s)";
      sdk_finish($res);
   }
}

/*******************************************************************************
* Lecture des informations du FTP
*/
function sdk_readFtpTarget($ftpTarget) {
   $patern = '#(.+):(.+)@(.+)#'; // user:mdp@www.site.fr

   $matches = null;
   if (preg_match_all($patern, $ftpTarget, $matches)===false or count($matches[0])==0)
      return null;
   else
      return array(
         'user' => $matches[1][0],
         'pwd' => $matches[2][0],
         'server' => $matches[3][0]
      );
}

/*******************************************************************************
* Appeler le preset
*/
function sdk_preset($urlPreset, $presetId) {
   $patern = '#presetid#';
   $urlPreseted = str_replace ($patern, $presetId, $urlPreset);
   $return = httpQuery($urlPreseted);
}

/*******************************************************************************
* Envoie du contenue par FTP
*/
function sdk_ftpUpload($aFtpTarget, $content, $i) {
   return ftpUpload(
         $aFtpTarget['server'],
         $aFtpTarget['user'],
         $aFtpTarget['pwd'],
         $content,
         'time_fetch_box_'.$i.'.jpg'
      );
}

/*******************************************************************************
* Fin du script affichage du résultat
*/
function sdk_finish($res) {
   echo '<pre>';
   var_dump($res);
   echo '</pre>';
   exit;
}
LaFrite72
 
Messages : 11
Inscription : 23 Fév 2015

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar Nikya63 » 25 Jan 2018 15:11

@LaFrite72, j'ai intégré ta proposition pour une prochaine mise à jour :

https://github.com/Nikya/eedomusScript_ ... ll/1/files

ça explique surement certains comportements que j'avais constatés, mais jamais investigué donc merci pour ta contribution :)
Développeur (LinkedIn)
Mes scripts eedomus : GitHub
Rédacteur à Devotics.fr (les articles eedomus)
Nikya63
 
Messages : 26
Inscription : 23 Juil 2017
Localisation : Auvergne / Puy-De-Dôme / Cournon

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar Anthony86 » 06 Fév 2018 21:25

Bonsoir

juste une question

je possede une camera Samsung (avec application smartcam) SNH-E6440BN

j'ai bien trouver le lien sur Ispyconnect

par contre pour FTP je met quoi, j'ai un NAs syno ??

merci d'avance
Box Eedomus, modules Ecodevice, compteur Gioanola eau, Fibaro FGS-222 Switch,Fibaro FGMS-001-ZW5,REMOTEC ZXT-120 , 2 smoke sensor , 5 QUBINO ZMNHJD1, RFXcom,2 sondes Oregon THGR810, 3 sondes THN132N, 1 sonde BTHGN129
Anthony86
 
Messages : 337
Inscription : 09 Jan 2017

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar Nikya63 » 11 Mars 2018 15:19

Anthony86 a écrit:Bonsoir

juste une question

je possede une camera Samsung (avec application smartcam) SNH-E6440BN

j'ai bien trouver le lien sur Ispyconnect

par contre pour FTP je met quoi, j'ai un NAs syno ??

merci d'avance


Bonjour Anthony86,

Ce plugin est fait pour fonctionner avec les FTP fournis par eedomus.

Tout l’intérêt du FTP eedomus et de pouvoir ensuite consulter la dernière image et l'historique des images directement dans l'interface de la box.
Avec un FTP externe la box ne peut pas proposer cette fonctionnalité.

Mais ce script devrait pouvoir fonctionner avec un autre FTP en renseignant l’information voulue
Code : Tout sélectionner
login:passe@serveur
.
Mais je ne le garantit pas, je n'ai pas testé.
Développeur (LinkedIn)
Mes scripts eedomus : GitHub
Rédacteur à Devotics.fr (les articles eedomus)
Nikya63
 
Messages : 26
Inscription : 23 Juil 2017
Localisation : Auvergne / Puy-De-Dôme / Cournon

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar Nikya63 » 11 Mars 2018 16:04

Nouvelle version mineur : v1.1

Correction d'un bug qui fesait que pour une rafale photo trop rapide, les photos s’écrasaient l'une l'autre avant d’être correctement uploadées : Seul la dernière photo était finalement enregistrée.

Merci à @LaFrite72 pour la remonté du bug et la proposition de correctif !

Plus d'information : https://github.com/Nikya/eedomusScript_ ... ses/latest
Développeur (LinkedIn)
Mes scripts eedomus : GitHub
Rédacteur à Devotics.fr (les articles eedomus)
Nikya63
 
Messages : 26
Inscription : 23 Juil 2017
Localisation : Auvergne / Puy-De-Dôme / Cournon

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar wirless » 26 Mars 2018 17:50

Bonsoir.
Merci pour ce script .Un peu d'aide serait le bienvenue .
Je reçois bien les 3 snapshots mais vide ,image blanche.
Merci par avance pour votre aide
wirless
 
Messages : 38
Inscription : 05 Jan 2014
Localisation : Marne

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar Nikya63 » 27 Mars 2018 12:56

Bonjour @wirless,

- Si vous appelez directement l'URL de snapshot avec le navigateur Web, l'image est-elle aussi blanche
?
- Quelle est cette URL ?
- Quelle est la marque et le modèle de la cam ?
- Si le script est appelé en mode test coté eedomus, le compte rendu d’exécution affiche t'il des erreurs ?
Développeur (LinkedIn)
Mes scripts eedomus : GitHub
Rédacteur à Devotics.fr (les articles eedomus)
Nikya63
 
Messages : 26
Inscription : 23 Juil 2017
Localisation : Auvergne / Puy-De-Dôme / Cournon

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar wirless » 28 Mars 2018 12:03

Nikya63 a écrit:Bonjour @wirless,

- Si vous appelez directement l'URL de snapshot avec le navigateur Web, l'image est-elle aussi blanche
?
- Quelle est cette URL ?
- Quelle est la marque et le modèle de la cam ?
- Si le script est appelé en mode test coté eedomus, le compte rendu d’exécution affiche t'il des erreurs ?


Bonjour Nikya63
Merci pour ta réponse.
_Url du snapshot fonctionne bien avec le navigateur
_ URL http://Ip cam:4343/snapshot.cgi?&user=loginCam&pwd=pass cam
_Cam Foscam FI9804
Le scipt en mode test :
array(3) {
["snapshot"]=>
array(3) {
[0]=>
array(2) {
["snap"]=>
array(2) {
["success"]=>
bool(true)
["content"]=>
string(53) "..."
}
["ftpupload"]=>
array(2) {
["success"]=>
bool(true)
["content"]=>
string(78) "{ "error": false, "msg": "Content uploaded to camera.eedomus.com at 12:51:14"}"
}
}
[1]=>
array(2) {
["snap"]=>
array(2) {
["success"]=>
bool(true)
["content"]=>
string(53) "..."
}
["ftpupload"]=>
array(2) {
["success"]=>
bool(true)
["content"]=>
string(78) "{ "error": false, "msg": "Content uploaded to camera.eedomus.com at 12:51:16"}"
}
}
[2]=>
array(2) {
["snap"]=>
array(2) {
["success"]=>
bool(true)
["content"]=>
string(53) "..."
}
["ftpupload"]=>
array(2) {
["success"]=>
bool(true)
["content"]=>
string(78) "{ "error": false, "msg": "Content uploaded to camera.eedomus.com at 12:51:18"}"
}
}
}
["success"]=>
bool(true)
["msg"]=>
string(42) "A total of 3 snaps processed (Interval=2s)"
}
Merci et bonne journée
wirless
 
Messages : 38
Inscription : 05 Jan 2014
Localisation : Marne

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar Nikya63 » 28 Mars 2018 13:25

De ce que je peux constater, c'est qu'il n'y a pas de soucis avec l'URL de snap, car si elle fonctionne dans le navigateur c'est déjà un bon point, la différence aurait pu être au niveau authentification, mais un User et mot de passe est passé dans l'URL.

Le script fonctionne parfaitement car il obtient bien du contenue et l'envoie bien les 3 fois sans erreur.

Par contre ce qui m'étonne un peu c'est le string(53) "..." qui devrait avoir des choses en plus que les ... (Mais je suis pas sur).

Il se pourrais que ce soit la fonction eedomus httpQuery qui ne fonctionne pas avec cette cam.

A essayer en créant un nouveau script PHP pour test, avec juste comme code :

Code : Tout sélectionner

var_dump
( httpQuery( 'http://Ip cam:4343/snapshot.cgi?&user=loginCam&pwd=pass cam') );
 


Qui devrai renvoyer un grand contenue illisible et pas une page blanche.
Développeur (LinkedIn)
Mes scripts eedomus : GitHub
Rédacteur à Devotics.fr (les articles eedomus)
Nikya63
 
Messages : 26
Inscription : 23 Juil 2017
Localisation : Auvergne / Puy-De-Dôme / Cournon

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar wirless » 28 Mars 2018 14:36

Merci pour ta réponse rapide.
Effectivement ça me renvoi une page illisible.
wirless
 
Messages : 38
Inscription : 05 Jan 2014
Localisation : Marne

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar Nikya63 » 29 Mars 2018 13:36

La page illisible renvoyée lors du dernier test commence par quoi ? String(??)

L'URL de snap renseignée dans VRA1 est bien URLencodée et non pas en cratères brutes ?
Développeur (LinkedIn)
Mes scripts eedomus : GitHub
Rédacteur à Devotics.fr (les articles eedomus)
Nikya63
 
Messages : 26
Inscription : 23 Juil 2017
Localisation : Auvergne / Puy-De-Dôme / Cournon

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar wirless » 29 Mars 2018 14:35

Nikya63 a écrit:La page illisible renvoyée lors du dernier test commence par quoi ? String(??)

L'URL de snap renseignée dans VRA1 est bien URLencodée et non pas en cratères brutes ?

Bonjour.
La page comence par string(29709)
L'URL de snap j'ai mis http://ipcam: port/snapshot.cgi?&user=.....&pwd.....

Merci
wirless
 
Messages : 38
Inscription : 05 Jan 2014
Localisation : Marne

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar Nikya63 » 30 Mars 2018 11:36

wirless a écrit:
Nikya63 a écrit:La page illisible renvoyée lors du dernier test commence par quoi ? String(??)

L'URL de snap renseignée dans VRA1 est bien URLencodée et non pas en cratères brutes ?

Bonjour.
La page comence par string(29709)
L'URL de snap j'ai mis http://ipcam: port/snapshot.cgi?&user=.....&pwd.....

Merci


L'URL de Snap mise dans VAR1 dois être encodée, se qui ne semble pas être le cas ici.
Développeur (LinkedIn)
Mes scripts eedomus : GitHub
Rédacteur à Devotics.fr (les articles eedomus)
Nikya63
 
Messages : 26
Inscription : 23 Juil 2017
Localisation : Auvergne / Puy-De-Dôme / Cournon

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar wirless » 30 Mars 2018 14:54

Bonjour,
C’est bien ça !!!
Toutes mes excuses …. Je suis passé à côté de cette étape
Merci beaucoup pour votre aide et votre patience
wirless
 
Messages : 38
Inscription : 05 Jan 2014
Localisation : Marne

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar Nikya63 » 31 Mars 2018 21:11

OK, c'est cool si c'est que ça !
Dans une prochaine mise à jour je ferais en sorte que se soit le script qui s'occupe de l'encodage comme c'est possible.
Développeur (LinkedIn)
Mes scripts eedomus : GitHub
Rédacteur à Devotics.fr (les articles eedomus)
Nikya63
 
Messages : 26
Inscription : 23 Juil 2017
Localisation : Auvergne / Puy-De-Dôme / Cournon

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar danardf » 19 Août 2018 09:41

Bonjour.

Comment puis-je exécuter le script toute les X minutes.?
Actuellement, j'upload bien l'image sur un serveur FTP sur le WAN.
Je souhaiterais juste qu'il pousse l'image toutes les minutes par exemple.

Merci de votre aide.
danardf
 
Messages : 64
Inscription : 27 Juil 2018

Re: [Store] uCam : Plugin de caméra universel (Snapshot)

Messagepar danardf » 19 Août 2018 15:10

danardf a écrit:Bonjour.

Comment puis-je exécuter le script toute les X minutes.?
Actuellement, j'upload bien l'image sur un serveur FTP sur le WAN.
Je souhaiterais juste qu'il pousse l'image toutes les minutes par exemple.

Merci de votre aide.


C'est bon j'ai trouvé.
Juste créer une règle avec horaires (toutes les minutes) + actions (4) donc la première lance une snapshot et les autres une macro toutes décalées de 15 secondes.
Les caméras se rafraichissent ainsi toutes les minutes à 15 secondes de différence.
danardf
 
Messages : 64
Inscription : 27 Juil 2018

Suivant

Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : djgoub, Dominic, influman et 3 invité(s)