HomeyScript : 1er exemple pour bien débuter

HomeyScript est un outil puissant qui permet d’aller plus loin dans l’automatisation de votre maison connectée. Avec JavaScript, il permet de créer des scripts personnalisés pour gérer des scénarios complexes, dépassant les automatisations classiques de l’application Homey. Cela vous donne la liberté de créer des interactions spécifiques et d’offrir des réponses précises, offrant un contrôle plus personnalisé de votre environnement.

Attention, rien ne vous oblige à l’utiliser, Homey fonctionne parfaitement avec les Flows et les Advanced flows, c’est une option supplémentaire qui peut dans certains cas bien précis rendre des services.

La documentation de l’Api est ici : https://api.developer.homey.app

En intégrant HomeyScript, vous accédez directement à l’API de Homey, permettant une manipulation précise de vos appareils. Vous pouvez exploiter des fonctions logiques avancées et coordonner des actions complexes, offrant un niveau de personnalisation adapté aux utilisateurs exigeants cherchant une maison véritablement « intelligente ».

N’oubliez pas d’installer l’application HomeyScript sur votre Homey Pro : https://homey.app/fr-fr/app/com.athom.homeyscript/HomeyScript/

Voici un premier exemple :

Dans cet exemple, trois éclairage ne sont pas accessibles, ce sont les trois lignes en bas de page.

Néanmoins le script retourne un cade d’exécution OK

Récupérer Plusieurs Appareils

Vous pouvez récupérer plusieurs appareils en même temps et appliquer des actions sur chacun d’eux. Par exemple, pour allumer toutes les lumières d’une pièce :

// Ce script recherche tous les appareils ayant la capacité onoff et les allume.

let devices = await Homey.devices.getDevices();

for (let device of Object.values(devices)) {
  if (device.capabilities.includes('onoff')) {
    try {
      await device.setCapabilityValue('onoff', true);
    } catch (error) {
      console.error(`Erreur lors de la tentative d'allumer l'appareil ${device.name}:`, error.message);
    }
  }
}

Ce script recherche tous les appareils ayant la capacité onoff et les allume.

Explications :

Bien sûr ! Voici une explication pas à pas du script :

  1. Récupération des appareils disponibles :
   let devices = await Homey.devices.getDevices();
  • Cette ligne utilise Homey.devices.getDevices() pour obtenir la liste de tous les appareils connectés à Homey.
  • await est utilisé car la fonction est asynchrone. Il faut attendre que la liste des appareils soit récupérée avant de continuer.
  • La variable devices contiendra un objet contenant tous les appareils connectés, identifiés par leurs identifiants.
  1. Parcours de tous les appareils :
   for (let device of Object.values(devices)) {
  • Cette ligne utilise une boucle for...of pour parcourir tous les appareils.
  • Object.values(devices) permet de récupérer un tableau contenant tous les objets appareils, à partir de l’objet initial qui les identifie par clé.
  • device est une variable qui représente chaque appareil lors de l’itération.
  1. Vérification de la capacité onoff :
   if (device.capabilities.includes('onoff')) {
  • Ici, on vérifie si l’appareil courant (device) possède la capacité onoff.
  • La capacité onoff est généralement associée à des appareils qui peuvent être allumés ou éteints, comme des lumières ou des prises intelligentes.
  • Si l’appareil possède cette capacité, le bloc de code à l’intérieur sera exécuté.
  1. Allumage de l’appareil :
   try {
     await device.setCapabilityValue('onoff', true);
  • try commence un bloc de code qui permet de gérer les erreurs en cas de problème lors de l’exécution.
  • device.setCapabilityValue('onoff', true) est appelé pour allumer l’appareil (en réglant la valeur de la capacité onoff à true).
  • await est utilisé car cette opération est asynchrone — cela signifie qu’il faut attendre que la commande d’allumage soit envoyée à l’appareil avant de continuer.
  1. Gestion des erreurs :
   } catch (error) {
     console.error(`Erreur lors de la tentative d'allumer l'appareil ${device.name}:`, error.message);
   }
  • Si une erreur survient lors de l’allumage de l’appareil, le bloc catch sera exécuté.
  • console.error est utilisé pour afficher un message d’erreur dans la console.
  • Le message indique le nom de l’appareil qui a causé l’erreur (device.name) et le message d’erreur (error.message) pour aider à identifier le problème.

Résumé :

  • Le script récupère tous les appareils connectés à Homey.
  • Ensuite, il parcourt chaque appareil pour vérifier s’il possède la capacité onoff.
  • Pour chaque appareil ayant cette capacité, il essaie de l’allumer.
  • Si une erreur se produit lors de cette tentative, un message d’erreur est affiché dans la console pour informer de l’échec et de son origine.

Ce script est utile pour automatiser l’allumage de tous les appareils qui peuvent être mis sous tension, tout en gérant les erreurs afin de ne pas interrompre le processus pour les autres appareils en cas de problème.

Bon scripting

HDR


En savoir plus sur Les miscellanées Numériques

Abonnez-vous pour recevoir les derniers articles par e-mail.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.