cache sur les scripts info ?
cache sur les scripts info ?
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 ?
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 ?
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 ?
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
Jeedom sur RPI 2 et Odroid C2
Re: cache sur les scripts info ?
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...
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 ?
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.
ça évite d'avoir des cron pour rien.
Re: cache sur les scripts info ?
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
- 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
- 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
et ceci sur l'attribut événement, que personnellement je ne vois pas dans mon cas de figureAuto-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.
Je suis preneur d'explications sur :é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.
- 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 ?
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
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 ?
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é...
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
Re: cache sur les scripts info ?
Contenu supprimé à la demande de son auteur
Re: cache sur les scripts info ?
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
Re: cache sur les scripts info ?
Contenu supprimé à la demande de son auteur
Re: cache sur les scripts info ?
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é' ?
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
Re: cache sur les scripts info ?
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
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
Prod : Jeedom Stable sur Smart | Z-wave
Synology DS1512+|Rpis Kodi|Netatmo|SNIPS-Tips|Market
JeedomV4Tips
Re: cache sur les scripts info ?
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 ?
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 ?
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 ?
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 ?
+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
Re: cache sur les scripts info ?
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 ?
Avez-vous trouvé une solution/option pour ne pas regarder en cache ?
Re: cache sur les scripts info ?
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}"
Re: cache sur les scripts info ?
@loic, peux tu nous expliquer le fonctionnement des commandes infos via un script ?
Re: cache sur les scripts info ?
Bon, bah en fait ça ne fonctionne pas, je n'ai eu aucun changements en 1 jour...Overcrash a écrit : ↑26 nov. 2019, 20:59J'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}"
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
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 19 invités