# Faire clignoter une ampoule/prise

**URL:** <https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435>\
**Category:** Demandes livrées\
**Created:** [Octobre 30, 2023, 9:49 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435 "2023-10-30T21:49:47Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [Octobre 30, 2023, 9:49 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/1 "2023-10-30T21:49:47Z")

</div>

**Feature description**  
Permettre d’avoir l’option ‹&nbsp;faire clignoter (1x,2x,3x par seconde) pendant X minutes&nbsp;› dans les choix d’actions dans les scènes.  
Actuellement, le clignotement est très contraignant car nécessite une succession de blocs allumer/attendre/éteindre/attendre en boucle.  
Avec le nouveau mode alarme, ça fait sens de simplifier la création du type de scène ‹&nbsp;compte à rebours&nbsp;›, ‹&nbsp;sonnerie+lumière&nbsp;› etc.

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [Octobre 31, 2023, 8:02 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/2 "2023-10-31T08:02:57Z")

</div>

Je rencontre la même problématique alors je vote !! 🙂

---

<div class="post-metadata">

**Author:** ![b3n.0](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/b3n.0/32/3458_2.png) [@b3n.0](https://community.gladysassistant.com/u/b3n.0)\
**Post date:** [Novembre 23, 2023, 9:10 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/3 "2023-11-23T21:10:06Z")

</div>

Dans la même idée mais permettant d’aller encore un peu loin je proposerai meme de pouvoir, dans une scène, en appeler une autre en la répétant N fois !

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [Janvier 19, 2024, 3:07 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/4 "2024-01-19T15:07:49Z")

</div>

J’ai commencé à travailler sur cette fonctionnalité et j’ai commencé simple.

On peut choisir :

- la ou les lumières à faire clignoter
- le nombre de fois
- le délai entre chaque «&nbsp;clignotement&nbsp;» en ms

Voici une capture d’écran de l’action (ne regardez pas le style mais plutôt les options 😅 )

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/4/4ab052e2438442c8b3fb09a182c39ec4292ce511.png)

et le rendu

[![](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/f/f30da580fbcfd1e60214babd12ee2e309cf8a83f.jpeg "Gladys Assistant Blinking Ligth") ](https://www.youtube.com/watch?v=lemQgsrHpkw)

Pensez-vous que la lumière doit revenir dans l’état initial (avant clignotement) ou pas ?

J’imagine que vous avez envie de pouvoir choisir la couleur, l’intensité, et plein d’autres paramètres pour chaque lampe, mais on verra ça dans une prochaine version 😃

---

<div class="post-metadata">

**Author:** ![cce66](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/c/8797f3/32.png) [@cce66](https://community.gladysassistant.com/u/cce66)\
**Post date:** [Janvier 19, 2024, 3:57 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/5 "2024-01-19T15:57:31Z")

</div>

> [@cicoub13](#):
>
> Pensez-vous que la lumière doit revenir dans l’état initial (avant clignotement) ou pas ?

L’idéal serait d’avoir (pour ouverture portail garage par exemple) :  
intervalle clignotement  
durée clignotement + durée allumage + durée clignotement + extinction

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [Janvier 19, 2024, 4:22 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/6 "2024-01-19T16:22:04Z")

</div>

Merci beaucoup pour cette avancée !  
Si je puis faire une proposition :

- Clignoter pendant… (Temps)
- Vitesse du clignotement (très lent, lent, normal etc.)

Serait plus ‹&nbsp;user Friendly&nbsp;›  
Mais certains voudront quelque-chose de bien plus personnalisable, on y revient.  
Un petit calcul en background te permettrait de compter le nombre de fois que ta boucle sera répétée, plutôt que ce soit à l’utilisateur à le faire.  
Et en effet, un retour à l’état initial ou éventuellement, un choix (allumée, éteinte ou état précédent - peut-être plus tard)  
Des couleurs… Comme pour faire une guirlande de Noël ? Avec un random ? Ça peut être marrant 😉

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Janvier 23, 2024, 9:22 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/7 "2024-01-23T09:22:41Z")

</div>

C’est très chouette @cicoub13 👏

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [Janvier 25, 2024, 11:14 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/8 "2024-01-25T11:14:50Z")

</div>

Une image est disponible pour tester (en local, ne pas passer par Gladys Plus)

`cicoub13/gladys:blinking-lights`

Voici la nouvelle interface pour l’action

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/a/a9cfc6bc412ac7f42e191407b094e951e40c4dc7.png)

avec 3 **modes** :

- Lent (toutes les secondes)
- Normal (toutes les 0,5 secondes)
- Rapide (toutes les 0,1 secondes)

Chaque lumière revient à son état **initial** après clignotement.

Je vais m’arrêter là pour la partie fonctionnelle.

* * *

Si cela vous convient, je passe aux tests 😅

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [Janvier 25, 2024, 4:25 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/9 "2024-01-25T16:25:17Z")

</div>

Magnifique !  
Je teste ça ce soir!  
Merci!

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [Janvier 25, 2024, 9:36 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/10 "2024-01-25T21:36:58Z")

</div>

Tout d’abord, merci!  
Voilà, après un simple test…  
C’est pas génial avec une lampe fonctionnant via Tasmota http.  
Ça fait plus des flash qu’un clignotement et c’est totalement irrégulier. Je dirais que tu dois avoir le même temps d’allumage que d’extinction (exemple : lent=0,5s on + 0,5s off). Qu’en penses-tu?  
Le changement de vitesse de change rien chez moi.  
Le temps est bon.  
La lampe ne revient pas à son état initial.

Veux-tu que je teste d’autres paramètres (intégrations, Pi etc.) ou on attend la version suivante ?  
Peux-tu directement proposer de contrôler une prise en sus des lampes ?

Édit : Rectification, la changement de vitesse fait bien quelque-chose. J’ai l’impression qu’il faudrai qu’aucun mode ne soit présélectionné au risque d’avoir qqch d’aléatoire si l’utilisateur n’a pas lui-même choisi.  
Ça me fait penser… Si quelqu’un choisit ‹&nbsp;rapide&nbsp;› pendant 1 minute, n’y a-t-il pas un risque d’overflood sur le device?

---

<div class="post-metadata">

**Author:** ![cce66](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/c/8797f3/32.png) [@cce66](https://community.gladysassistant.com/u/cce66)\
**Post date:** [Janvier 26, 2024, 12:39 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/11 "2024-01-26T12:39:45Z")

</div>

@GBoulvin

> [@GBoulvin](#):
>
> C’est pas génial avec une lampe fonctionnant via Tasmota http.  
> Ça fait plus des flash qu’un clignotement et c’est totalement irrégulier. Je dirais que tu dois avoir le même temps d’allumage que d’extinction (exemple : lent=0,5s on + 0,5s off). Qu’en penses-tu?  
> Le changement de vitesse de change rien chez moi.  
> Le temps est bon.  
> La lampe ne revient pas à son état initial.

C’est certainement du à l’électronique interne de la lampe il faudrait voir les caractéristique de la lampe il doit y avoir une sécurité interne qui empêche la lampe de scintiller en cas de faux contact ce qui userait grandement ou grillerait la lampe  
Il y a un circuit RC dans la lampe qui permet l’allumage progressif de la lampe LED et assure la mise en phase de la tension et du courant (pour le Cos phi) d’où le flash irrégulier certainement si l’allumage suivant intervient avant que le circuit RC soit déchargé sans compter la partie commande zigbee ! Donc il faut je pense faire des essais et ne pas aller en dessous d’un seuil minimal d’extinction/rallumage.

> **[Les lampes LED fournissent-elles un éclairage de qualité, sans scintillement...](https://www.quelleenergie.fr/questions/ampoules-led-scintillement-flicker)**
>
> Les lampes LED fournissent-elles un éclairage de qualité, sans scintillement (appelé « flicker ») ? Les ampoules LED de bonne qualité vous éclairent s...

@cicoub13, est -il prévu de pouvoir faire clignoter une prise ? (cas d’une lampe branchée sur une prise, comme je vois juste «&nbsp;Faire clignoter les lumières&nbsp;»)

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [Janvier 26, 2024, 2:10 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/12 "2024-01-26T14:10:51Z")

</div>

@GBoulvin Merci d’avoir testé. Oui, je suis parti sur du flash plutôt que du clignotement. Je vais essayer et voir ce que ça donne comme tu proposes.

> [@cce66](#):
>
> @cicoub13, est -il prévu de pouvoir faire clignoter une prise ? (cas d’une lampe branchée sur une prise, comme je vois juste « Faire clignoter les lumières »)

Pas dans cette fonctionnalité. Mais si ça marche et que vous êtes satisfaits, j’enchaîne ensuite avec le «&nbsp;clignotement de prise&nbsp;» (il faudra trouver un nom).

* * *

Pour la sécurité, je fais quelques tests et je mettrai des valeurs seuils.

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [Janvier 28, 2024, 7:34 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/13 "2024-01-28T19:34:00Z")

</div>

Une nouvelle image est disponible. Les lumières ne flashent plus, mais clignotent.

`docker pull cicoub13/gladys:blinking-lights`

⚠ N’oubliez pas de supprimer votre container, le redémarrer ne le mettra pas à jour.

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [Janvier 28, 2024, 10:13 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/14 "2024-01-28T22:13:28Z")

</div>

Voilà, c’est testé et ça marche comme c’est prévu!  
L’état initial est bien récupéré (sauf en ‹&nbsp;rapide&nbsp;› mais ce mode fait bugger plus qu’autre chose chez moi, sans doute _trop_ rapide).  
Ça va être top! Merci!

Édit: Après réflexion, peut-être qu’ajouter une pause (100ms?) avant d’envoyer le dernier état dans le mode ‹&nbsp;rapide&nbsp;› résoudrait le problème (chez moi). Ou ralentir le ‹&nbsp;rapide&nbsp;› ? A 200ms?

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [Janvier 29, 2024, 8:51 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/15 "2024-01-29T20:51:47Z")

</div>

> [@GBoulvin](#):
>
> Ou ralentir le ‹ rapide › ? A 200ms?

J’ai fait ça. Testé de mon côté, ça marche bien. Je pense qu’on est prêt pour une review.

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [Janvier 29, 2024, 9:56 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/16 "2024-01-29T21:56:53Z")

</div>

> <https://github.com/GladysAssistant/Gladys/pull/2007>
>
> \### Pull Request check-list
> 
> To ensure your Pull Request can be accepted as fa…st as possible, make sure to review and check all of these items:
> 
> \- \[x\] If your changes affects code, did your write the tests?
> \- \[x\] Are tests passing? (\`npm test\` on both front/server)
> \- \[x\] Is the linter passing? (\`npm run eslint\` on both front/server)
> \- \[x\] Did you run prettier? (\`npm run prettier\` on both front/server)
> \- \[x\] If you are adding a new features/services, did you run integration comparator? (\`npm run compare-translations\` on front)
> \- \[x\] Did you test this pull request in real life? With real devices? If this development is a big feature or a new service, we recommend that you provide a Docker image to the community (\[french forum\](https://community.gladysassistant.com/)/\[english forum\](https://en-community.gladysassistant.com/)) for testing before merging.
> 
> NOTE: these things are not required to open a PR and can be done afterwards / while the PR is open.
> 
> \### Description of change
> 
> Please provide a description of the change here. It's always best with screenshots, so don't hesitate to add some!

---

<div class="post-metadata">

**Author:** ![Kevin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/kevin/32/6521_2.png) [@Kevin](https://community.gladysassistant.com/u/Kevin)\
**Post date:** [Février 3, 2024, 9:34 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/17 "2024-02-03T09:34:30Z")

</div>

Excellente idée !  
C’est via la création de clignotement manuel que j’avais constaté un souci avec l’état initial des Philips Hue.

Si je peux faire clignoter ma maison en rouge lorsqu’un détecteur de fumée s’enclenche sans devoir créer 30 lignes de scène comme je le fais aujourd’hui, je suis preneur 🙂

Merci pour ton boulot !

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Février 12, 2024, 1:48 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/18 "2024-02-12T13:48:04Z")

</div>

@cicoub13 Tiens moi au courant quand ta PR est prête à être review 🙂

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [Février 12, 2024, 1:49 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/19 "2024-02-12T13:49:50Z")

</div>

Hello. J’ai pris en compte tes retours concernant le statut **bloquant** de l’action mais je rencontre quelques soucis lors des tests réels. Je reviens vers toi (et ici pour d’autres testeurs) dès que je me remets dessus.

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [Février 15, 2024, 1:28 UTC](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435/20 "2024-02-15T13:28:02Z")

</div>

J’ai réussi à fixer le problème, mais je bloque maintenant sur les tests.

J’utilise la fonction `setTimeout` de `timers/promises` (qui est un timeout sous forme de **Promise** ).  
Cela donne dans ma boucle **for** :

> <https://github.com/cicoub13/Gladys/blob/feat-blinking-light-action/server/lib/scene/scene.actions.js#L144C9-L148C10>

Mais lors des tests, je ne veux pas gérer de notion de temps et résoudre ma Promise immédiatement. J’utilise donc `proxyquire` pour remplacer la méthode par une Promise simple de `fake`.

J’ai fait ça :

> <https://github.com/cicoub13/Gladys/blob/feat-blinking-light-action/server/test/lib/scene/actions/scene.action.blinkLights.test.js#L12C1-L16C4>

Mais ce n’est pas pris en compte, j’obtiens l’erreur suivante :

```auto
scene.blink-lights
       should blink light in slow mode:
     Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/Users/cyril.beslay.home/workspace/Gladys/server/test/lib/scene/actions/scene.action.blinkLights.test.js)
      at listOnTimeout (node:internal/timers:569:17)
      at process.processTimers (node:internal/timers:512:7)

```

Une idée ?

[Page suivante](https://community.gladysassistant.com/t/faire-clignoter-une-ampoule-prise/8435.md?page=2)
