Skip to content

feat(scene): variables pour identifier ce qui a déclenché la scène - #2606

Draft
Pierre-Gilles wants to merge 3 commits into
masterfrom
cursor/scene-trigger-info-e36f
Draft

feat(scene): variables pour identifier ce qui a déclenché la scène#2606
Pierre-Gilles wants to merge 3 commits into
masterfrom
cursor/scene-trigger-info-e36f

Conversation

@Pierre-Gilles

Copy link
Copy Markdown
Contributor

Description

Implémente la demande de la communauté : Avoir la possibilité de récupérer qui a déclenché la scène.

Lorsqu'une scène est déclenchée par un événement (changement d'état d'appareil, message MQTT, etc.), les informations du déclencheur sont désormais enrichies et exposées dans le scope de la scène via la variable triggerEvent.

Utilisation

Dans une action de scène (message, SMS, notification, etc.), il est possible d'utiliser des variables comme :

  • {{triggerEvent.device.name}} — nom de l'appareil qui a déclenché la scène
  • {{triggerEvent.deviceFeature.name}} — nom de la fonctionnalité déclencheuse
  • {{triggerEvent.deviceFeature.last_value}} — valeur actuelle
  • {{triggerEvent.deviceFeature.previous_value}} — valeur précédente
  • {{triggerEvent.topic}} / {{triggerEvent.message}} — pour les déclencheurs MQTT

Ces variables sont proposées automatiquement dans l'éditeur de scène (comme pour les événements calendrier) lorsqu'un déclencheur « Changement d'état d'appareil » ou « Message MQTT » est configuré.

Exemple concret

Scène avec plusieurs capteurs de porte en déclencheurs → envoi d'un message :

Alerte : la porte {{triggerEvent.deviceFeature.name}} ({{triggerEvent.device.name}}) est passée à {{triggerEvent.deviceFeature.last_value}}

Changements techniques

  • Serveur : nouveau module scene.buildTriggerEventScope.js qui enrichit l'événement déclencheur avec les métadonnées appareil/fonctionnalité
  • Front : variables de déclencheur exposées dans l'éditeur pour les triggers device et MQTT
  • i18n : libellés ajoutés en fr, en et de

Check-list

  • Tests écrits (server/test/lib/scene/scene.buildTriggerEventScope.test.js)
  • Tests passants sur les nouveaux cas
  • compare-translations passant
Open in Web Open in Cursor 

Add enriched triggerEvent scope when a scene is triggered, so users can
identify which device or MQTT message caused the scene in messages and
other actions.

- Enrich device.new-state events with device and deviceFeature metadata
- Expose trigger variables in the scene editor for device and MQTT triggers
- Add i18n labels for the new variables (en, fr, de)

Co-authored-by: Pierre-Gilles Leymarie <Pierre-Gilles@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 646bb36f-a640-4ee2-aca3-c4a578cba9f3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cursor/scene-trigger-info-e36f

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 3, 2026

Copy link
Copy Markdown

Deploying gladys-plus with  Cloudflare Pages  Cloudflare Pages

Latest commit: 63ad804
Status: ✅  Deploy successful!
Preview URL: https://dd597def.gladys-plus.pages.dev
Branch Preview URL: https://cursor-scene-trigger-info-e3.gladys-plus.pages.dev

View logs

- Format test file with Prettier
- Import sinon at module scope instead of inline require()
- Add missing JSDoc @example on buildTriggerEventScope

Co-authored-by: Pierre-Gilles Leymarie <Pierre-Gilles@users.noreply.github.com>
@codecov

codecov Bot commented Jul 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.97%. Comparing base (3a953c0) to head (63ad804).
⚠️ Report is 125 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff            @@
##           master    #2606    +/-   ##
========================================
  Coverage   98.97%   98.97%            
========================================
  Files        1050     1054     +4     
  Lines       20700    20847   +147     
========================================
+ Hits        20487    20634   +147     
  Misses        213      213            

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Co-authored-by: Pierre-Gilles Leymarie <Pierre-Gilles@users.noreply.github.com>
@github-actions github-actions Bot added area:server Node.js server code area:front Preact front-end type:feature New user-facing feature or improvement labels Jul 31, 2026
@Pierre-Gilles Pierre-Gilles added the needs:cursor-review Automated review by Cursor is needed label Aug 6, 2026 — with Cursor
@Pierre-Gilles Pierre-Gilles removed the needs:cursor-review Automated review by Cursor is needed label Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:front Preact front-end area:server Node.js server code type:feature New user-facing feature or improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants