Skip to content

Feat: Ajout du support natif pour les portes de garage (GarageDoorController)#65

Open
ripleyXLR8 wants to merge 2 commits into
jeedom:betafrom
ripleyXLR8:garage_door_implementation
Open

Feat: Ajout du support natif pour les portes de garage (GarageDoorController)#65
ripleyXLR8 wants to merge 2 commits into
jeedom:betafrom
ripleyXLR8:garage_door_implementation

Conversation

@ripleyXLR8
Copy link
Copy Markdown

@ripleyXLR8 ripleyXLR8 commented Apr 15, 2026

Description
Objectif de la PR :
Ajouter le support natif des actions vocales (Ouverture / Fermeture) pour les équipements de la catégorie GARAGE_DOOR via Amazon Alexa.

Problème résolu :
Actuellement, la catégorie GARAGE_DOOR dans le plugin ASH ne supporte que la compétence ContactSensor (remontée d'état ouvert/fermé). Il est donc impossible pour un utilisateur d'ouvrir ou de fermer sa porte de garage à la voix nativement. Pour contourner cette limitation, les utilisateurs sont obligés de tricher en déclarant leur porte de garage comme un volet (EXTERIOR_BLIND).

Détail des changements et choix techniques :
Pour rester strictement conforme à la documentation de l'API Amazon Smart Home Skill, cette PR implémente le contrôle de la porte de garage via l'interface Alexa.ModeController (Instance : GarageDoor.Position).

Création de ash_GarageDoorController.class.php :

Ajout des sémantiques Position.Up (pour ouvrir) et Position.Down (pour fermer).

Mapping des actions vocales Alexa (Alexa.Actions.Open, Alexa.Actions.Close, Alexa.Actions.Raise, Alexa.Actions.Lower) vers les commandes Jeedom.

Types génériques supportés pour l'action : GB_OPEN, GARAGE_OPEN, GB_CLOSE, GARAGE_CLOSE.

Types génériques supportés pour l'état : GARAGE_STATE, BARRIER_STATE.

L'interface n'est générée que si le plugin détecte à la fois une commande d'ouverture et une commande de fermeture, évitant ainsi la création d'un contrôleur inopérant si l'utilisateur n'a qu'un capteur d'état.

Prise en charge native de l'option invertBinary sur le retour d'état.

Modification de ash.class.php :

Inclusion de la nouvelle classe ash_GarageDoorController.class.php.

Ajout de GarageDoorController dans le tableau des skills supportés par GARAGE_DOOR.

Types of changes

  • Bug fix (non-breaking change which fixes)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • This change is only breaking for integrators, not for external standards or end-users.
  • Documentation improvement

PR checklist

  • I have checked there is no other PR open for the same change.
  • I have read the Contribution Guidelines.
  • I grant the project the right to include and distribute the code under the GNU.
  • I have added tests to cover my changes.
  • I have verified that the code complies with the projects coding standards.
  • [Required for new sniffs] I have added MD documentation for the sniff.

Implémentation de la classe ash_GarageDoorController pour permettre le contrôle vocal (ouverture et fermeture) des portes de garage (GARAGE_DOOR) via Alexa.

Historiquement, la catégorie GARAGE_DOOR ne remontait qu'une interface ContactSensor (état ouvert/fermé), empêchant toute action vocale sans contournement (comme l'utilisation du type Volet).

Cette nouvelle classe respecte les spécifications de l'API Amazon Alexa pour les portes de garage en implémentant l'interface Alexa.ModeController (instance GarageDoor.Position) avec les sémantiques d'action Position.Up (Ouverture) et Position.Down (Fermeture).

Détails techniques :

Types génériques d'ouverture supportés : GB_OPEN, GARAGE_OPEN

Types génériques de fermeture supportés : GB_CLOSE, GARAGE_CLOSE

Types génériques d'état supportés : GARAGE_STATE, BARRIER_STATE

L'interface de contrôle n'est ajoutée que si les deux commandes d'action (ouverture/fermeture) sont détectées.

Prise en charge native de l'inversion binaire (invertBinary) sur la commande d'état.
…es de garage

Mise à jour de la classe principale ash pour intégrer la nouvelle gestion des portes de garage.

Modifications apportées :

Inclusion du nouveau fichier de classe ash_GarageDoorController.class.php.

Mise à jour du tableau getSupportedType() : la catégorie GARAGE_DOOR implémente désormais la compétence GarageDoorController en complément du ContactSensor préexistant.

Cette modification fait le lien indispensable pour que le plugin génère l'interface Alexa.ModeController (Position.Up/Down) lors de la transmission d'un équipement de type porte de garage à Amazon Alexa.
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