Page 1 sur 1

cache sur les scripts info ?

Publié : 25 févr. 2016, 18:36
par minscof
Depuis que je suis passé en V2, mais c'était peut-être déjà le cas avant, je remarque un comportement un peu aléatoire de certaines commande de script de type info : la valeur qui est retournée est différente de celle si j'exécute le script sans passer par jeedom. C'est comme s'il y avait un cache qui répond à la place de lancer le script réellement et de renvoyer le retour du script.

Est-ce qu'il y a un système de cache autour des commandes info dans le plugin script ?

Re: cache sur les scripts info ?

Publié : 01 mars 2016, 08:59
par gratteux
J'ai eu le même soucis hier : sur un script info binaire récupérant l'état d'activation du mode détection de mouvement d'une caméra, la valeur de l'info du script sur le Dashboard passait à 0 après quelques seconde alors que si je tester la valeur elle était bien de 1 :
C'est à cause du fait que la valeur est restée en évènement seul = 0 (script réalisé avant la V2). J'ai supprimé et refait le script à l'identique sous la V2 pour voir, et maintenant tout va bien (l'info est passé en évènement seul = 1 et la valeur perdure bien sur le dashboard).

Par contre un peu chiant l'action à faire car j'ai du revoir toutes mes interactions/scénarios/modes etc... où j'utilise le script pour mettre à jour les noms qui avait été remplacé par un "#172#"... J'ai une petite installation donc ça va relativement vite mais pour ceux qui en ont une grande (d'installation hein ! ^^) avec plein de scénars... bon courage !

@ Loic ou autre cador de jeedom : n'y aurait-il pas moyen de forcer le changement de paramètre (évènement seulement) sans devoir refaire la commande info ?

Re: cache sur les scripts info ?

Publié : 01 avr. 2016, 14:31
par chsalmon
Bonjour, +1 pour moi

Le systeme de cache sur les scripts info est incomprehensible.

J'ai des scripts http pour avoir des infos en temps réel qui peuvent changer souvent, il faut donc que la donnée soit récupérée immédiatement.
Le systeme de cron est inutilisable dans ce cas, trop lent et ne reflete pas l'état a un instant T.
Je ne suis pas sur que ce soit plus performant de mettre un cron sur tous les scripts, du coup toutes les commandes sont envoyées fréquemment plutôt qu'a la demande...

Comment on fait pour avoir un script qui renvoi une info en temps réel !!!? :?:

Il faudrait une option pour bypasser le cache pour certaine action (case à cocher "Temps réél oui/non" )

Pleaaaase Heeellpe...

Re: cache sur les scripts info ?

Publié : 11 avr. 2016, 13:24
par chsalmon
ok, je fais avec l'action "Rafraîchir" su script que j'appelle des que je besoin de l'info.
ça évite d'avoir des cron pour rien.

Re: cache sur les scripts info ?

Publié : 17 avr. 2016, 15:34
par minscof
Je relance ce sujet car je trouve très contraignant la solution à base de "rafraichir" pour 2 raisons :
- si on veut tester simplement la commande info avec l'action test, c'est un peu complexe d'aller demander à rafraichir la plugin (d'ailleurs comment fait on en interactif ?)
- la commande "rafraichir" est globale et rafraichit toutes les commandes info de l'équipement alors qu'on en demande qu'une seule information, ce n'est pas très optimisé si l'équipement a un nombre un peu élevé de commandes de type info

