Posté(e) 24 août 202524 août Important : ce guide fonctionne uniquement avec l’intégration personnalisée Free Mobile SMS XA développée ici : https://github.com/XAV59213/freesmsxaElle expose des services notify.* et un service freesmsxa.send_sms pour envoyer des SMS via l’API Free Mobile.🎯 ObjectifMettre un formulaire simple sur Lovelace pour :choisir un destinataire (Papa, Maman, …),saisir un message,cliquer sur Envoyer,avoir une confirmation d’envoi et vider le champ.Optionnel : afficher l’état et l’historique des SMS grâce au capteur créé par l’intégration.✅ PrérequisAvoir un ou plusieurs comptes Free Mobile avec l’option “Notifications par SMS” activée (identifiant + clé API).Installer l’intégration personnalisée Free Mobile SMS XA :via HACS → Dépôts personnalisés → https://github.com/XAV59213/freesmsxa → catégorie Intégration ;redémarrer HA ;Paramètres → Appareils & services → Ajouter une intégration → Free Mobile SMS XA ;saisir username + access_token ; un SMS de test valide les identifiants.Vérifier que des services notify.* ont été créés (ex. notify.papa_sms, notify.maman_sms) dans Outils de développement → Services.Si vous ne voyez pas vos notify.*, c’est que l’intégration n’est pas encore configurée ou a échoué.🧱 Étape 1 — Créer 2 EntréesParamètres → Appareils & services → Entrée → + Créer Entrée1 Liste (input_select)Nom : Destinataire App (ou Destinataire SMS)Options (une par ligne) : sans le notify.papa maman ect..→ entité : input_select.destinataire_app2 Texte (input_text)Nom : Message SMS(facultatif) Longueur max : 160→ entité : input_text.message_sms🧠 Étape 2 — Le script d’envoiLe script ci-dessous :choisit le bon service notify.<sélection>,annule si le message est vide,crée une notification de succès,efface le message après envoi.Automatisations & scènes → Scripts → Nouveau → Éditeur YAML :alias: Envoyer message ciblé (App mobile) mode: restart sequence: - variables: dest: "{{ states('input_select.destinataire_app') }}" msg: "{{ states('input_text.message_sms') }}" - choose: - conditions: - condition: template value_template: "{{ msg | trim == '' }}" sequence: - data: title: Envoi annulé message: Aucun message à envoyer. Merci de saisir un texte. action: persistent_notification.create - stop: Message vide - choose: - conditions: - condition: template value_template: "{{ dest == 'Maman' }}" sequence: - target: entity_id: notify.maman data: message: "{{ msg }}" action: notify.send_message - conditions: - condition: template value_template: "{{ dest == 'Papa' }}" sequence: - target: entity_id: notify.papa data: message: "{{ msg }}" action: notify.send_message - conditions: - condition: template value_template: "{{ dest == 'Naomie' }}" sequence: - target: entity_id: notify.naomie data: message: "{{ msg }}" action: notify.send_message - conditions: - condition: template value_template: "{{ dest == 'Xavier' }}" sequence: - target: entity_id: notify.xavier data: message: "{{ msg }}" action: notify.send_message - conditions: - condition: template value_template: "{{ dest == 'Anais' }}" sequence: - target: entity_id: - notify.anais data: message: "{{ msg }}" action: notify.send_message - conditions: - condition: template value_template: "{{ dest == 'TOUS LE MONDE !' }}" sequence: - target: entity_id: - notify.maman - notify.papa - notify.xavier - notify.naomie - notify.anais data: message: "{{ msg }}" action: notify.send_message default: - data: title: Envoi annulé message: Destinataire « {{ dest }} » inconnu. Vérifie ton sélecteur. action: persistent_notification.create - stop: Destinataire inconnu - data: title: Message envoyé message: "Envoyé à « {{ dest }} » : {{ msg }}" action: persistent_notification.create - target: entity_id: input_text.message_sms data: value: "" action: input_text.set_value description: "" Variante si vous préférez utiliser explicitement le service de l’intégration :remplacez l’étape 2 par :- service: freesmsxa.send_sms data: target: "notify.{{ dest }}" message: "{{ msg }}" 🧩 Étape 3 — La carte Lovelace (dashboard)Tableau de bord → Modifier → + Ajouter une carte → Carte YAML :type: vertical-stack cards: - type: entities title: Envoyer un message SMS state_color: true entities: - entity: input_select.destinataire_app name: Destinataire - entity: input_text.message_sms name: Message - type: button name: Envoyer icon: mdi:send tap_action: action: call-service service: script.turn_on target: entity_id: script.envoyer_message_cible_app_mobile # <-- adapte avec l'ID exact de ton scriptPour connaître l’ID exact du script : Outils de développement → États, filtre script..🔎 (Optionnel) Carte “État + Historique des SMS”Si vous avez configuré le capteur créé par l’intégration (nom ressemblant à <Alias> - SMS), vous pouvez afficher :le compteur d’envois,le dernier envoi,l’historique (10 derniers) depuis l’attribut sms_log.Adaptez sensor.TON_CAPTEUR à votre entité réelle (voir États).type: vertical-stack cards: - type: entity entity: sensor.TON_CAPTEUR name: Maman SMS - État state_color: true unit: sms attribute: sms_count - type: markdown title: Historique des derniers SMS content: > {% set log = state_attr('sensor.TON_CAPTEUR', 'sms_log') %} {% if log %} {% for item in log %} • **{{ item['time'] | as_datetime | as_local | strftime('%d/%m %H:%M:%S') }}** : {{ item['message'] }} {% endfor %} {% else %} Aucun SMS envoyé. {% endif %} 🧰 Dépannage (FAQ)“Notify service not found”→ Dans Outils de développement → Services, notez les noms exacts notify.*.→ Les options de input_select.destinataire_app doivent être sans notify. (ex. papa_sms, pas notify.papa_sms).→ Le script reconstruit notify.{{ dest }}.Rien ne se passe en cliquant sur “Envoyer”→ Vérifiez que la carte appelle bien script.turn_on et l’entity_id du script est correct (voir États).Le champ ne se vide pas→ Vérifiez que input_text.message_sms existe, et l’étape input_text.set_value est bien en fin de script.Pas de capteur / pas d’historique→ Ajoutez l’intégration et la ligne Free Mobile ; le capteur est créé par l’intégration lors de la config.→ L’historique s’alimente après vos premiers envois.🔐 Remarques sécurité & vie privéeLes clés Free Mobile sont stockées dans la config de l’intégration et ne s’affichent pas en clair dans le device registry.Pensez à limiter l’accès à cette carte Lovelace (utilisateurs/onglets) si nécessaire.📦 RéférencesIntégration Free Mobile SMS XA (obligatoire) : https://github.com/XAV59213/freesmsxaHome Assistant — Helpers (Aides), Scripts, Lovelace.🏁 ConclusionEn quelques minutes, vous avez :un formulaire Destinataire + Message + Bouton Envoyer,un envoi 100 % SMS via l’intégration Free Mobile SMS XA,une confirmation d’envoi et un champ réinitialisé,et, si vous voulez, un suivi de l’historique des SMS. Modifié 24 août 202524 août par XAV59213
Posté(e) 18 mai18 mai Salut et merci pour le script et le tutoriel. Je souhaite intégrer tout ça à mon système d'alarme pour faire de la notification SMS. Y a t'il un moyens de faire des SMS multidestinataires ou alors ça n'envoi un sms que sur le numéro de la ligne liée à la clé API ?
Posté(e) 25 mai25 mai Auteur Salut !Merci pour ton retour et pour l’utilisation du script 👍Oui, il y a bien un moyen de faire des SMS multi-destinataires !Comment ça marche :L’intégration Free Mobile SMS XA est conçue exactement pour ça :Tu configures une ligne par personne (Papa, Maman, Xavier, Naomie, etc.) avec son propre Identifiant utilisateur + Clé API.Chaque ligne configurée crée automatiquement un service notify. distinct (notify.papa, notify.maman, notify.xavier…).Pour envoyer un même SMS à plusieurs personnes en même temps, tu utilises simplement un seul appel au service notify.send_message en mettant plusieurs entity_id dans la cible :action: notify.send_message data: message: " Alarme activée !" target: entity_id: - notify.maman - notify.papa - notify.xavier - notify.naomie - notify.anais C’est exactement l’exemple que je mets dans le README pour les alarmes.Point important :Chaque envoi va uniquement vers le numéro de la ligne liée à la clé API de cette configuration. C’est une limitation de l’API gratuite de Free Mobile (elle n’autorise pas l’envoi vers un numéro arbitraire, seulement vers « ta » ligne).Donc pour notifier toute la famille, il suffit de configurer une intégration par membre → c’est rapide et propre.
Rejoindre la conversation
Vous pouvez commenter maintenant et vous inscrire plus tard. Si vous possédez un compte, connectez-vous.