Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

cache sur les scripts info ?

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
Avatar de l’utilisateur
minscof
Actif
Messages : 587
Inscription : 27 janv. 2015, 21:37

cache sur les scripts info ?

Message par minscof » 25 févr. 2016, 18:36

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 ?

Avatar de l’utilisateur
gratteux
Timide
Messages : 172
Inscription : 27 oct. 2015, 11:33

Re: cache sur les scripts info ?

Message par gratteux » 01 mars 2016, 08:59

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 ?
Jeedomien bidouilleur depuis 2015
Jeedom sur RPI 2 et Odroid C2

chsalmon
Timide
Messages : 185
Inscription : 23 déc. 2014, 11:25

Re: cache sur les scripts info ?

Message par chsalmon » 01 avr. 2016, 14:31

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...

chsalmon
Timide
Messages : 185
Inscription : 23 déc. 2014, 11:25

Re: cache sur les scripts info ?

Message par chsalmon » 11 avr. 2016, 13:24

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.

Avatar de l’utilisateur
minscof
Actif
Messages : 587
Inscription : 27 janv. 2015, 21:37

Re: cache sur les scripts info ?

Message par minscof » 17 avr. 2016, 15:34

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

drastef
Timide
Messages : 57
Inscription : 26 févr. 2015, 09:08

Re: cache sur les scripts info ?

Message par drastef » 14 mai 2016, 12:36

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

Avatar de l’utilisateur
kiboost
Actif
Messages : 1433
Inscription : 19 déc. 2017, 15:02
Localisation : France, Bretagne

Re: cache sur les scripts info ?

Message par kiboost » 08 janv. 2018, 14:29

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é...

Prod : Jeedom Stable sur Smart | Z-wave
Synology DS1512+|Rpis Kodi|Netatmo|SNIPS-Tips|Market
JeedomV4Tips

Anonyme
Actif
Messages : 10082
Inscription : 09 août 2014, 12:15

Re: cache sur les scripts info ?

Message par Anonyme » 08 janv. 2018, 14:54

Contenu supprimé à la demande de son auteur

Avatar de l’utilisateur
kiboost
Actif
Messages : 1433
Inscription : 19 déc. 2017, 15:02
Localisation : France, Bretagne

Re: cache sur les scripts info ?

Message par kiboost » 08 janv. 2018, 15:03

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)

Prod : Jeedom Stable sur Smart | Z-wave
Synology DS1512+|Rpis Kodi|Netatmo|SNIPS-Tips|Market
JeedomV4Tips

Anonyme
Actif
Messages : 10082
Inscription : 09 août 2014, 12:15

Re: cache sur les scripts info ?

Message par Anonyme » 08 janv. 2018, 15:11

Contenu supprimé à la demande de son auteur

Avatar de l’utilisateur
kiboost
Actif
Messages : 1433
Inscription : 19 déc. 2017, 15:02
Localisation : France, Bretagne

Re: cache sur les scripts info ?

Message par kiboost » 08 janv. 2018, 15:13

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é' ?

Prod : Jeedom Stable sur Smart | Z-wave
Synology DS1512+|Rpis Kodi|Netatmo|SNIPS-Tips|Market
JeedomV4Tips

Avatar de l’utilisateur
kiboost
Actif
Messages : 1433
Inscription : 19 déc. 2017, 15:02
Localisation : France, Bretagne

Re: cache sur les scripts info ?

Message par kiboost » 08 janv. 2018, 16:09

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:

Prod : Jeedom Stable sur Smart | Z-wave
Synology DS1512+|Rpis Kodi|Netatmo|SNIPS-Tips|Market
JeedomV4Tips

Avatar de l’utilisateur
D-Kalck
Timide
Messages : 64
Inscription : 29 juin 2017, 23:20

Re: cache sur les scripts info ?

Message par D-Kalck » 28 juin 2018, 09:40

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.

pinouche
Timide
Messages : 9
Inscription : 15 juin 2018, 17:46

Re: cache sur les scripts info ?

Message par pinouche » 18 août 2018, 00:06

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....

AmenatiS
Timide
Messages : 6
Inscription : 14 mai 2019, 15:31

Re: cache sur les scripts info ?

Message par AmenatiS » 11 juil. 2019, 23:07

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 ?

Avatar de l’utilisateur
minscof
Actif
Messages : 587
Inscription : 27 janv. 2015, 21:37

Re: cache sur les scripts info ?

Message par minscof » 12 juil. 2019, 21:32

+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

Overcrash
Timide
Messages : 60
Inscription : 03 févr. 2015, 12:11

Re: cache sur les scripts info ?

Message par Overcrash » 26 nov. 2019, 20:39

Je suis dans le même cas que vous, une info que je récupère d'une page ne change jamais alors qu'en vrai elle varie presque toutes les secondes...

Avez-vous trouvé une solution/option pour ne pas regarder en cache ?

Overcrash
Timide
Messages : 60
Inscription : 03 févr. 2015, 12:11

Re: cache sur les scripts info ?

Message par Overcrash » 26 nov. 2019, 20:59

J'ai utilisé une parade en faisant un curl, si ça peut dépanner certains en attendant une autre solution plus "officielle" :

Code : Tout sélectionner

#!/bin/bash

req=$(curl -s -X GET http://123.456.789.123/moninfo -H "Cache-Control: no-cache") 2>&1
echo "${req}"

Avatar de l’utilisateur
minscof
Actif
Messages : 587
Inscription : 27 janv. 2015, 21:37

Re: cache sur les scripts info ?

Message par minscof » 26 nov. 2019, 23:16

@loic, peux tu nous expliquer le fonctionnement des commandes infos via un script ?

Overcrash
Timide
Messages : 60
Inscription : 03 févr. 2015, 12:11

Re: cache sur les scripts info ?

Message par Overcrash » 27 nov. 2019, 21:02

Overcrash a écrit :
26 nov. 2019, 20:59
J'ai utilisé une parade en faisant un curl, si ça peut dépanner certains en attendant une autre solution plus "officielle" :

Code : Tout sélectionner

#!/bin/bash

req=$(curl -s -X GET http://123.456.789.123/moninfo -H "Cache-Control: no-cache") 2>&1
echo "${req}"
Bon, bah en fait ça ne fonctionne pas, je n'ai eu aucun changements en 1 jour...

Du coup ça devient assez gênant de ne plus avoir cette info pour moi et je ne vois pas quoi faire d'autre pour "éviter" ce cache :?

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 10 invités