Les commandes Binaires ne se mettent plus à jour

Bonjour à tous

depuis plusieurs semaines, MAJ Jeedom ?, j’ai un virtuel qui ne se met pas à jour, c’est peut être le cas d’autre mais celui est très important, il gère l’était de la maison (alarme, prises, …)

et quand le matin, la grille pain ne s’allume pas, c’est qu’il y a un soucis

et c’est encore le cas ce matin : le virtuel n’a aucun actionneur d’actif alors que si aucun actionneur n’a les conditions pour etre ON alors c’est l’actionneur PRESENT qui doit être ON

image

si je fais le test du contenu de la commande PRESENT, il me dit bien que les conditions sont TRUE

alors que le TEST de la commande me remonte 0

image

si je force un refresh de la vignette sur le Dashboard, l’actionneur PRESENT s’active

J’ai recréé la commande de cette action pour que son ID soit supérieure au autre, mais ce n’est pas mieux.

Je pourrais mettre un refresh forcé sur la vignette, mais c’est pas top

Une idée sur ce problème ?

je suis en dernière version stable de tout, pas de log particulier, il faut peut être que je passe le plugin VIRTUEL en debug ?

Bonjour,

De has j’utilise, les virtuels pour une application similaire (jours de la semaine, réveil…) et le même « toggle »
Je constate le même comportement au niveau de l’affichage, lorsque 1/ je ne laisse pas le browser terminer le chargement de la page ou 2/ cause non connue rarissime. Dans ce dernier cas. Si je remets les Switch en position, je constate qu’il faut le faire 1 par 1,lentement (à l’écran tous les toggle font un mouvement pour valider), puis cela fonctionne.
Il me semble avoir redémarré une fois et cela remet la dernière position.
J’espère que cela t’aide

Bonjour

ce ne sont pas des toggles automatique, des commandes info binary, qui se mettent à jour suivant des conditions, je ne peux pas les activer/désactiver à la mano

en attendant j’ai ajouté une nouvelle commande qui passe à 1 quand aucun actionneur est actif et lancer un rafraichir de la vignette mais ca saoule de mettre ce type de sparadra en place.

Salut @Nemeraud,
As-tu essayé de faire la même manip en utilisant une variable plutôt qu’un virtuel histoire de voir si le comportement était identique?
Peut-être un problème avec le plugin.

Bonjour @mich0111

non, sur les conseils de Loic j’ai viré au maximum les variables

je vais tester avec un actionneur

Ensuite, la gravite du problème dépend si c’est toi qui le découvre en premier ou les autres :slightly_smiling_face:

:+1:

Je pense qu’il y un autre piège similaire lorsqu’on reboucle plusieurs equipements entre eux.
Si la Commande_2 du Virtuel_A modifie Commande_3 du Virtuel_B qui modifie Commande_1 du Virtuel_A, alors cette dernière n’est pas forcément mise à jour.

@Nemeraud Je te conseille de bien vérifier qui actionne quoi et dans quel ordre. Il me semble que tu l’avais fait au niveau d’un Virtuel, je pense qu’il faudrait le faire avec les équipements entre eux, je ne sais pas s’il l’ordre de création d’un équipement a un impact lorsqu’il y a une boucle entre plusieurs équipements.

Exemple "tordu"avec ma VMC où j’ai 4 Virtuels comme ceci pour avoir une représentation « plus physique »

  • Le Virtuel principal [Comble][VMC] a les 3 boutons Grande Vitesse / Petite Vitesse / Arret (les 2 premiers sont cachés).
  • Le Virtuel secondaire [Cuisine][VMC] a 2 boutons Grande Vitesse / Petite Vitesse qui actionnent les 2 boutons cachés Grande Vitesse / Petite Vitesse de [Comble][VMC] car le boutons physique est situé dans la cuisine.
  • Le Virtuel principal [Comble][VMC] actionne un module Z-Wave dont le retour d’état change la valeur de la vitesse 1,2 ou 0 (valeur calcules à partir de 2 états binaires).
  • Les 3 Virtuels secondaires [Cuisine][VMC], [Salle de bain][VMC] et [WC][VMC] récupèrent l’info de la vitesse depuis Virtuel principal [Comble][VMC] pour calculer le débit de chaque pièce.
  • Enfin Virtuel principal [Comble][VMC] récupère l’information du débit dans les 3 pièces pour calculer le débit total.

Résumé : Virtuel_B/Commande1 (Action) → Virtuel_A/Commande1 (Action) → Z-Wave/Commande2 (Action) → Z-Wave/Commande1 (Info Retour Etat) → Virtuel_A/Commande2 (Info) → Virtuel_B/Commande2 (Info) → Virtuel_B/Commande3 (Info) → Virtuel_A/Commande3 (Info)

