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 :
- Déclencheur (Date & Heure – 06:00) : Le flux démarre chaque jour à 6 heures du matin.
- 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.
- 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 :
- 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.
- Initialisation de la liste des appareils injoignables :
let nonResponsiveDevices = [];
Une liste vide, nonResponsiveDevices, est créée pour stocker les appareils qui sont injoignables.
- 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].
- 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.
- 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 listenonResponsiveDevicescontient des appareils, le script crée une chaîne de caractèresdeviceListen 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 listenonResponsiveDevicesest 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.