Hello,
J’aimerai créer un scénario avec les objects suivant:
Détecteur ouverture/fermeture porte
Ampoule zwave
J’ouvre la porte, la lumière de la pièce s’allume et elle reste allumé même après avoir refermé la porte. X temps après être resté dans la pièce, j’ouvre la même porte, la lumière dois s’éteindre.
Grossomodo, comme si il y avait un détecteur de présence dans la pièce.
Bien évidement, je ne veux pas mettre de détecteur de présence.
Un petit coup de pouce serai la bienvenue, merci
Salut
Pour t’aider il faudrait déjà voir ce que tu as fait.
De mon côté j’utiliserai une variable pour bloqué l’allumage après la première ouverture.
A la seconde ouverture repasser cette variable à 0 après l’extinction de la lumière
Bon, chat GPT me conseil de faire ça:
1ère fois que je l’utilise pour créer un scénario, je vous tiens au jus
Pour créer un scénario dans Jeedom qui réalise les actions que vous décrivez, nous allons utiliser une variable pour garder une trace de l'état de la lumière. Voici comment procéder :
Étape 1 : Créer la variable
Allez dans le menu "Objets" dans la barre de navigation de gauche.
Sélectionnez la catégorie ou la pièce dans laquelle vous souhaitez créer la variable, ou utilisez la racine "Aucun objet".
Cliquez sur l'onglet "Variables".
Cliquez sur "Ajouter une variable".
Remplissez les informations de la variable :
Nom : Donnez un nom significatif, par exemple "Etat_Lumiere".
Type : Sélectionnez "Binaire".
Valeur par défaut : Définissez la valeur par défaut sur "0" (pour éteint).
Sauvegardez la variable.
Étape 2 : Créer le scénario
Allez dans le menu "Scénarios" dans la barre de navigation de gauche.
Cliquez sur "Ajouter un scénario".
Donnez un nom à votre scénario, par exemple "Contrôle de la lumière avec la porte".
Dans l'éditeur de scénario, configurez les déclencheurs et les actions comme suit :
Déclencheurs :
Cliquez sur "Ajouter un déclencheur".
Sélectionnez le déclencheur "Porte" et choisissez "Ouverture" comme événement.
Sauvegardez le déclencheur.
Actions :
Cliquez sur "Ajouter une action".
Sélectionnez "Affecter une valeur à une variable".
Choisissez la variable "Etat_Lumiere" que vous avez créée précédemment.
Affectez la valeur "1" (pour allumé).
Sauvegardez l'action.
Cliquez sur "Ajouter une autre action".
Sélectionnez "Scénario" -> "Dans un autre scénario" -> "Nom du scénario actuel".
Sauvegardez l'action.
Cliquez sur "Ajouter une autre action".
Sélectionnez "Attendre" et spécifiez la durée pendant laquelle vous souhaitez que la lumière reste allumée après avoir fermé la porte (par exemple, 60 secondes).
Sauvegardez l'action.
Cliquez sur "Ajouter une autre action".
Sélectionnez "Affecter une valeur à une variable".
Choisissez la variable "Etat_Lumiere".
Affectez la valeur "0" (pour éteint).
Sauvegardez l'action.
Enregistrez le scénario une fois que vous avez terminé de configurer les déclencheurs et les actions.
Ce scénario devrait maintenant fonctionner selon la logique que vous avez décrite :
Lorsque vous ouvrez la porte, la lumière s'allume.
Lorsque vous refermez la porte, la lumière reste allumée pendant un certain temps (60 secondes dans cet exemple).
Si vous ouvrez à nouveau la porte pendant cette période, la lumière s'éteint avant la fin du délai de 60 secondes.```
Inutile de créer une variable. ce que tu souhaites, c’est faire un toggle sur l’allumage de la lumière (à chaque fois que le détecteur passe à 1, j’allume, ou j’éteins en fonction du statut précèdent … avec une petite différence, tu ne souhaites pas éteindre si allumé depuis moins de X secondes
SI ( Etat Lampe == 0 ) ALORS
Allumer la lampe
SINON
SI ( stateDuration(Etat Lampe) >= XX ) ALORS // XX est le nb de secondes de ta temporisation)
Eteindre la lampe
Explication :
Je declenche, dès que la porte s’ouvre
Si la lampe est éteinte, je l’allume
Si la lampe es allumée, je regarde le dernier changement d’état et si il est supérieur à XX s, j’éteins la lampe
merci pour votre aide, mais il doit y avoir un souci quelque part.
La ventilation se lance bien, mais elle ne se coupe pas. (j’ai mis 10 sec pour test)
La commande est bien historisé.
------------------------------------
[2023-07-24 11:41:44][SCENARIO] -- Start : Scenario execute automatiquement sur evenement venant de : [Salle de bain][Sensor Salle de Bain][Porte] (1).
[2023-07-24 11:41:44][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Salle de bain][Ventilation et Spots][Etat Ventilation]# == 0
[2023-07-24 11:41:44][SCENARIO] Evaluation de la condition : [0 == 0] = Vrai
[2023-07-24 11:41:44][SCENARIO] - Exécution du sous-élément de type [action] : then
[2023-07-24 11:41:44][SCENARIO] Exécution de la commande [Salle de bain][Ventilation et Spots][On Ventilation]
[2023-07-24 11:41:44][SCENARIO] Fin correcte du scénario
------------------------------------
[2023-07-24 11:41:48][SCENARIO] -- Start : Scenario execute automatiquement sur evenement venant de : [Salle de bain][Sensor Salle de Bain][Porte] (0).
[2023-07-24 11:41:48][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Salle de bain][Ventilation et Spots][Etat Ventilation]# == 0
[2023-07-24 11:41:48][SCENARIO] Evaluation de la condition : [1 == 0] = Faux
[2023-07-24 11:41:48][SCENARIO] - Exécution du sous-élément de type [action] : else
[2023-07-24 11:41:48][SCENARIO] Exécution d'un bloc élément : 18
[2023-07-24 11:41:48][SCENARIO] - Exécution du sous-élément de type [condition] : if stateduration(#[Salle de bain][Ventilation et Spots][Etat Ventilation]#)>= 10
[2023-07-24 11:41:48][SCENARIO] Evaluation de la condition : [4>= 10] = Faux
[2023-07-24 11:41:48][SCENARIO] - Exécution du sous-élément de type [action] : else
[2023-07-24 11:41:48][SCENARIO] ```
donc c’est OK, tu as refermé 4s après l’ouverture donc pas d’extinction
ON est d’accord que la fermeture de la porte n’eteint rien, c’ets la reouverture qui eteint ?
Je ne comprend pas, tu parle de quel déclencheur ?
Parce que plus haut tu dit
Citation SI ( Etat Lampe == 0 ) ALORS
Allumer la lampe
Qu’on soit bien d’accord, j’utilise un détecteur Aeotec ouverture/fermeture comme déclencheur, dans paramètres Général->Mode scénario->Provoqué->Évènement.
Sur ce déclencheur ont ne peut rien indiquer.
Ensuite c’est dans le bloc « SI » que j’ajoute → SI ( Etat Lampe == 0 ) ALORS Allumer la lampe