[RESOLU] Refresh image de cam USB sur mon pi

Forum dédié aux interfaces personnalisables : Custom Pages, Reacticz, Domoboard...
Sepular
Messages : 5
Inscription : 06 avr. 2018, 06:26

[RESOLU] Refresh image de cam USB sur mon pi

Message 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 ?
Dernière modification par Sepular le 07 avr. 2018, 00:30, modifié 3 fois.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Refresh image de cam

Message par vil1driver »

Salut,

un truc de ce genre

Code : Tout sélectionner

image.jpg?timestamp="+Date.now()
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Sepular
Messages : 5
Inscription : 06 avr. 2018, 06:26

Re: Refresh image de cam

Message 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
Dernière modification par Sepular le 07 avr. 2018, 04:19, modifié 1 fois.
Sepular
Messages : 5
Inscription : 06 avr. 2018, 06:26

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

Message 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
Répondre