HomeyScript : example-flowcard-run.js

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, ici homey: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 variable isWeekend.
  • Cette variable sera true si c’est un week-end, sinon false.
  • 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, ici homey: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

  1. Vérifie si le jour actuel est un week-end avec une carte « Et ».
  2. 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)

  1. Condition vérifiée :
  • isWeekend = false.
  1. Action exécutée :
  • Animation LED rouge (pulsation).

Situation 2 : Week-end (par ex. samedi)

  1. Condition vérifiée :
  • isWeekend = true.
  1. Action exécutée :
  • Animation LED verte (pulsation).

Utilisation et Application

  1. 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.
  1. 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_equals et homey:manager:ledring:animate_pulse).
  • Ne fonctionne que si les arguments requis par les cartes sont corrects.

Extensions possibles

  1. Ajouter d’autres conditions :
  • Par exemple, vérifier si une lumière est allumée avant de lancer l’animation.
  1. Changer le type d’animation :
  • Adapter pour des animations différentes selon le contexte.
  1. Utilisation multi-cartes :
  • Enchaîner plusieurs cartes pour des scénarios plus complexes.

En savoir plus sur Les miscellanées Numériques

Subscribe to get the latest posts sent to your email.

Laisser un commentaire

En savoir plus sur Les miscellanées Numériques

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Poursuivre la lecture