Correction de l'inversion d'action sur les équipement utilisant le RangeController [PR soumise]

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 :

  1. La condition utilise la mauvaise clé de configuration (OpenClose::invertSet au lieu de RangeController::invertSet, qui est celle générée par la fonction getHtmlConfiguration).
  2. Le calcul d’inversion s’applique sur une variable $execution inexistante 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

2 « J'aime »

Bonjour,
Effectivement merci pour le retour je viens de faire la correction, ca sera disponible dans la beta de demain une fois validé je ferais une stable rapidement

Bonjour,

OpenClose::invertSet ou RangeController::invertSet ?

C’est RangeController j’ai corrigé a l’installation merci pour le retour.

1 « J'aime »