Hello,
J’utilise la commande [Enregistrer] du plugin camera dans un scénario pour m’envoyer des snapshot via telegram.
Et je remarque qu’il arrive, mais pas tout le temps, que l’image envoyée ne soit pas la bonne, mais une image avec un horodatage antérieur.
J’utilise des cameras Reolink en 4k, et des Hikevision chinoises.
Et les options d’envois sont les suivantes :
nbSnap=1 message=‹ Coucou › disable_notify=0 sendFirstSnap=0 movie=0
Si vous avez une idée de la cause, ou un moyen de contournement.
Suis-je le seul a remarquer ca?
Merci
pas eu ce cas, mais via pushover parfois 1 seule image au lieu de 2 images (de 2 caméras différents)
Bonjour,
Il faut dire que l’on ne dispose pas de beaucoup d’éléments.
Ma théorie soufflée par ma boule de cristal déjà passablement usée :
Pour une raison X ou Y, le temps d’encodage de l’image est supérieur au temps de déclenchement du scénario. C’est donc l’image précédente qui est envoyée.
Cela peut être facilement contrôlé en comparant la date de création de l’image avec l’heure dans les logs du scénario.
Si c’est le cas, mettez une pause de 5 secondes en début de scénario.
Désolé de ne pas avoir donné plus d’infos, mais je ne vois pas quoi dire d’autre.
Le scénario ne fait qu’appeler la commande [Enregistrer] des cameras en passant la commande de mon equipement telegram.
Je ne stocke l’image du snapshot nulle par et ne peut pas intégrer de pause quelque part puisque tout se fait en une seule commande.
Mais l’idée du temps d’encodage pas pris en compte dans le code d’envoi du snapshot me plait bien…
Je ne saurais pas dire si le fait d’appeler plusieurs commandes a la suite change quelques chose…
Dispo pour faire des tests si vous voulez
Il s’agit donc bien d’un scénario. Il n’y a pas de logs ?
Pouvez vous faire un screenshot de ce scénario ?
Alors comment expliquer l’envoi d’une image antérieure ?
Il n’y a rien dans le dossier « html/plugins/camera/data/records » ?
Je ne me l’explique justement pas 
Si ce n’est un delais dans le traitement…
Voila mon scenario de test :
//Test sendSnapshot car parfois, c'est une vieille image qui est envoyée
$id = 104198; //Id de la commande sendSnapshot de la camera Jardin avant
$command = 6354; //Id de la commande telegram
$messageNotif = '';
$sendSnapshotCmd = cmd::byId($id);
//TODO : voir pourquoi l'image de la camera est parfois trop ancienne?
// Options : nombre de captures, message, désactiver les notifications internes, ne pas envoyer la première capture
$options = [
'nbSnap' => 1,
'message' => $messageNotif,
'disable_notify' => 1,
'movie' => 0,
'sendFirstSnap' => 0
];
// Construire la chaîne d'options
$optionsString = "nbSnap={$options['nbSnap']} message='{$options['message']}' disable_notify={$options['disable_notify']} sendFirstSnap={$options['sendFirstSnap']} movie={$options['movie']}";
// Paramètres de la commande
$execParams = [
'title' => $optionsString, // Nombre de captures et options
'message' => $command // Commande d'envoi
];
// Exécuter la commande sendSnapshot
$sendSnapshotCmd->execCmd($execParams);
Le probleme, c’est que le probleme n’est pas systematique. Je vais comparer a ce que je trouve dans le dosssier records des cameras. (ou il y a bien des jpeg et des videos)
Peut-etre une piste : j’envoi parfois un snapshot de plusieurs camera en meme temps
Je viens de reproduire l’erreur. Voici les images récupérées du dossier camera :
La premiere demandé a 17:51:41 mais qui récupère une image de 11:42 ce matin!
La 2eme demandée a 17:52:00 qui recupère bien une image récente de 17:51:43 (bien qu’en retard de 15s)
Et la 3eme, demandée a 18:02, montre en fait l’image de 17:52!
J’ai l’impression qu’il y a systematiquement un décalage en fait.
Si il y a moyen de rajouter un délais, je ne vois pas ou le mettre
EDIT : en attendant, si je lance un takesnapshot avant le sendsnapshot, j’ai une image à jour.
Pas terrible, mais faute de mieux…