Valeur de commande action par variable

Bonjour,

J’ai une question aux experts, voici le contexte :
Je pilote plusieurs splits clim via des émeteurs broadlink ca fonctionne mais comme vous devez le savoir, les trames infrarouge de clim comportent toutes les consignes (mode/température/ventillation/deflecteur…)
Exemple pour une commande Chaud/21/ventilation :

hex2send:26004c02723312251225120a110a12081326120912081326122512091225120a110a12251225120b112512251209120814251209120a12251209120a1209120a1209120a1207140a1209120a1209120a120a110a120a110a120a110a120a110b1125120a110a1208130a120a11261209120a1209120b100a12251225120a110a120a1209120a1209120a1209120a122512251209120a1209120a120a110a1209120a12251208130a1225120b100a1225120b1026110a120a110a120a110a120a110a1208130a120a110a120a110a120a100b120a110a120a1209120a110a120a110a120a1209120a1209120a1209120b1109120a12251209120a1208130a1209120a1209120a120b100a120b100a120a110b110a110b1125120b1026120a110b100a120a11261200016f723312251225120b110a110a1225120b100a12251225120a1126120a110813261225120912251225120a110a1225120a12091225120b1109120a1209120a120a110a1209120a1209120b1109120a1209120a120a110a120a110a12091225120a120a110a120a11081425120b100a120a110a120b102612251209120a110a120a110a120a110a120a100b12251225120b1109120a1209120a1209120a120a1125120a12091225120b11091225120b1125120a110a1209120a120a110a120a110a120a110a120a110a120a110a120a110a120a110a120a110a120a1209120b100a120a110a120a110b110a110a120a12091225120a1209120a1209120a1207140a1209120a110a120a1209120b1109120a120a1125120b1125120b100a120a110b112512000d05120b1026120a110b100a120a

L’idée est de décomposer les trames envoyées pour piloter tout ca mieux.
Pour ca je souhaite « générer » les trames et les envoyer dans une commande broadlink formatée via un script PHP, sauf que je ne sais pas comment envoyer la valeur dans la commande.
Consigner la trame dans une variable jeedom ne fonctionne pas :

La variable à la bonne valeur :

Dans un scénario, la commande est lancée mais la trame n’est pas interprétée :

Si certains on des idées, pistes, je les remercies par avance.

une commande action/défaut ne peut pas avoir de paramètre; j’ignore d’où vient cette capture mais c’est bizarre

si c’est un script php c’est bien plus simple d’insérer un bloc de code dans un scénario, lui récupère les variables sans problème. tu pourra y formater ta commande comme bon te semble et gérer le retour direct avec du log dans jeedom direct et accès à toutes les commandes.

moi je déclencherai le scénario et ensuite je récupère la variable via :

$myVar = $scenario->getData('maVariable');

Salut Mips,

Merci déja d’avoir répondu.

Ce n’est pas un paramétre, c’est une commande action d’un éméteur broadlink.
Normalement elles comportent des valeurs hexa telle que :

hex2send:26004c027233122512251309120a110a1225120b100a12251225120a1126110a120a12251225120a11251225120b100a1225120a110a1225120a110a120a110a120a1209120a110a120a1209120a110b1108140a110a110b110b100b110a110b110b100b100b120a100b120b0f27120a100b110a120a122512091126120b100a120a110a110b110a120a110a120b11251126120a100b1209120a110a120a110a120a1126120a100b1225120a110a1225120a10271209110b110a110b110a110b110a110b120a110a100b120a100b120a110a110b1209110b120a110a110a110b110a110b120a110a1209110b1209110b1209120a1225120a100b120b0f0b120a100b120b100a120a110a120a100b120b0f0b120a1108140a110a1126120b0f0b12251225120b10000170723312251225120b100a12091226120a100b12251225120a1026120b0f0b12251225120b10261225120a100b1225120a110a12251209110b120b100a120a100b120a100b120b100a120a100b120b0f0b110b110b100b110b100b110b110a100b120b0f0b120a100b1225110b100b120a100b1225120b10261209110b120a100b110a120a1209110b120911261225120b100a120a120a110a1209120a110b1125120b100b1126110a110b1126110a1225120a110a110b1209110b1209110b120a110a100b120b100a120a1108130b1209110b1209110b1209110b1209120a1209120a110a120b100a120a110b110a110a1225120b110a110a110b110a110b110a110b120a100b110a120a110a110b120a100b110a120a12251209110b12251225120a11000d05110a1126120b0f0b12251225

