Voici une analyse détaillée de ce script HomeyScript qui démontre comment exécuter des cartes de type « Et » (Flow Card Condition) et « Alors » (Flow Card Action).
But du Script
- Vérifier si le jour actuel est un week-end en exécutant une carte « Et ».
- Exécuter une action spécifique en fonction du résultat (allumer une animation de couleur verte si c’est un week-end, rouge sinon).
Structure et Fonctionnement
1. Exécution de la Carte « Et » (Condition)
const { result: isWeekend } = await Homey.flow.runFlowCardCondition({
id: 'homey:manager:cron:day_equals',
args: {
day: 'weekend',
},
});
log('Is Weekend:', isWeekend);
Homey.flow.runFlowCardCondition():- Exécute une carte de condition (type « Et »).
- Paramètres :
id: L’identifiant unique de la carte, icihomey:manager:cron:day_equals, qui vérifie si le jour actuel correspond à un certain critère.args: Les arguments nécessaires pour la carte. Ici, l’argument est{ day: 'weekend' }, indiquant que nous voulons vérifier si c’est un week-end.
- Résultat :
- La fonction renvoie un objet contenant le champ
result, qui est assigné à la variableisWeekend. - Cette variable sera
truesi c’est un week-end, sinonfalse. log(): Affiche dans la console le résultat (par exemple :Is Weekend: true).
2. Exécution de la Carte « Alors » (Action)
await Homey.flow.runFlowCardAction({
id: 'homey:manager:ledring:animate_pulse',
args: {
animation: 'pulse',
color: isWeekend
? '#00FF00'
: '#FF0000',
},
});
Homey.flow.runFlowCardAction():- Exécute une carte d’action (type « Alors »).
- Paramètres :
id: L’identifiant unique de la carte, icihomey:manager:ledring:animate_pulse, qui déclenche une animation LED sur Homey.args: Les arguments nécessaires pour la carte :animation: 'pulse': Déclenche une animation de type pulsation.color: Définit la couleur de l’animation :#00FF00(vert) si c’est un week-end (isWeekend === true).#FF0000(rouge) sinon.
Logique Globale
- Vérifie si le jour actuel est un week-end avec une carte « Et ».
- Exécute une animation de pulsation LED en fonction du résultat :
- Vert pour un week-end.
- Rouge pour un jour de semaine.
Exemple de Fonctionnement
Situation 1 : Jour de semaine (par ex. mercredi)
- Condition vérifiée :
isWeekend=false.
- Action exécutée :
- Animation LED rouge (pulsation).
Situation 2 : Week-end (par ex. samedi)
- Condition vérifiée :
isWeekend=true.
- Action exécutée :
- Animation LED verte (pulsation).
Utilisation et Application
- Automatisation Dynamique :
- Peut être utilisé pour des scénarios où l’action dépend du jour actuel, par exemple, des routines spécifiques pour les week-ends.
- Personnalisation des Actions :
- Les couleurs et animations peuvent être modifiées pour répondre à d’autres conditions ou préférences.
Avantages et Limites
Avantages :
- Montre comment intégrer des cartes « Et » et « Alors » dans HomeyScript.
- Fournit une logique conditionnelle simple mais efficace.
- Facile à adapter pour d’autres scénarios (par exemple, vérifier des heures, des états de périphériques, etc.).
Limites :
- Dépend de cartes spécifiques disponibles dans l’environnement Homey (par exemple,
homey:manager:cron:day_equalsethomey:manager:ledring:animate_pulse). - Ne fonctionne que si les arguments requis par les cartes sont corrects.
Extensions possibles
- Ajouter d’autres conditions :
- Par exemple, vérifier si une lumière est allumée avant de lancer l’animation.
- Changer le type d’animation :
- Adapter pour des animations différentes selon le contexte.
- Utilisation multi-cartes :
- Enchaîner plusieurs cartes pour des scénarios plus complexes.