Aller au contenu
Voir dans l’app

Une meilleure façon de naviguer. Voir plus.

Forum Domotique

Une application en plein écran, avec notifications, badges et accès direct depuis l’accueil.

Pour installer cette application sur iOS et iPadOS
  1. Touchez l’icône de partage dans Safari.
  2. Faites défiler le menu et touchez Ajouter à l’écran d’accueil.
  3. Touchez Ajouter en haut à droite.
Pour installer cette application sur Android
  1. Appuyez sur le menu ⋮ en haut à droite du navigateur.
  2. Appuyez sur Ajouter à l'écran d'accueil ou Installer l'application
  3. Confirmez en appuyant sur Installer.

Envoyer des SMS depuis le dashboard Home Assistant (avec l’intégration Free Mobile SMS XA)

Featured Replies

Posté(e)

Important : ce guide fonctionne uniquement avec l’intégration personnalisée Free Mobile SMS XA développée ici : https://github.com/XAV59213/freesmsxa
Elle expose des services notify.* et un service freesmsxa.send_sms pour envoyer des SMS via l’API Free Mobile.


🎯 Objectif

Mettre 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.

Capture d’écran du 2025-08-24 16-46-25.pngCapture d’écran du 2025-08-24 16-46-17.png

Optionnel : afficher l’état et l’historique des SMS grâce au capteur créé par l’intégration.

Capture d’écran du 2025-08-24 16-50-55.png

Capture d’écran du 2025-08-24 17-14-50.png


Prérequis

  1. Avoir un ou plusieurs comptes Free Mobile avec l’option “Notifications par SMS” activée (identifiant + clé API).

  2. 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.

  3. 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ées

Paramètres → Appareils & services → Entrée → + Créer Entrée

  • 1 Liste (input_select)

    • Nom : Destinataire App (ou Destinataire SMS)

      • Options (une par ligne) : sans le notify.

        papa
        maman
        ect..

    → entité : input_select.destinataire_app

    Capture d’écran du 2025-08-24 17-02-55.png

  • 2 Texte (input_text)

    • Nom : Message SMS

    • (facultatif) Longueur max : 160
      → entité : input_text.message_sms

    Capture d’écran du 2025-08-24 17-05-19.png


    🧠 Étape 2 — Le script d’envoi

    Le 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 script

Capture d’écran du 2025-08-24 17-25-44.png

Capture d’écran du 2025-08-24 17-25-16.png

Pour 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ée

  • Les 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érences

  • Intégration Free Mobile SMS XA (obligatoire) : https://github.com/XAV59213/freesmsxa

  • Home Assistant — Helpers (Aides), Scripts, Lovelace.


🏁 Conclusion

En 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é par XAV59213

La solution a été apportée par CedricMD

  • XAV59213 a changé le titre pour Envoyer des SMS depuis le dashboard Home Assistant (avec l’intégration Free Mobile SMS XA)
  • 3 semaines plus tard...
  • 8 mois plus tard...
Posté(e)

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)
  • 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.

Invité
Répondre à ce sujet…

Compte

Navigation

Rechercher

Rechercher

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.