Page 1 sur 1

[RESOLU] Refresh image de cam USB sur mon pi

Publié : 06 avr. 2018, 19:19
par Sepular
Bonjour,

Je cherche a afficher une photo prise de ma caméra USB branché sur mon pi dans une page custom de domoticz.

J'utilise un script lua très simple qui lui utilise fswebcam pour une photo

Code : Tout sélectionner

commandArray = {}

    os.execute ("fswebcam --save /home/pi/*****/www/templates/cam/image.jpg")
    print( "SnapCam" )

return commandArray
Sur ma page custom du dossier template j'affiche et rafraîchis mon image toute les Xs (quel est le temps de relance des scripts ?)

Code : Tout sélectionner

<center>
	<img id="cam" src="http://XXXXXXXX/templates/cam/image.jpg" />
</center>
<script>
    $(document).ready(function(){  
        setInterval(function(){   
            $("#cam").load("http://XXXXXXXX/templates/cam/image.jpg");
        }, 10000);
    });
</script>
Mais voilà, cela ne fonctionne pas.

Mais pourquoi cela ne fonctionne pas vous vous dites et ben moi aussi lol
Bon la raison est du au cache du navigateur.

Avez-vous une solution pour éviter la mise en cache de l'image ?

Re: Refresh image de cam

Publié : 06 avr. 2018, 19:40
par vil1driver
Salut,

un truc de ce genre

Code : Tout sélectionner

image.jpg?timestamp="+Date.now()

Re: Refresh image de cam

Publié : 07 avr. 2018, 00:19
par Sepular
Pourquoi faire simple quand on peut faire compliquer

Re,

Bon j'ai essayé ton idée rapidement parce que je n'y parvenais pas j'ai donc pris une autre direction qui est radical :D

SCRIPT LUA

Code : Tout sélectionner

commandArray = {}
    os.execute('bash /home/pi/XXXXXXXX/scripts/bash/snapcam.sh')
return commandArray
qui lance mon SCRIPT BASH

Code : Tout sélectionner

#!/bin/sh


rep=/home/pi/XXXXXXXX/www/templates/Cam/Img/

cheminComplet=$(find $rep -name "*.jpg") 
OldImg="${cheminComplet##*/}"
echo "$OldImg"

rm -rf $rep*

DATE=$(date +"%Y-%m-%d_%H%M")
fswebcam -r 1920x1080 --save /home/pi/XXXXXXXX/www/templates/Cam/Img/$DATE.jpg

cheminComplet=$(find $rep -name "*.jpg")
NewImg="${cheminComplet##*/}"
echo "$NewImg"

sed -i "s/$OldImg/$NewImg/g" /home/pi/XXXXXXXX/www/templates/Cam/Frame/CamFrame.html

exit 0
qui modifie ma PAGE CAMFRAME qui lui se refresh toute les minutes

Code : Tout sélectionner

<!DOCTYPE html>
<html lang="fr" >
	<head>
		<title>CamFrame</title>
		<meta http-equiv="refresh" content="60">
	</head>
	<body>
		<center>
			<img width="640" height="480" src="http://XXXXXXXX/templates/Cam/Img/2018-04-07_0004.jpg">
		</center>
	</body>
</html>
Ma page CAM qui affiche la FRAME

Code : Tout sélectionner

<center>
	<iframe frameborder="0" width="680" height="520" src="http://XXXXXXXX/templates/Cam/Frame/CamFrame.html"></iframe>
</center>
Avec une structure de dossier bien ranger ( mais qui complique le code quand même )
  • Un dossier Cam
    • Un dossier Frame
      • Une page CamFrame.html
      Un dossier Img
      • L'image de la cam
    Une page Cam.html
J'allais oublier le script bash qui est dans /home/pi/XXXXXXXX/scripts/bash/snapcam.sh


Pourquoi faire simple quand on peut faire compliquer

Edit : parcontre l'image n'est pas TOUJOURS prise avec fswebcam car il envoi une erreur de BUSY.
Faut croire qu'il est trop occupé ce raspberry bon a rien :D
Peut-être une limitation des ports USB également (je regarderais en diminuant la résolution, après faudrait augmenter le temps d'envoi du bash)
Cela est bien du a un busy sur le port USB de la cam.
J'ai recodé un peut pour qu'au prochain lancement du script tout le monde retombe sur c pied

Re: [RESOLU] Refresh image de cam USB sur mon pi

Publié : 07 avr. 2018, 04:09
par Sepular
SCRIPT BASH A TOUT EPREUVE :D

Code : Tout sélectionner

#!/bin/sh

clear

rm -rf /home/pi/XXXXXX/www/templates/Cam/Img/*

DATE=$(date +"%Y-%m-%d_%H%M")
fswebcam -r 1920x1080 --no-banner --save /home/pi/XXXXXX/www/templates/Cam/Img/$DATE.jpg

> /home/pi/XXXXXX/www/templates/Cam/Frame/CamFrame.html

echo "<!DOCTYPE html><html lang='fr' ><head><title>CamFrame</title><meta http-equiv='refresh' content='60'></head><body><center><img width='640' height='480' src='http://XXXXXX/templates/Cam/Img/$DATE.jpg'></center></body></html>" >> /home/pi/XXXXXX/www/templates/Cam/Frame/CamFrame.html

exit 0