je cherche comment inhiber une action virtuelle dans un virtuel.
pour être plus précis, en fonction de l’état d’un virtuel sur un équipement, j’ai besoin d’inhiber une commande action virtuelle sur un autre équipement.
j’ai pour le moment trouvé une solution intermédiaire qui consiste à masquer ou non l’action virtuelle en utilisant la commande suivante via un bloc code du scénario :
Pour visible: cmd::byId(‹ IDduBouton ›)->setIsVisible(1)->save();
Pour Invisible: cmd::byId(‹ IDduBouton ›)->setIsVisible(0)->save();
pour rendre inactif l’action virtuelle, on peut vraisemblablement joué avec le paramètre display:none; en CSS.
savez-vous comment implémenter cette option dans un bloc scénario ?
c’est a dire ? est-ce que le fait que la commande ne soit plus afficher est pour toi un état inhiber ? ou faut-il aller plus loin, cad ne plus autoriser l’action sur la commande même si c’est un scénario qui en fait la demande ?
Dans ce cas je ne vois qu’un widget code, il faudrait que le bouton soit lié a ton info de l’autre virtuel.
tu peut faire voir a quoi ressemble actuellement ce fameux bouton ? sur quoi il agit ?
Bonjour,
Tu trouveras ci-dessous ce que je cherche à faire.
J’ai pour projet de rénover l’automatisation de mon arrosage.
Pour ce faire, j’utilise un arduino MEGA installé dans le garage et un raspberry pi (sur lequel est installé Jeedom) installé dans mon bureau.
Les équipements communiquent ensemble via le protocole MQTT.
Afin de gérer les différents mode de fonctionnement de mon arrosage (AUTO/ON et OFF), j’ai un premier équipement sur lequel je regroupe 2 actions virtuelles.
Une première, pour la gestion du mode de fonctionnement.
Et une 2ième action virtuelle « MAJ Arduino », pour la validation de l’envoi des informations « MAJ mode automatique » vers l’arduino.
C’est pour cette dernière action virtuelle que j’aimerai pouvoir la rendre inactive (inhibée) lorsque l’on n’est pas en mode AUTO.
Toujours pour cette dernière action virtuelle « MAJ Arduino », celle-ci est mise à jour en fonction des actions virtuelles d’un autre équipement.
L’idée est de transférer la mise à jour des données vers l’arduino MEGA uniquement sur action volontaire et lorsque le sélecteur de mode est sur AUTO.
Sur modification d’une des données de l’équipement « Gestion AUTO Pelouse Zone 4 », l’action virtuelle « MAJ Arduino » clignote en rouge lorsque le sélecteur de mode est sur AUTO. Les données sont transférées à l’arduino lorsque l’on clique sur l’action virtuelle « MAJ Arduino ».
Je modifierai le widget bouton MAJ Arduino comme ceci :
Si value == 0 → non cliquable / fixe gris. (pas en auto et pas de modif. sur Gestion Auto).
Si value == 1 → non cliquable / clignotant rouge.(pas en auto mais modif. effectué sur Gestion Auto).
Si value == 2 → cliquable / clignotant vert.(En auto et modif. effectué sur Gestion Auto).
Ensuite dans un scénario, gérer les états de ton virtuel Gestion Auto et Mode Pelouse, et en fonction des conditions créer un event sur l’état du bouton MAJ Arduino.
effectivement la personnalisation du widget associé au bouton « MAJ Arduino » est une solution séduisante.
mais pour le moment, mon niveau en programmation du widget ne me permet pas de le faire
je suppose que tu as déja un scénario qui s’occupe de lancer la Maj de l’arduino, il te restera juste a mettre en déclencheur : #[objet][Mode Pelouse Zone 4][Etat]# == 0
je teste ta solution dès que je rentre à la maison (en déplacement ce début de semaine) et te redis si j’ai réussi à la mettre en oeuvre.
les éléments proposés par @Phpvarious fonctionnent parfaitement, j’ai légèrement modifié le scénario pour que cela réponde pleinement à mon besoin
merci @Phpvarious