# Avoir la possibilité de récupérer qui a déclenché la scène

**URL:** <https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534>\
**Category:** Demande de fonctionnalités\
**Tags:** in-progress\
**Created:** [Novembre 26, 2023, 9:31 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534 "2023-11-26T09:31:55Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Novembre 26, 2023, 9:31 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/1 "2023-11-26T09:31:55Z")

</div>

En tant qu’utilisateur,  
Je veux pouvoir savoir quel device/condition à déclencher une scène,  
Afin de l’utiliser dans d’autres actions

Ex :

J’ai une scène ouverture de porte (avec le tag alarme 🤩) et lorsque une porte s’ouvre, je récupère l’état de toutes les portes et j’envoie un message pour me dire regarde l’état des portes.  
Moi ce que j’aurais voulu faire c’est simplement savoir quel porte déclenche la scène directement (c’est moins fastidieux que d’aller tout récupérer etc.)

Qu’en pensez vous?

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [Novembre 27, 2023, 5:05 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/2 "2023-11-27T17:05:21Z")

</div>

Je te rejoints sur le besoin, mais avec une reflexion un peu plus globale.

Ma scene de detection des intrusions a la maison attends qu’une porte, fenetre ou un capteur de mouvement se declenche et m’envoie ensuite un message.  
Sauf que le message est une liste de tous les peripheriques avec leur valeur (0 ou 1). Ce n’est pas super friendly.

Le mieux serais d’afficher «&nbsp;ouvert / fermé&nbsp;» par exemple dans le message. Et ajouter une variable par defaut avec les données du périphérique déclencheur de la scène ?

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Novembre 27, 2023, 7:15 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/3 "2023-11-27T19:15:48Z")

</div>

Je pense que cest une demande a part 🙂

Les portes pour moi cetait un exemple ^^  
En gros si une scenes se declenche je veu identifier qui a declencher la scène.

