Valeur calculée avec Timestamp ne s'actualise pas

Bonjour à tous,

J’ai créé un petit virtuel avec une seule commande pour avoir un widget avec l’évolution de la durée d’ensoleillement par rapport à la veille. Pas bien utile mais ca fait joli sur la page d’accueil de ma tablette.
En valeur j’ai mis ca :

((strtotime(date_sunset(#timestamp# ,1,XXX,XXX,90+35/60,date(« Z »,#timestamp#)/3600)) - strtotime(date_sunrise(#timestamp# ,1,XXX,XXX,90+35/60,date(« Z »,#timestamp#)/3600))) - (strtotime(date_sunset((#timestamp#-86400) ,1,XXX,XXX,90+35/60,date(« Z »,#timestamp#)/3600))- strtotime(date_sunrise((#timestamp#-86400) ,1,XXX,XXX,90+35/60,date(« Z »,#timestamp#)/3600))))/60
(Les X correspondant à latitude/longitude)
J’ai trouvé ça sur le forum et le calcul fonctionne bien.

En revanche ce petit widget que j’ai mis en décembre restait à -1mn. Ca me semblait louche, je suis allé voir ce matin et dans configuration de commande la dernière valeur datait du 19/12 soit quand j’ai du créer ce virtuel. J’ai fait un Test de la commande ca a continué de me renvoyer -1, j’ai testé l’expression dans la configuration du virtuel, ca m’a renvoyé +1 et ca me l’a finalement actualisée dans le virtuel.

Est-ce que j’ai oublié d’activer quelque chose ? Mes autres widgets créés à partir de virtuel fonctionnent très bien mais c’est le seul dans lequel j’ai une valeur calculée comme cela.

Juste mettre un paramétre d’autoactualisation sur la première page de l’équipement virtuel.
C’est l’évolution de la valeur d’une commande qui actualise ta commande virtuelle. Là, tu n’as aucune commande à priori

Norbert

Salut, j’ai le même problème pour certain virtuel qui ne s’auto actualise pas (sans passer par le cron)

Effectivement j’étais passé à côté, merci !

1 « J'aime »

Un virtuel ne s’auto-actualise jamais sans avoir paramétré le cron … d’auto-actualisation justement !

A noter qu’il est de fois plus simple de faire les calculs dans un scenario et d’envoyer la v aleur au virtuel, scenario déclenché soit avec un déclencheur, soit avec une planification.
Je trouve de mon coté que c’est souvent plus lisible

Norbert

Désolé, pas d’accord, si tu as une cmd info comme valeur de ton virtuel. l’évolution de la commande info entrainera l’évolution du virtuel aussi
test facile à faire, tu crées un équipement virtuel avec une commande info binaire dont la valeur est l’état d’une lampe.
Avec ou sans cron d’auto actualisation paramétré. lorsque tu allumes la lampe, la valeur de ta commande virtuelle change bien et passe de 0 à 1
Heureusement d’ailleurs, imagine que les virtuels ne changent que toutes les minutes, intervalle minimum d’un cron. Ca serait totalement inutile.

Norbert

C’est pas une « auto » actualisation

On est d’accord :wink:
C’est le core qui déclenche cette mise à jour

Donc toujours pas de solution et/ou du comment pourquoi pour certaine info virtuel ca s’actualise (par le core) et pas sur d’autre info ???

J’utilise beaucoup de virtuel, et ce soucis est ennuyant car il faut passer par une solution intermédiaire. Le cron, pas ideal pour les le temps réel ou un via un scénario.

Solution intermédiaire ? Les scénarios sont natif Jeedom, les virtuels, c’est lié à un plugin

As tu ouvert un ticket chez jeedom ?

Je viens de trouver mon problème.
c’est lié au fait que l’info utilisé dans le virtuel passe par 2 autres virtuel avant l’équipement de base.

Info (jmqtt) sans modif → info (virtuel) sans modif → info (virtuel) modifié → info (virtuel) re calculé : la ca ne passe pas. pas d’actualisation de la dernière info.

En supprimant une étape, l’info s’actualise normalement

L’usage des virtuels est à limiter car très gourmand en ressources …

En sachant que j’allais utilisé jeedom comme centre à tous faire. je l’ai installé sur une grosse VM de mon serveur. Niveau rss, je peux suivre.
Il y aurait un paramèrtre qui limiterait la remontée des infos ?

Juste un conseil : Utilisation du plugin VIRTUEL - remise en cause - #13 par Loic

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.