Homey Pro : Surveiller ses appareils avec HomeyScript : comprendre les « Capabilities »

Homey propose de puissants outils d’automatisation comme les Flows ou les Advanced Flows. Mais pour ceux qui veulent aller encore plus loin, HomeyScript ouvre un nouveau champ des possibles en permettant de contrôler, interroger et automatiser votre maison avec du code JavaScript.

Dans cet article, nous allons apprendre à :

  • Comprendre ce que sont les « Capabilities » dans Homey
  • Écrire un script HomeyScript qui surveille certains appareils et leurs états
  • Déclencher une alerte ou un log en fonction de leur disponibilité

📦 Les « Capabilities » dans Homey : c’est quoi ?

Chaque appareil connecté à Homey expose un ensemble de capabilités (Capacités en Français), c’est-à-dire les fonctions ou états qu’il peut gérer : allumer/éteindre, température mesurée, état de la batterie, contact ouvert/fermé, etc.

Par exemple :

  • Un capteur de température expose measure_temperature
  • Une ampoule connectée expose onoffdimlight_hue, etc.
  • Un capteur de contact peut exposer alarm_contact ou alarm_motion

Ces capabilities sont accessibles et modifiables via HomeyScript, ce qui permet une surveillance avancée, au-delà des Flows classiques.


🔧 Script : surveiller la disponibilité de certains appareils

Voici un exemple de HomeyScript qui vérifie si une liste d’appareils sélectionnés est disponible (available = true) ou non, et affiche une alerte dans le journal si ce n’est pas le cas.

🧑‍💻 Code HomeyScript :

// Liste des noms d'appareils à surveiller
const monitoredDevices = ["Capteur Température Salon", "Prise NAS", "Détecteur Entrée"];

const allDevices = await Homey.devices.getDevices();

for (const deviceId in allDevices) {
  const device = allDevices[deviceId];
  
  if (monitoredDevices.includes(device.name)) {
    const isAvailable = device.available;
    if (!isAvailable) {
      console.log(`⚠️ L'appareil "${device.name}" est injoignable.`);
    } else {
      console.log(`✅ L'appareil "${device.name}" est OK.`);
    }
  }
}

🧠 Explication :

  • Homey.devices.getDevices() récupère tous les appareils.
  • On filtre ceux que l’on souhaite surveiller (monitoredDevices).
  • On vérifie l’état available (true/false).
  • On écrit dans le log une alerte si l’appareil est injoignable.

🧩 Aller plus loin : surveiller une capability spécifique

Tu veux surveiller un état précis comme la température ou l’ouverture d’un contact ? Tu peux modifier le script pour accéder aux capabilities comme ceci :

const device = allDevices[deviceId];

if (device.capabilitiesObj && device.capabilitiesObj["alarm_contact"]) {
  const alarmContact = device.capabilitiesObj["alarm_contact"].value;
  if (alarmContact) {
    console.log(`🚪 Contact ouvert sur : ${device.name}`);
  }
}

Ici, on accède à la capability alarm_contact (typiquement pour des portes ou fenêtres) et on déclenche une alerte si le contact est ouvert.


🚀 Utilisations possibles

  • 🔔 Être averti si un appareil n’est plus joignable
  • 🌡️ Créer une alerte si la température dépasse un certain seuil
  • 🚪 Suivre l’état de toutes les ouvertures d’un bâtiment
  • 🔌 Vérifier que certaines prises critiques (NAS, congélateur…) sont sous tension

🧠 Conclusion

HomeyScript est un levier ultra-puissant pour ceux qui veulent pousser leur domotique à un niveau expert. En maîtrisant les Capabilities, tu peux créer des scripts qui surveillent, alertent, et réagissent en temps réel aux changements d’état de tes appareils.

Avec quelques lignes de code, tu gagnes en visibilité et en fiabilité sur ton installation domotique.

Bonne domotique

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.