Imagine,  
j’ai une scene qui vérifie l’état de mes pneus, si la scene ce déclenche, la variable «&nbsp;deviceTrigger&nbsp;» est instancier avec le pneu qui a declencher la scene et ensuite je fais un message avec «&nbsp;{{ deviceTrigger est a changer&nbsp;»

C’est ce fonctionnement que je propose 🙂

Je pense que toi tu souhaites un mapping 0 fermer 1 ouvert pour les capteur d’ouverture ?

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [Novembre 27, 2023, 7:28 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/4 "2023-11-27T19:28:42Z")

</div>

> [@lmilcent](#):
>
> Et ajouter une variable par defaut avec les données du périphérique déclencheur de la scène

> [@spenceur](#):
>
> si la scene ce déclenche, la variable « deviceTrigger » est instancier avec le pneu qui a declencher la scene et ensuite je fais un message avec « {{ deviceTrigger est a changer »

Je propose la même chose que toi je pense.

Mais en effet j’ai aussi proposé le mapping inverse pour passer de 0/1 à "ouvert / fermé”

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Novembre 27, 2023, 7:30 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/5 "2023-11-27T19:30:42Z")

</div>

Du coup je n’avais pas compris ^^

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Mars 30, 2024, 9:50 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/6 "2024-03-30T21:50:37Z")

</div>

Bonsoir,

J’ai voté pour intégrer cette fonctionnalité 🙂  
Je vais donner un exemple

Je créer une scène avec tout mes capteurs de température en déclencheur si on dépasse un certain seuil.  
Si ce seuil est dépassé alors on envoi un message avec l’information du déclencheur de scène ainsi que la température associé à ce déclencher.

Je peux récupérer l’information de la température avec «&nbsp;Récupérer le dernier état&nbsp;» mais je ne peux pas avoir l’info de qui à déclencher la scène ☹

En espérant que cette fonctionnalité arrivera vite dans Gladys 🙂

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Août 17, 2026, 9:39 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/7 "2026-08-17T09:39:01Z")

</div>

Je remonte ce point 😃

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Août 17, 2026, 10:31 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/8 "2026-08-17T10:31:28Z")

</div>

@prohand tu te lance dessus ? 😁🤣  
Sa fait deux ans que tu l’attends ahah

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Août 17, 2026, 11:15 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/9 "2026-08-17T11:15:56Z")

</div>

Alors je veux bien mais j’ai quasi plus de token Claude 😅  
J’en garde pour du debug et des trucs perso 😜  
Prochain reset mercredi soir mais je sais pas si j’aurai le temps de lancer Claude sur le sujet 😬

---

<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:** [Août 17, 2026, 11:21 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/10 "2026-08-17T11:21:30Z")

</div>

Pardon je n’ai pas synchronisé l’état ici mais c’est bien déjà développé :

> <https://github.com/GladysAssistant/Gladys/pull/2708>
>
> \### Pull Request check-list
> 
> To ensure your Pull Request can be accepted as fast… as possible, make sure to review and check all of these items:
> 
> \- \[x\] If your changes affect the code, did you write the tests?
> \- \[x\] Are server tests passing with coverage? (\`cd server && npm run coverage\`) — Codecov requires \*\*100% coverage on lines changed in this PR\*\* (full scene test suite passing locally: 229 tests, all branches of the new code are exercised)
> \- \[\] Did Cypress E2E tests pass? (\`npm run cypress:run\` from repo root, if UI changed)
> \- \[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 feature/service, did you run the integration comparator? (\`npm run compare-translations\` on front)
> \- \[\] 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 (\[forum\](https://community.gladysassistant.com/)) for testing before merging. An AMD64 preview image is built automatically for non-draft PRs; for ARM64, comment \`/build-arm64\` on the PR.
> \- \[\] If your changes modify the API (REST or Node.js), did you modify the API documentation? (Documentation is based on comments in code)
> \- \[\] If you are adding a new features/services which needs explanation, did you modify the user documentation? See \[the GitHub repo\](https://github.com/GladysAssistant/v4-website) and the \[website\](https://gladysassistant.com).
> \- \[\] Did you add fake requests data for the demo mode (\`front/src/config/demo.js\`) so that the demo website is working without a backend? (if needed) See \[https://demo.gladysassistant.com\](https://demo.gladysassistant.com).
> 
> NOTE: these things are not required to open a PR and can be done afterwards / while the PR is open.
> 
> \### Description of change
> 
> Implements the community feature request \[Avoir la possibilité de récupérer qui a déclenché la scène\](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declencher-la-scene/8534).
> 
> When a scene is triggered by a device state change (\`device.new-state\`), scene actions can now use variables identifying the trigger in their texts (send message, SMS, HTTP request, MQTT, ask AI…):
> 
> \- \`{{triggerEvent.device.name}}\` — name of the device that triggered the scene
> \- \`{{triggerEvent.deviceFeature.name}}\` — name of the device feature
> \- \`{{triggerEvent.last\_value}}\` — the new value
> \- \`{{triggerEvent.previous\_value}}\` — the previous value
> 
> Example: a single scene with several door sensors as triggers can now send "{{triggerEvent.device.name}} was just opened" instead of requiring one scene per door.
> 
> \*\*Server\*\* (\`server/lib/scene/scene.checkTrigger.js\`): when a \`device.new-state\` trigger fires, the trigger event injected into the scene scope is enriched with the related device & device feature (name + selector), looked up in RAM through the \`stateManager\` (no DB query, computed once per event). If the feature is not found in RAM, the event is passed through unchanged.
> 
> \*\*Front\*\* (\`DeviceFeatureState.jsx\`, \`TriggerCard.jsx\`): the device state trigger now exposes these variables in the scene editor variable picker, following the exact same pattern as the calendar trigger (\`setVariablesTrigger\`). They automatically appear in every action input using \`TextWithVariablesInjected\`.
> 
> \*\*Translations\*\*: added in English, French and German (\`compare-translations\` passing).
> 
> \*\*Tests\*\*: new end-to-end server test verifying that a scene triggered by a device state change renders the enriched variables in a sent message (\`Garage door (Door state) = 1\`).
> 
> \---
> 🤖 Generated with \[Claude Code\](https://claude.com/claude-code)
> 
> https://claude.ai/code/session\_01QB1TD1R94bgsRT8qjnM2mv
> 
> \---
> \_Generated by \[Claude Code\](https://claude.ai/code/session\_01QB1TD1R94bgsRT8qjnM2mv)\_
> 
> 
> \## Summary by CodeRabbit
> 
> \* \*\*New Features\*\*
> \* Added scene variables for the triggering device, feature, current value, and previous value in device state-change actions.
> \* Added translated labels for these variables in English, French, and German.
> \* Device state-change variables are displayed consistently without duplicate trigger numbering.
> 
> \* \*\*Bug Fixes\*\*
> \* Device state-change events now include relevant device and feature details when scenes run.
> \* Improved handling when device or feature information is unavailable while preserving event values.

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Août 17, 2026, 11:22 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/11 "2026-08-17T11:22:36Z")

</div>

Parfait 😃  
Merci @pierre-gilles

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Août 30, 2026, 10:06 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/12 "2026-08-30T22:06:55Z")

</div>

As tu des news sur ce sujet ? ✌

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Septembre 8, 2026, 6:36 UTC](https://community.gladysassistant.com/t/avoir-la-possibilite-de-recuperer-qui-a-declenche-la-scene/8534/13 "2026-09-08T18:36:47Z")

</div>

J’essayais de voir si sa fonctionnais et… J’avais pas vu que c’étais pas encore merge 😅
