Surveillez vos appareils Homey avec un script automatique

Voici un exemple de HomeyScript, il me permet d’obtenir le matin la liste des accessoires qui sont actifs ou déconnectés. Je lance son exécution le matin ce qui me permet d’anticiper et corriger un problème sur un appareil.

J’ai pour ce faire créer un Advanced Flow, relativement simple, qui lance l’exécution à 6:00.

Ce flux avancé dans Homey est conçu pour vérifier les appareils en panne à une heure spécifique et générer des notifications en fonction des résultats.

Voici une analyse de chaque étape :

  1. Déclencheur (Date & Heure – 06:00) : Le flux démarre chaque jour à 6 heures du matin.
  2. HomeyScript (Cherche les appareils KO) : Ce script Homey utilise l’API de Homey pour récupérer la liste des appareils en panne. Le script retourne une balise de texte avec le statut des appareils.
  3. Conditions de résultat :
    • Notification de réussite : Si le script retourne une liste des appareils KO avec succès, le flux continue vers une action de journal qui crée une notification avec le statut Info. Cela signifie qu’un résultat a été trouvé et enregistré.
    • Notification d’erreur : Si le script rencontre une erreur ou qu’il n’y a aucun appareil KO, le flux bascule vers une autre action de journal qui crée une notification avec le statut Erreur. Cela indique un problème avec le script ou aucun appareil KO trouvé.

Le script :

Ce script en JavaScript pour Homey a pour objectif de vérifier l’état des appareils connectés et de retourner une liste des appareils qui ne répondent pas, ou un message confirmant que tous les appareils fonctionnent correctement.

const devices = await Homey.devices.getDevices();
let nonResponsiveDevices = [];

// Parcourir chaque appareil
for (let deviceId in devices) {
  let device = devices[deviceId];

  // Vérifier si l'appareil est injoignable
  if (!device.available) {
    nonResponsiveDevices.push(device);
  }
}

// Afficher les appareils qui ne répondent pas ou un message de confirmation
if (nonResponsiveDevices.length > 0) {
  let deviceList = 'Appareils qui ne répondent pas :\n';
  nonResponsiveDevices.forEach(device => {
    deviceList += - ${device.name} (Zone : ${device.zoneName})\n;
  });
  return deviceList;
} else {
  return 'Tous les appareils répondent correctement.';
}

Analyse détaillée :

  1. Récupération des appareils :

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

Cette ligne utilise l’API de Homey pour récupérer tous les appareils enregistrés dans le système et les stocke dans l’objet devices.

  1. Initialisation de la liste des appareils injoignables :
   let nonResponsiveDevices = [];

Une liste vide, nonResponsiveDevices, est créée pour stocker les appareils qui sont injoignables.

  1. Parcours des appareils :
   for (let deviceId in devices) {
     let device = devices[deviceId];

Une boucle for parcourt chaque appareil dans devices, en identifiant chaque appareil via son deviceId et en accédant à ses informations avec devices[deviceId].

  1. Vérification de la disponibilité de chaque appareil :
   if (!device.available) {
     nonResponsiveDevices.push(device);
   }

Cette condition vérifie si l’appareil est injoignable (sa propriété available est false). Si c’est le cas, l’appareil est ajouté à la liste nonResponsiveDevices.

  1. Retour du résultat :
  • Si des appareils ne répondent pas : let deviceList = 'Appareils qui ne répondent pas :\n'; nonResponsiveDevices.forEach(device => { deviceList += `- ${device.name} (Zone : ${device.zoneName})\n`; }); return deviceList; Si la liste nonResponsiveDevices contient des appareils, le script crée une chaîne de caractères deviceList en listant le nom de chaque appareil injoignable et sa zone. Cette liste est ensuite renvoyée.
  • Si tous les appareils répondent correctement :
    javascript return 'Tous les appareils répondent correctement.';
    Si la liste nonResponsiveDevices est vide, le script retourne un message indiquant que tous les appareils fonctionnent correctement.

Conclusion

Ce flux permet donc une vérification quotidienne automatisée des appareils défectueux et envoie une notification pour en informer l’utilisateur. C’est une méthode efficace pour un suivi régulier de l’état des appareils connectés dans Homey.

Bonne automatisation !

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.