commande & scenario

Bonjour, je cherche comment utiliser une commande action depuis un scenario.
Concrètement, mon plugin permet de modifier la temperature de consigne depuis le widget, comment faire la même chose depuis un scenario ?

Bonjour,
Normalement tu n’as rien a faire c’est automatique.

Bonjour Loic.

Je ne comprends pas comment passer le valeur a la commande.
Ex: je veux passer 18 a la commande #[piece a vivre][Chauffage][Modifier la temp. de consigne]#

Je comprends pas la demande…

Bonjour Loic.

Pour expliquer :
Sur le widget de mon plugin j’ai une commande qui permet de modifier la temperature de consigne.
Cela se fait en appelant la fonction execute de la class du plugin, la valeur est récupérée dans ‹ $_options ›

Un utilisateur me demande comment procéder pour appeler cette commande dans un scenario.
Ex: si la temperature est de 20 alors modifier la temperature de consigne à 18

Je ne sais pas lui répondre.

Bonjour,

Je débute également dans les plugins donc je ne sais pas si je suis la meilleure personne pour expliquer comment faire mais bon j’essaye quand même…

Si tu définis ton action avec un subtype message alors le titre et le message apparaissent automatiquement dans le scénario.
De plus, (je viens de découvrir) si tu utilises message_placeholder ou title_placeholder, le texte est affiché à la place de titre/message.

Je donne un exemple à partir de mon plugin fullyKiosK.
Voici une action pour changer le volume sur une tablette qui utilise l’appli fullyKiosK.

Dans cette action on doit préciser quel type de volume on veut changer (stream : sonnerie média…) et le niveau du volume sonore (level). Ce sont les $params de l’action

   		'setAudioVolume' => array(
   			'name' => __('Changer volume tablette',__FILE__),
   			'cmd' => "setAudioVolume&level=#message#&stream=#title#",
   			'subtype' => 'message',
   			'message_placeholder' => __('Volume 0-100',__FILE__),
   			'title_placeholder' => __('stream 0-10',__FILE__),
   			'title_possibility_list' => array(
   			 '0 Volume voix appel', 
   		         '1 Système',
   		         '2 Sonnerie',
   			 '3 Média',
   			 '4 Alarme',
   			 '5 Notification',
   			 '8 DMTF',
   			 '10 Accessibilité',	

                               'title_disable' => false, //si tu veux désactiver  l'activationtu peux true

Voici la partie création de l’action sur l’équipement en fonction des paramètres que j’ai précisés ($params).
Il y a également d’autres possibilités que je n’ai pas mis dans cette action en particulier.

				$fullyKiosKCmd = new fullyKiosKCmd();
				$fullyKiosKCmd->setLogicalId($cmdLogicalId);
				$fullyKiosKCmd->setEqLogic_id($this->getId());
				$fullyKiosKCmd->setName(__($params['name'], __FILE__));
				$fullyKiosKCmd->setType($params['type'] ?: 'action');
				$fullyKiosKCmd->setSubType($params['subtype'] ?: 'other');
				$fullyKiosKCmd->setIsVisible($params['isvisible'] ?: true);
				$fullyKiosKCmd->setConfiguration('cmd', $params['cmd'] ?: null);
				$fullyKiosKCmd->setConfiguration('listValue', json_encode($params['listValue']) ?: null);
				$fullyKiosKCmd->setDisplay('forceReturnLineBefore', $params['forceReturnLineBefore'] ?: false);
	                        $fullyKiosKCmd->setDisplay('message_disable', $params['message_disable'] ?: false);
	                        $fullyKiosKCmd->setDisplay('title_disable', $params['title_disable'] ?: false);
				$fullyKiosKCmd->setDisplay('title_placeholder', $params['title_placeholder'] ?: false);
				$fullyKiosKCmd->setDisplay('icon', $params['icon'] ?: false);				
			        $fullyKiosKCmd->setDisplay('message_placeholder', $params['message_placeholder'] ?: false);
				$fullyKiosKCmd->setDisplay('title_possibility_list', json_encode($params['title_possibility_list'] ?: null));//json_encode(array("1","2"));
				$fullyKiosKCmd->setDisplay('icon', $params['icon'] ?: null);
				if(isset($params['tpldesktop']))
					$fullyKiosKCmd->setTemplate('dashboard',$params['tpldesktop']);
				if(isset($params['tplmobile']))
					$fullyKiosKCmd->setTemplate('mobile',$params['tplmobile']);
				$fullyKiosKCmd->setOrder($order++);
				if(isset($params['linkedInfo']))
					$fullyKiosKCmd->setValue($this->getCmd('info', $params['linkedInfo']));
				$fullyKiosKCmd->save();

ce qui nous intéresse c’est le paramètre subtype = message mais tu as aussi d’autres ‹ subtype › qui pourraient te convenir.
donc si je mets subtype = message et que je mets un message_placeholder, dans un scénario, il m’ajoute automatiquement une case à remplir avec comme description le message_placeholder.

Ensuite le template widget tu peux générer le code html automatiquement dans la fonction toHtml.
Par exemple dans le template du widget j’ai une « balise » #cmd# que je remplace par le code html généré:

$cmd_html .= $cmd->toHtml($_version, '', $replace['#cmd-background-color#']);
$replace['#cmd#'] = $cmd_html;

Je ne sais pas si tout ce que j’ai décrit est clair mais après il faut un peu fouiller pour trouver des exemples et chercher dans la doc/le core.

Pour l’exécution de la commande tu peux ensuite utiliser $_options[‹ title ›] ou $_options[‹ message ›]

Merci pour ta réponse Ssc, ca me fait avancer, par contre connais-tu les differences en tes subtype ?

je pense qu’il y a message, slider (curseur), listvalue (liste de valeur) et color (choix d’une couleur)

Je n’ai pas utilisé ces types dans mes plugins donc je ne peux pas en dire plus sur l’utilisation dans le code mais j’imagine que c’est la même chose que pour le subtype ‹ message ›.
Sauf qu’à la création de la commande il faut préciser l’interval max pour le curseur et une liste de valeurs dans listvalue (je ne suis pas sûr du nom)
Si tu veux voir à quoi ca ressemble tu peux créer des scripts avec des actions en utilisant le plugin script.

Bonsoir.

Merci pour ton aide Ssc, it’s working.

Bonjour, voici le problème que je rencontre, le widget de mon plugin ne s’affiche pas en mode vue et design (uniquement sur le dashboard).
Je n’arrive pas a régler ce problème, si vous avez une idée je suis preneur.