Ajout d’un sélecteur de source (Telegram, SMS Free, WhatsApp…) dans l’action « Envoyer un message ».
Aujourd’hui, on peut dans une scène faire une action « Envoyer un message » mais sans pouvoir choisir la technologie/source d’envoi, surtout si plusieurs intégrations de messagerie ont été installées. Par exemple, Telegram et Free Mobile.
Tu peux créer une demande de fonctionnalité ?
Je lancerais Claude dessus
@pierre-gilles voilà une PR
master ← William-De71:feat/message-send-channel-selector
ouvert 05:24PM - 07 Aug 26 UTC
### Description
Today the "send message" scene action broadcasts to every mes… saging channel the
user has configured: a scene meant to send an SMS also sends a Telegram message
and a Nextcloud Talk message. There was no way to pick a destination.
This PR adds a channel selector to both `message.send` and
`message.send-camera`. The dropdown lists every messaging channel able to
deliver to a user — Telegram, Nextcloud Talk, CallMeBot (which covers WhatsApp
and Signal), and external integrations of type `communication` such as Free
Mobile SMS.
The first option, "All configured services", is the default and maps to an
action without a `service` property, so **existing scenes keep the historical
broadcast behaviour and are not rewritten**.
Notable points:
- An unknown or non-messaging service name is logged and dropped rather than
silently falling back to a broadcast the user did not ask for.
- `service.load` only flagged `has_message_feature` on services exposing
`message.send`. Send-only channels expose `sendToUser` without the reply path,
so they were never listed as messaging services — Free Mobile SMS did not
appear in the selector at all. Both interfaces are now accepted.
- The new `GET /api/v1/message_service` route lists channels flagged in database
**and** actually loaded in the state manager, since a flagged but unloaded
service could not deliver anything. It is mounted outside `/api/v1/service`,
whose `:service_name` route would otherwise have captured it.
- A channel whose service is not `RUNNING` is shown as unavailable instead of
failing silently at send time. It stays selectable: a scene can legitimately
target a service that is temporarily down.
### Checklist
- [X] Tests pass: `cd server && npm run coverage` (Codecov requires 100% coverage on changed lines) and Cypress (`npm run cypress:run`) if the UI changed
- [X] Linter and prettier pass on both front and server (`npm run eslint`, `npm run prettier`)
- [X] No undocumented breaking change
<img width="550" height="305" alt="image" src="https://github.com/user-attachments/assets/198f0fd3-2e77-4173-bc0d-6362a524eca5" />
<img width="576" height="463" alt="image" src="https://github.com/user-attachments/assets/c82e38a2-9227-4cb7-b3ca-6089b387c00b" />
## Summary by CodeRabbit
* **New Features**
* Scene message and camera-message actions can now target a specific messaging service or send through all configured services.
* Available services are listed with localized names, availability status, and helpful guidance.
* Unavailable or removed services are handled gracefully.
* **Localization**
* Added English, French, and German translations for service selection and related messaging.
* **Bug Fixes**
* Improved handling when selected services or message targets are unavailable.
* **Tests**
* Added coverage for service discovery, targeted delivery, broadcast behavior, and unavailable services.
@Will_71 Je t’ai fais une review de PR, j’ai mis un commentaire Merci pour la PR !
Je ferme ce post car la fonctionnalité est disponible dans Gladys Assistant 4.86 :
Salut à tous !
Super heureux de sortir Gladys Assistant 4.86.
C’est simple, c’est la plus grosse version depuis le début du projet, avec 68 PR fusionnées en une semaine
C’est juste incroyable, et ça montre le nouveau rythme qu’on peut tenir avec l’IA.
L’objectif est maintenant clair : rattraper et dépasser Home Assistant
Je vous parle de ces 68 nouveautés ici :
Merci à tous les contributeurs !!