Je n'ai pas réussi à mettre en oeuvre la solution de gratteux qui consiste à passer la commande en "événement seul=1" au lieu de "événement seul=0". Ma commande ne retourne pas une info binaire mais autre (string), et je ne vois nulle part cette notion d'événement seul (ni via l'interface, ni en regardant le contenu de la base de données). J'ai pourtant créé une seconde commande depuis que je suis passé en V2, mais son comportement est entâché de la même restriction, sans une action rafraîchir, ou un cron d'actualisation, on obtient la dernière réponse mise en cache au lieu d'exécuter le script.

La documentation du plugin script n'est pas super explicite sur le comportement d'une commande info . On trouve bien sûr ceci sur l'auto-actualisation
Auto-actualisation : permet de spécifier un cron d’actualisation automatique pour toutes les commandes de type info. Vous pouvez aussi mettre juste * pour avoir une actualisation à la seconde.
et ceci sur l'attribut événement, que personnellement je ne vois pas dans mon cas de figure
évènement : retour en cas d’évènements. Dans le cas du RFXcom cette case doit toujours être cochée car on ne peut pas interroger un module RFXcom.
Je suis preneur d'explications sur :
- les choix faits autour de ces commandes info vis-à-vis du cache
- une manière simple d'obtenir une commande actualisée sans compromettre les performances de jeedom
- cette notion d'événement que je ne retrouve pas dans mon cas

Re: cache sur les scripts info ?

Publié : 14 mai 2016, 12:36
par drastef
Bonjour,
En effet j'ai le même problème depuis que je suis passé sur la V2.
J'appelle un script python qui retourne une info de type "autre" avec un scenario. Le scénario est appelé toutes les 5 minutes. Avant la V2, le script python était lancé, et la valeur obtenue était la valeur "instantanée" de retour du script. Maintenant, l'appel du script retourne la valeur que le script avait retourné lors de son appel précédent. On a donc plus la valeur "instantanée" mais une valeur plus "vieille".
Y a t'il un moyen de revenir au fonctionnement d'avant ?
Merci

Re: cache sur les scripts info ?

Publié : 08 janv. 2018, 14:29
par kiboost
Désolé de remonter un vieux poste mais j'ai exactement le même problème.

Un script php qui récupère des états de périphériques, appelé depuis une url, il n'est jamais rafraichi. Comme si le retour (un echo en fin de script) était en cache, et le script lui même ne s’exécute qu'une fois.

J'ai plusieurs scripts, la plupart statiques donc pas de problème, mais là je suis bloqué...

Re: cache sur les scripts info ?

Publié : 08 janv. 2018, 14:54
par Anonyme
Contenu supprimé à la demande de son auteur

Re: cache sur les scripts info ?

Publié : 08 janv. 2018, 15:03
par kiboost
Non, pas besoin de cron, je peux l’appeler plusieurs fois dans la même minute et plus du tout pendant plusieurs jours. Donc pas envie de faire un cron pour un truc épisodique ? Faudrait juste pas de cache pour ce script précis (pas de problème pour les autres)

Re: cache sur les scripts info ?

Publié : 08 janv. 2018, 15:11
par Anonyme
Contenu supprimé à la demande de son auteur

Re: cache sur les scripts info ?

Publié : 08 janv. 2018, 15:13
par kiboost
Alors, c'est un fichier php dans /var/www/html/kiboost/
J'ai un plugin script avec type script, action l'url /var...
Et je l'appel avec https://bibi.dns.jeedom.com/core/api/je ... cmd&id=753
une file_get_contents depuis une page php externe donc

J'ai essayé un rafraichir en pré action mais çà fait rien.
On peux pas désactiver le cache pour un répertoire ? Et mettre dedans nos scripts qui ne doivent pas être 'caché' ?

Re: cache sur les scripts info ?

Publié : 08 janv. 2018, 16:09
par kiboost
Bon je comprends pas bien...

Dans un script php on met :
$now = date('Y-m-d H:m');
echo $now;

On peux l'éxécuter 10 fois l'heure ne changera pas (rafraichit uniquement toute les heures, jeedom doit faire un refresh cache en cron j'imagine)

mais, le meme script avec :
$timezone = 'Europe/Paris';
$now = new DateTime('NOW', new DateTimeZone($timezone));
$now = $now->format('Y-m-d H:i:s');
echo $now;

Là, l'heure change bien à chaque à chaque fois !
Le cache doit cacher l'objet date, et pas la string, je sais pas :roll:

Re: cache sur les scripts info ?

Publié : 28 juin 2018, 09:40
par D-Kalck
Je remonte le sujet parceque j'ai le même soucis, je trouve ça incompréhensible qu'on ai pas une option pour qu'il n'y ai pas de cache pour ces infos.

Re: cache sur les scripts info ?

Publié : 18 août 2018, 00:06
par pinouche
J'ai le même problème avec un script de saint du jour... il y a un décalage de 1 jour à chaque fois....

Re: cache sur les scripts info ?

Publié : 11 juil. 2019, 23:07
par AmenatiS
Bonjour toute la communauté.

Je doute qu'il y ai bcp de réponse, mais je te déterre le sujet
J'ai un script python qui me sert à récupérer le crépuscule civil, le converti en HHmm et retourne le résultat.
Malheureusement que ce soit avec le cron ou un rafraîchir dans un scénarios qui tourne une fois par jour, la valeur ne se met pas à jour.
Seul moyen de mettre à jour est d'éditer l'objet script et de "tester" la commande.

Des idées ?

Re: cache sur les scripts info ?

Publié : 12 juil. 2019, 21:32
par minscof
+1, est-ce qu'on pourrait éclaircir le comportement d'une commande info via un script ?, même en demandant à rafraichir, on a l'impression qu'il y a un cache qui renvoie la valeur et l'actualisation effective de la commande reste un mystère