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 :
- 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. awaitest utilisé car la fonction est asynchrone. Il faut attendre que la liste des appareils soit récupérée avant de continuer.- La variable
devicescontiendra un objet contenant tous les appareils connectés, identifiés par leurs identifiants.
- Parcours de tous les appareils :
for (let device of Object.values(devices)) {
- Cette ligne utilise une boucle
for...ofpour 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é.deviceest une variable qui représente chaque appareil lors de l’itération.
- 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é
onoffest 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é.
- Allumage de l’appareil :
try {
await device.setCapabilityValue('onoff', true);
trycommence 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).awaitest 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.
- 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
catchsera exécuté. console.errorest 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.