Mon but est de renvoyer ce type de commandes mais via une variable que j’aurai générée en php.

Neurall,

je ne veux pas définir une variable php à base de variable jeedom, je souhaire que ma commande jeedom interprete la valeur de variable (jeedom ou PHP ) comme de la donnée brute.

D’apres les tests que j’ai éfféctué, dans un scénario ou une commande info ca le fait mais pas dans une commande action …

Voici les commandes du broadlink ainsi que la commande que je souhaite utiliser :

J’ai beau renseigner variable(trameclim) avec une valeur hex2send: les commandes ne sont jamais envoyées.

J’ai déjà répondu, ca ne le sera pas; c’est une config fixe.
Vous ne pouvez pas mettre n’importe quoi, ca ne sera pas interprété.

Par ailleurs utiliser une variable là n’est pas le plus judicieux amha.

La solution bloc code pourrait fonctionner par contre mais vous l’avez écartée sans comprendre j’ai l’impression

Bonjour,

On connait pas le plugin, mais il est peut-être possible de faire une demande d’amélioration sur celui-ci ?
Ce genre de modif n’est pas très compliqué normalement.
Au pire tu peux sans doute modifier le code sur ton Jeedom.

Le plugin c’est broadlink, je peux effectivement regarder comment il envoi ses commandes pour les utiliser dans un bloc code…mais je ne voulais pas faire de reverse engineering juste savoir si ce que je voulais faire etait possible niveau core jeedom.

Merci beaucoup en tout cas

Si on reste niveau core jeedom, il te faudra recréer tout le code nécessaire (recup de la config, connexion socket…) dans un bloc code, pas impossible mais plus complexe.
Alors que modifier le code du plugin semble plus simple ( a ce que je voit, 1 ligne a modifier), et pourrait-être partagé avec les utilisateurs.

Heu avant de se lancer dans une usine à gaz, est ce que c’est pas plus simple d’avoir une commande action unique et de mettre à jour dynamiquement cette dernière via un bloc code ?

Au moins ça reste dans le standard du core et du plugin …

Bonsoir,

tout sa ressemble plus a une usine a gaz !


Qu’est-ce qui est pas standard ? C’est justement une évolution du plugin que je propose !

4 lignes de php dans le bloc code d’un scénario j’ai vu pire comme usine à gaz …

$cmd = cmd::byId(4020);
$valeurmaj = "hex2send:260058000001289214111213141114111114111314111214133611141337113814361436111413361238143613361238143613111511111413111411111414111411113814361436110005670001284911000c500001294811000d05";
$cmd->setConfiguration('logicalid',$valeurmaj);
$cmd->save();

Je maintiens juste que pour répondre au besoin énoncé au début il y a beaucoup plus simple que de faire évoluer le plugin c’est tout.

Ce que je veut dire c’est que c’est plus standard de gérer ceci direct dans le plugin avec une indication dans la doc, que de monter un bloc code. ça bénéficiera a plus d’user qu’un bloc code.

Dans le cas du bloc code, il manquerai par exemple l’utilisation d’une variable, d’une commande, et l’exécutions de la commande.

Sur le plugin dans broadlink.class.php Ligne 519 :

$values = explode(',', $this->getConfiguration('logicalid'));

en remplaçant par

$values = explode(',', jeedom::evaluateExpression($this->getConfiguration('logicalid')));

(J’ai pas testé, j’ai pas ce plugin)

Bonne soirée.

1 « J'aime »