[Module Camera] Améliorations du module

Oui tu as complétement raison !
Je commence à bien prendre en main leur lib mais j’ai je n’arrive pas à faire une version de developpement de gladys sur raspberry…
J’ai eu aucun soucis pour l’installation et la lancement du serveur mais au moment de lancer le front, j’ai une grosse erreur :

Summary

You can view the application in browser.Local: http://localhost:1444
On Your Network: http://192.168.0.21:1444<— Last few GCs —>
fa[5372:0x20a9450] 260735 ms: Mark-sweep 222.0 (226.8) → 221.6 (226.8) MB, 433.3 / 0.2 ms (+ 43.5 ms in 7 steps since start of marking, biggest step 7.9 ms, walltime since start of marking 529 ms) (average mu = 0.175, current mu = 0.099) allocation fail[5372:0x20a9450] 261255 ms: Mark-sweep 221.9 (226.8) → 221.7 (226.8) MB, 459.6 / 0.1 ms (+ 25.9 ms in 6 steps since start of marking, biggest step 7.0 ms, walltime since start of marking 520 ms) (average mu = 0.123, current mu = 0.067) allocation fail<— JS stacktrace —>==== JS stack trace ========================================= 0: ExitFrame [pc: 0xee3360]
Security context: 0x3984ea21
1: fnModule(aka fnModule) [0x30b9091d] [/home/pi/gladys/front/node_modules/webpack/lib/Stats.js:~321] [pc=0x32d449d4](this=0x56f40279 ,0x568ecead )
2: map [0x3984716d](this=0x2b67f10d <JSArray[1144]>,0x30b9091d <JSFunction fnModule (sfi = 0x4d7457fd)>)
3: /* anonymous /(aka / anonymous */) [0x30b9163d] [/hom…FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
Aborted
npm ERR! code ELIFECYCLE
npm ERR! errno 134
npm ERR! gladys-front@ start:development: npm run -s dev
npm ERR! Exit status 134
npm ERR!
npm ERR! Failed at the gladys-front@ start:development script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2020-11-21T17_16_06_339Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 134
npm ERR! gladys-front@ start: per-env
npm ERR! Exit status 134
npm ERR!
npm ERR! Failed at the gladys-front@ start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2020-11-21T17_16_06_432Z-debug.log

Une idée @pierre-gilles pour lancer le front sur mon raspberry de test ?

La stack strace dit « ouf of memory » error, il n’y a plus de RAM dispo sur ton Pi problablement.

Lancer le front de dev sur le Pi, c’est ambitieux. Limite tu pourrais lancer le backend sur le Pi (plus léger), et le front sur ton laptop, et faire pointer le front sur le backend du pi ? :slight_smile:

En effet je pensais pas faire souffrir ma raspberry en lançant le front :slight_smile:
J’y ai pas pensé ! je test ça ce weekend :slight_smile:

Lancer le front en mode dev c’est lancer webpack (un tool JS très très lourd qui fait de la transpilation live et du hot reload), c’est malheureusement très gourmand ^^ Tu nous diras.

Sinon rien à voir, mais quelqu’un a converti ffmpeg en WASM afin de pouvoir utiliser ffmpeg dans Node.js nativement.

C’est possible pour l’instant uniquement avec des flags expérimentaux, mais c’est très prometteur et dès que ça sera possible sans flag ça permettra sûrement d’avoir la performance qu’on recherche pour du live.

1 « J'aime »

Je viens de créer la PR, ça fonctionne super bien ! Add Pi-camera integration by geoffreyp · Pull Request #1032 · GladysAssistant/Gladys · GitHub

Il y a codecov/patch qui n’est pas passé et qui me demande d’ajouter des tests mais je ne sais pas quoi rajouter, je ne vois pas comment tester seulement les quelques lignes que j’ai ajoutées au fichier server/services/rtsp-camera/lib/getImage.js

@pierre-gilles Tu me conseilles quoi pour que ce test passe ?

Je vais m’occuper cette apres-midi de faire la PR pour la doc
edit : lien de la PR pour la doc : update camera documentation with camera module informations by geoffreyp · Pull Request #39 · GladysAssistant/v4-website · GitHub

1 « J'aime »

Hello,

Je vais tenter de te répondre pour la partie test.

Le fichier se trouve ici: Gladys/rtspCamera.test.js at master · GladysAssistant/Gladys · GitHub

Comme tu peux le voir sur ton fichier à toi (le résumé de coverage): Code coverage done right.
Le coverage dit (en rouge) que les tests ne passent pas par le if que tu as rajouté if (cameraUrlParam.value === 'pi-camera') {

Donc l’idée c’est de rajouter à la main un device où le cameraUrlParam.value est égale à pi-camera.

Donc il faut dupliquer ca:

const device = {
  id: 'a6fb4cb8-ccc2-4234-a752-b25d1eb5ab6b',
  selector: 'my-camera',
  params: [
    {
      name: 'CAMERA_URL',
      value: 'test',
    },
  ],
};

Et remplacer value par ce que tu souhaites. Rajouter un it should … Avec le bon device et le tour est joué :slight_smile:

Merci pour la réponse !
Je n’arrive pas à importer le package que j’utilise dans les tests, il a une manière différente de faire l’import ?
Ça ne serait pas lié à ce fichier qui semble remplacer la lib ffmpeg par exemple ? Gladys/FfmpegMock.test.js at master · GladysAssistant/Gladys · GitHub

En fait tu ne dois pas importer ta lib mais la mocker, tu fake ce qu’elle doit retourner.

Le but n’étant pas de tester la lib mais le code de gladys.

J’espère ne pas avoir écrit d’âneries :sweat_smile:

1 « J'aime »

ah oui bah ça me paraît logique en fait :sweat_smile:

1 « J'aime »

Bonjour a tous ,
J’ai une camera chinoise qui est compatible flux rtsp, mais voila quand je l’installe sur mon smartphone avec app Yosee, je n’ai plus accès au flux de la camera sur Gladys . Est ce normal, où je ne prend pas le bon flux video. Voila mon flux : rtsp://admin:pwd@192.168.1.100:554/onvif1. (j’ai bien remplacé l’admin et le pwd). Avec ce flux j’ai bien une image, mais soit sur Yosee soit sur Gladys. C’est une camera Kerui Z05H-20
Merci de votre aide

@Psoy Il faudrait se renseigner sur le modèle sur internet, voir si d’autres utilisateurs ont des problèmes similaires, ça sent la caméra qui ne peut gérer qu’un seul flux :stuck_out_tongue:

Sinon tu la connecte uniquement à Gladys, et tu regarde le flux sur ton téléphone ou via l’intégration Telegram (en mode: “Montre moi la caméra du salon” je sais pas si tu as déjà testé)

Bonjour,
je n’ai pas précisé, mais c’est une camera motorisée et j’ai besoin de l’appli. Mais je voulais savoir si des camera a flux unique existait, ou si c’est moi qui ne prends pas le bon flux,

Je ne pense pas nécessairement que ce soit une caméra “à flux unique”, je pense que c’est une caméra assez bas de gamme avec très peu de puissance, et donc elle n’arrive pas à répondre assez vite à 2 clients en même temps !

Une recherche sur internet confirme cette théorie:

https://forum.jeedom.com/viewtopic.php?f=91&t=46007&sid=faf6095b53f45f5dbfbafe32526c154c&start=20

merci Pierre Gilles,
j’ai fais des recherches sur les flux , mais je ne suis pas tombé sur les sujets que tu as trouvé. Je te remercie encore pour le temps que tu nous accordes. je vais approfondir ça
Bonne journée

1 « J'aime »

Bonjour à tous
j’ai utilisé telegram pour visualiser le flux mes cameras, j’ai plusieurs camera dans le jardin et dans la doc, pour voir le flux d’une camera on l’appelle par le nom de la pièce “Montres moi la camera du jardin”. Le problème c’est que Gladys ne montre que la 1ere camera, je n’arrive pas à visualiser les autres. Est ce que l’on pourrait dire à Gladys :" montres moi la camera nom de la camera , plutôt que dire montres moi la camera nom de la pièce.?
Et est ce que l’on pourrait réactualiser le flux au moment de la réponse de Gladys( à moins que se ne soit déjà le cas);
Merci

Pourquoi pas ! Tu créé une demande de fonctionnalité ? :slight_smile: Autre option, ce serait de renvoyer toutes les images de caméras du jardin quand tu demande « montre moi la/les caméras du jardin »

Pourquoi pas, effectivement ! Actuellement c’est la dernière image de caméra qui est renvoyée. Pour ça, tu créé une Github issue par exemple ? (là dessus je sais pas trop si c’est une « demande de fonctionnalité » ou juste une amélioration de l’existant)

Merci Pierre-Gilles
j’ai créé la fonctionnalité de la camera, je l’ai posté, mais je me suis planté, je l’ai posté dans les archives. J’ai rectifié le tir, mais il reste l’entête du message, que je n’arrive pas à effacer. désolé :roll_eyes:

Je ne sais pas faire ça. Y a t-il un exemple quelque part pour que je la crée.

En passant, j’ai utilisé Gladys Plus, je n’ai pas eu de problème , ça fonctionne très bien, pas beaucoup de latence , j’ai allume une lampe et je l’ai visualisée sur une camera et le temps de changer de dashboard (sur un portable) environ deux à trois secondes j’ai vu la lampe s’allumer; très efficace :muscle:(pas moi, Gladys Plus). Merci encore pour le travail accompli :wink:

Nickel ! Merci :slight_smile:

Au final tu as mis ce retour dans l’autre demande, si je fais l’un je ferais l’autre, ça me parait bien comme ça :wink:

Génial tant mieux si ça marche bien ! Merci de ton soutien :sunglasses:

Merci pour ton aide :grinning:

Un message a été scindé en un nouveau sujet : Impossible d’ajouter une caméra dans Gladys