Modification dynamique des valeurs des paramètres optionnels des widgets

Bonjour,

Est-il possible de choisir comme valeur d’un paramètre optionnel, une commande info ?
Par exemple ici pour le seuilMaxi.

Salut @Jeandhom,

C’est le widget de clignotement que j’ai écris sur l’autre post ?! Du coup ce n’est pas un widget-core :wink:

Pour pouvoir prendre en compte la valeur d’une commande par son #id# il faudrait revoir le code. le tag attend un chiffre en valeur et rien d’autre.

Oui, effectivement, c’est bien ton widget de clignotement.

J’ai changé le tag et le titre du sujet.

Ah, ok.

Plutôt que de revoir ton code, il vaudrait mieux que ce soit le core de Jeedom qui transmette la valeur de la commande info à ton code.

@Loic, as-tu un avis là dessus ?

Pas trop d’avis tous ce que je peux dire c’est que plus on mets de plugin dans le core plus ça nous prend du temps (et c’est pas négligeable la en v4 les widget ça a dû nous prendre un bon mois) et donc on en a moins pour les les autres demandes. A voir les priorités si c’est avoir plus de widgets ou plus de matériels compatible et de fonctionnalités

Si on ne peut pas mettre ni des variables, ni des commandes infos mais juste des valeurs finies cela va réduire l’intérêt de ces paramètres optionnels.
Si cela doit être géré au niveau du code du widget, cela va alourdir l’ensemble des widgets prenant en charge ces paramètres.
C’est pour ça que je demandais ton avis pour la faisabilité de la prise en charge au niveau du core.
La mise en place ne fait pas partie de mon propos, Paris ne s’est pas fait en un jour.

A ok j’avais cru l’integration de nouveau widget pardon. La la réponse est simple : non je ne vais pas gerer la valeur de commande ou de variable dans les options du widgets

Merci, réponse claire et précise.

Salut.

C’est possible de récupérer des valeurs de type info via le widget. je le teste actuellement pour l’anémomètre netatmo avec la vitesse du vent et l’orientation.

anemomettre

Il faut passer l’id de la commande en paramètre optionnel et ensuite récupérer l’info via la fonction jeedom.cmd.execute

1 « J'aime »

Oui mais lors d’une update de la commande ça sera pas mis en temps réel a jour sur le dashboard. Pour ton cas il faut que tu te bases sur le widget hygro du core

Si si ca fonctionne c’est un peu plus compliqué que ça mais ça roule

1 « J'aime »

Peux-tu glisser ici le bout de code en question ?

Je l’implémente actuellement pour le plugin tools mais avec possibilité de le faire avec plusieurs commandes.

Pour exemple tu crées un widget code pour une commande binaire en copiant-collant ce code (c’est du brut sans css )


<div class="cmd cmd-widget cursor #history#" data-type="info" data-subtype="binary" data-template="tmplicon" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#">
  <div class="title #hide_name#">
    <div class="cmdName">#name_display#</div>
  </div>
  <div class="content-sm">
    <span class="iconCmd"></span>
     <span class="temperature"></span>
  </div>
  <div class="value">
    <span class="timeCmd label label-default #history#" data-type="info"></span>
  </div>
  <script>
    jeedom.cmd.update['#id#'] =function(_options){
      var cmd = $('.cmd[data-cmd_id=#id#]');
      cmd.find('.iconCmd').empty().append(_options.display_value);
    	jeedom.cmd.byId({
			id: '#id#',
			error: function (error) {
				$('#div_alert').showAlert({message: error.message, level: 'danger'});
			},
			success: function (data) {             
               jeedom.cmd.execute({
                  id: data.display.parameters['temperature'],
                  error: function (error) {
                      $('#div_alert').showAlert({message: error.message, level: 'danger'});
                  },
                  success: function (dataCmd) {
                    	cmd.find('.temperature').empty().append(dataCmd);					
                  }
                });
			}		
		});
    };
    jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
  </script>
</div>

tu ajoutes le paramètre optionnel nom => « temperature », value => l’id de la commande dont tu souhaites récupérer la valeur.

Dans cet exemple tu assignes le widget à une commande état et tu auras la valeur que tu souhaites à côté de ta commande état.

1 « J'aime »

Merci pour l’exemple.
Je vais l’appliquer avec le widget clignotant de @Salvialf.

La limite de ce script est que le widget ne se mettra à jour que lorsque la commande assignée se mettra à jour. Pour le cas de l’anémomètre je le sais donc je m’organise en conséquence puisque je sais quelle commande se met à jour en premier donc j’assigne la commande qui se met à jour ne dernier.

Difficilement applicable sur un ensemble de commandes hormis si tu rajoutes du code pour déterminer ta commande originelle.

1 « J'aime »

Dans mon cas, il n’y aurait qu’une seule commande « seuilMaxi ».
Affaire à suivre.
Encore merci.

Donc pour ton usage ça devrait jouer

Suite à la remarque de @Jeandhom sur le post ci-dessous, je remonte l’info :

Cette fonctionnalité est désormais possible avec mon scénario de modification dynamique de paramètres disponible ici :

1 « J'aime »

Salut,
ZygOm4t1k Je cherche un widget exactement comme celui csur la photo pour mon anémomètre Netatmo.
Peux tu le partager?
Merci

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