02 51 76 0 34

Accès client :  mot de passe oublié   inscription

       (oubli)
AccueilDéveloppeurs / API › Node-RED

Envoyer des SMS avec Node-RED

Mis à jour le 17 septembre 2026

Capteur MQTT, message d'un automate, événement Home Assistant, tâche planifiée : dans Node-RED, tout peut devenir une alerte SMS. Notre flux gratuit s'importe en un copier-coller et n'ajoute aucune palette : une fonction prépare la requête, le nœud http request standard appelle l'API 123-SMS, un dernier nœud interprète le code retour.

1Importer le flux

  1. Téléchargez l'archive, ouvrez flow-sms-123.json et copiez son contenu.
  2. Node-RED : Menu › Importer, collez, puis Importer : un onglet « SMS 123-SMS.net » est créé.
  3. Renseignez l'identifiant et la clé API (voir ci-dessous) et vos numéros, puis Déployer.
  4. Cliquez sur le nœud Test : le résultat s'affiche dans la barre de débogage et sous le nœud « Code retour ».
Identifiant et clé API : ils sont transmis par e-mail à l'inscription ; la clé se régénère dans l'espace client, rubrique API. Pour valider la configuration sans consommer de crédit, utilisez l'envoi à blanc : l'API répond 92 sans envoyer de SMS.

2La fonction qui prépare le SMS

// Destinataires par defaut (France : 336... ; etranger : +44... ou 0044...)
const NUMEROS = ['33601020304'];
const IDENTIFIANT = env.get('SMS123_IDENTIFIANT') || 'votre_identifiant';
const CLE_API = env.get('SMS123_CLE_API') || 'XXXXXX';
const EXPEDITEUR = '';      // Sender-ID declare (optionnel)
const TEST = false;         // true : requete validee sans envoi (code 92)

// + international -> 00 ; 0033 / 06 -> 33
function normaliser(numero) {
    let n = String(numero).replace(/[^0-9+]/g, '');
    if (n.startsWith('+')) n = '00' + n.substring(1);
    n = n.replace(/\+/g, '');
    if (n.startsWith('0033')) n = '33' + n.substring(4);
    else if (n.length === 10 && n[0] === '0' && n[1] !== '0') n = '33' + n.substring(1);
    return n;
}

const texte = String(msg.payload === undefined ? '' : msg.payload).trim();
if (texte === '') {
    node.warn('SMS ignore : msg.payload vide');
    return null;
}
let numeros = msg.numeros || NUMEROS;
if (typeof numeros === 'string') numeros = numeros.split(',');

const sorties = [];
for (const brut of numeros) {
    const numero = normaliser(brut);
    if (numero === '') continue;
    const champs = { email: IDENTIFIANT, pass: CLE_API, numero: numero, message: texte };
    if (EXPEDITEUR) champs.sender = EXPEDITEUR;
    if (TEST) champs.test = 'o';
    sorties.push({
        payload: champs,
        headers: { 'content-type': 'application/x-www-form-urlencoded' },
        numero: numero,
        texte: texte
    });
}
return [sorties];

Les identifiants se lisent dans les variables d'environnement SMS123_IDENTIFIANT et SMS123_CLE_API (onglet Env du flux, ou settings.js) : ils ne figurent alors pas dans l'export du flux. Un message avec msg.numeros remplace les destinataires par défaut.

3Brancher vos alertes

Reliez n'importe quelle sortie à l'entrée du nœud Preparer le SMS, avec le texte dans msg.payload :

  • MQTT : un nœud switch filtre la valeur (température > 8, porte ouverte), un nœud template écrit le texte.
  • Home Assistant : un nœud events: state sur le capteur de fuite ou l'alarme — voir aussi la page Home Assistant.
  • Anti-rafale : placez un nœud delay en mode « limiter » (1 message par minute) avant l'envoi.
  • Erreurs : un nœud catch sur le nœud « Code retour » récupère les refus (crédit, numéro).

Numéros : 33601020304 ou 0601020304 pour la France ; pour l'étranger, l'indicatif précédé de 00 ou de + (converti en 00).

Questions fréquentes

Faut-il installer une palette pour envoyer des SMS ?

Non : le flux n'utilise que des nœuds standard (inject, function, http request, debug). Il suffit de l'importer et de renseigner vos identifiants.

Comment protéger la clé API dans Node-RED ?

Utilisez les variables d'environnement SMS123_IDENTIFIANT et SMS123_CLE_API, lues par la fonction avec env.get : la clé n'apparaît pas dans l'export du flux. Protégez aussi l'éditeur Node-RED par un mot de passe.

Peut-on envoyer à plusieurs numéros ?

Oui : listez-les dans la constante NUMEROS ou passez msg.numeros (tableau ou chaîne séparée par des virgules) ; un SMS est envoyé à chaque numéro.

Comment savoir si le SMS est parti ?

Le nœud Code retour affiche un statut vert (envoyé) ou rouge (code d'erreur) et lève une erreur capturable par un nœud catch.

Pourquoi le SMS pour l'astreinte ?

Parce qu'il réveille : il arrive en quelques secondes, sans application ni connexion Internet sur le téléphone de l'astreinte. Et chez 123-SMS, les crédits n'expirent jamais : une réserve d'alerte reste disponible tant qu'elle n'est pas consommée.

Combien coûte une alerte SMS ?

De 0,23 € à 0,075 € HT le SMS selon le volume de crédits, sans abonnement ; les crédits n'expirent jamais.

Testez avec votre propre besoin

5 SMS offerts pour votre essai, sur simple demande : expliquez-nous votre projet Node-RED et nous créditons votre compte professionnel pour un premier envoi en conditions réelles. Offre réservée aux professionnels : entreprises, associations et collectivités.

Demander 5 SMS de test Inscription gratuite Contacter l'équipe

Téléchargement

123-sms_node-red.zip

Flux à importer (Node-RED 3 et plus).
Licence MIT — libre et gratuit.

🔗 Voir sur GitHub

L'essentiel 123-SMS

  • Sans abonnement ni frais d'installation.
  • Crédits SMS sans date d'expiration.
  • Prix dégressifs de 0,23 à 0,075 € HT le SMS.
  • API HTTP(S), envoi par e-mail ou depuis l'interface web.
  • Service français, opéré depuis 2002.