Skip to content

Fix : Inversion des actions (Set) inopérante sur les RangeController …#63

Open
ripleyXLR8 wants to merge 1 commit intojeedom:betafrom
ripleyXLR8:patch-1
Open

Fix : Inversion des actions (Set) inopérante sur les RangeController …#63
ripleyXLR8 wants to merge 1 commit intojeedom:betafrom
ripleyXLR8:patch-1

Conversation

@ripleyXLR8
Copy link

Bonjour,

Cette PR corrige un bug empêchant l'inversion d'action de fonctionner correctement pour les équipements de type volets/stores utilisant l'interface Alexa.RangeController.

Problème rencontré :
Lorsqu'un utilisateur cochait la case "Inverser l'action" dans la configuration avancée du plugin Ash pour un volet, l'inversion de la valeur envoyée par Alexa n'était pas appliquée, ce qui entraînait un comportement inversé (les commandes vocales "Ouvre" et "Ferme" s'exécutaient à l'envers).

Analyse :
Dans la méthode exec() de la classe ash_RangeController, lors de la réception d'une directive SetRangeValue :

  1. Le code vérifiait l'option avec la mauvaise clé : OpenClose::invertSet au lieu de RangeController::invertSet (qui est celle définie dans le frontend via getHtmlConfiguration).
  2. Le calcul d'inversion était appliqué à une variable $execution inexistante dans le scope de la fonction, au lieu de modifier directement le payload de la directive $_directive.

Testé et validé sur une installation locale avec des volets Velux.

Merci pour le travail sur ce plugin !

Correction apportée :
Modification des lignes 162 à 168 pour cibler la bonne option de configuration et appliquer le calcul sur la bonne variable :

			if($_device->getOptions('RangeController::invertSet',0) == 1){
				$_directive['payload']['rangeValue'] = 100 - $_directive['payload']['rangeValue'];
			}

…(Volets)

Bonjour,

Cette PR corrige un bug empêchant l'inversion d'action de fonctionner correctement pour les équipements de type volets/stores utilisant l'interface `Alexa.RangeController`.

**Problème rencontré :**
Lorsqu'un utilisateur cochait la case "Inverser l'action" dans la configuration avancée du plugin Ash pour un volet, l'inversion de la valeur envoyée par Alexa n'était pas appliquée, ce qui entraînait un comportement inversé (les commandes vocales "Ouvre" et "Ferme" s'exécutaient à l'envers).

**Analyse :**
Dans la méthode `exec()` de la classe `ash_RangeController`, lors de la réception d'une directive `SetRangeValue` :
1. Le code vérifiait l'option avec la mauvaise clé : `OpenClose::invertSet` au lieu de `RangeController::invertSet` (qui est celle définie dans le frontend via `getHtmlConfiguration`).
2. Le calcul d'inversion était appliqué à une variable `$execution` inexistante dans le scope de la fonction, au lieu de modifier directement le payload de la directive `$_directive`.

**Correction apportée :**
Modification des lignes 162 à 168 pour cibler la bonne option de configuration et appliquer le calcul sur la bonne variable :
```php
			if($_device->getOptions('RangeController::invertSet',0) == 1){
				$_directive['payload']['rangeValue'] = 100 - $_directive['payload']['rangeValue'];
			}

Testé et validé sur une installation locale avec des volets Velux.

Merci pour le travail sur ce plugin !
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant