Bonjour @Loic ,
Je me permets de faire remonter un petit bug concernant les équipements de type Volet/Store qui utilisent l’interface Alexa.RangeController. Actuellement, la case « Inverser l’action » présente dans la configuration avancée n’est pas prise en compte par Alexa lors d’une commande vocale (ce qui est particulièrement bloquant pour les commandes de type Velux où 100% = fermé).
En analysant le fichier ash_RangeController.class.php, j’ai repéré deux coquilles dans la méthode exec() lors du traitement de la directive SetRangeValue :
- La condition utilise la mauvaise clé de configuration (
OpenClose::invertSetau lieu deRangeController::invertSet, qui est celle générée par la fonctiongetHtmlConfiguration). - Le calcul d’inversion s’applique sur une variable
$executioninexistante dans cette méthode, au lieu de modifier$_directive.
Pour vous faire gagner du temps, j’ai directement soumis une PR sur le repo GitHub avec la correction ciblée.
Voici la modification en question (lignes 162 à 168) :
Ancien code :
if($_device->getOptions('OpenClose::invertSet',0) == 1){
$execution['payload']['rangeValue'] = 100 - $execution['payload']['rangeValue'];
}
Nouveau code :
if($_device-getOptions('RangeController::invertSet',0) == 1){
$_directive['payload']['rangeValue'] = 100 - $_directive['payload']['rangeValue'];
}
Merci d’avance pour l’intégration de la PR et merci pour le travail sur le plugin !
Bonne soirée