Et bien ça, c’est la m.rd. si ID des commandes ne sont pas dans le bon ordre, les valeurs des vitesses et des débits ne se mettaient pas à jour correctement, j’ai mis du temps à obtenir le fonctionnement voulu. Mais ce n’est pas à faire !

Et à refaire, je ne recommencerai pas. Je ferais un Virtuel A avec tous les boutons actions, un module Z-Wave B, un Virtuel C qui récupère la vitesse, un Virtuel D qui calcule les débits de chaque pièce en fonction de la vitesse et un Virtuel E qui fait la somme des débits. Enfin, je créerais 4 Virtuels F, G, H et I ou directement 1 seul qui reprendraient toutes les infos/action voulues des Virtuels A, C, D et E. Là, il n’y aurait pas de problème de mise à jour. Tout ça pour l’affichage de la VMC !

1 « J'aime »

Pour comprendre, as-tu également un cron d’auto-actualisation configuré?

Si pas, fais le avant ceci:

Petit HS.
Pour quelle raison l’usage des variables est à proscrire?

C’est quoi un cron auto actualisation ? Le paramètre de mise à jour de l’étiquette du virtuel ? Si oui c’est ce que je mettais dans mon message, je ne trouve pas ça terrible de forcer le refresh du virtuel toute les 5 mn alors qu’il devrait le faire tout seul lors de la mise à jour des commandes utilisé dans la commande

Je sais plus trop, faudrait que je retrouve le message, mais c’est une histoire de lecture ou d’écriture qui est plus optimisé avec une commande qu’avec une variable, c’est là qu’il m’avait indiqué la fonction ‹ event › qui permet de mettre à jour simplement une commande info dans un scénario

C’est quand même écrit en toutes lettres exactement comme je l’ai écrit:
image

et ce n’est pas du tout ce que tu as écrit:

@mich0111

écriture et lecture systématique en DB alors qu’une commande est en mémoire.

1 « J'aime »

Oui on parle bien de la même chose, je me souvenais plus de l’appellation de cette zone

je l’évoquait dans mon post initial :

et la pastille que j’ai faite c’est justement pour éviter de faire un refresh régulier

dans l’actionneur PRESENT, il ne test que des commandes de son propre virtuel.

c’est pour cela que j’ai recréé la commande pour avoir un ID supérieur aux autres commandes qu’il utilise dans le Virtuel car il y a un fonctionnement de jeedom, je dirais un bug ;-), qui fait que suivant l’ordre des commandes dans le virtuel la prise en compte du changement ne se répercute pas forcement, mais je vois que tu as eu aussi le même soucis :slight_smile:

mais là, j’ai eu le problème malgré ca…

avec ma pastille ca devrait le faire, j’ai mis une alerte pour voir si cela se reproduit, mais normalement Madame ne devrait plus raler sur jeedom, et sur moi, si elle ne peut pas faire griller son pain…

1 « J'aime »

Non, ce n’est pas un bug malheureusement, il faut bien que Jeedom évite de se retrouver avec des boucles dans les calculs. Donc, il exécute les commandes du Virtuel une fois, mais on ne maîtrise pas forcément l’ordre.

Est-ce que tu peux découper tes calculs en plusieurs Virtuels (2 ou 3) afin que les commandes d’un Virtuel ne teste aucune commande de son propre Virtuel mais toujours celles d’un Virtuel précédent ? Virtuel_A/Commande_1 → Virtuel_B/Commande_2 → VirtuelC/Commande_3

Si ton calcul est vraiment bouclé, l’alternative peut être aussi de passer par des scénarios pour gérer une boucle genre :

  • Modification de la consigne sur la chaudière → Modification de la consigne sur tous les radiateurs
  • Modification de consigne sur un des radiateurs → Modification si besoin de la consigne sur la chaudière avec la consigne max des radiateurs sans re-modifier la consigne de tous les radiateurs avec cette consigne max (si j’étais prof de domotique, je donnerais cet exo :thinking:)

Oui, comme je fais de l’optimisation assez poussée pour n’avoir rien à faire au niveau de l’interface, je me prend poteau après poteau ! :face_with_head_bandage:

En cherchant un peu, il y a souvent moyen de ne pas utiliser le cron de répétition.

on va pas relancer le débat mais a partir du moment ou un logiciel permet de faire une action, il fait le taf jusqu’au bout et gérer les éventuelles boucles. C’est pas à l’utilisateur de gérer l’ordre des commandes, mais ca reste une vision personnel de l’informatique, je dis pas que c’est simple à faire :slight_smile:

ca me semble pas pratique de découper en plusieurs virtuel pour cet usage là

Pour le moment, cela ne s’est pas reproduit, je me suis pas fait engueuler depuis et l’alerte ne s’active pas, un cas particulier que je n’ai pas identifié à suivre donc :slight_smile:

merci en tous les cas pour vos réponses

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