The Things Network (TTN) est l’un des serveurs de réseau LoRaWAN les plus utilisés au monde, basé sur The Things Stack v3. Il gère l’enregistrement des appareils, la communication LoRaWAN au niveau de la couche MAC et le routage des payloads. TTN excelle au niveau de la couche réseau, mais ce n’est pas une plateforme applicative. Il ne stocke pas vos données sur le long terme, ne crée pas de dashboards et ne déclenche pas d’alertes à partir des valeurs des capteurs.
TagoIO est la plateforme applicative qui complète la pile. Elle stocke les données chronologiques, anime des dashboards interactifs, déclenche des alertes, exécute des scripts d’analyse serverless et expose une API REST complète.
Connecter TTN à TagoIO est une intégration propre et bien prise en charge. TagoIO dispose d’un connecteur natif TTN v3 qui configure le webhook automatiquement.
Ce dont vous avez besoin avant de commencer
- Un compte TagoIO (plan gratuit disponible)
- Un compte TTN sur console.cloud.thethings.network
- Au moins un end device enregistré dans une application TTN
- Un gateway LoRaWAN fonctionnel avec une couverture TTN
Vue d’ensemble de l’architecture
[capteurs LoRaWAN] → [gateway LoRaWAN] → [TTN v3 LNS] → (webhook HTTPS) → [TagoIO]
Chaque uplink passe par le serveur de réseau de TTN, qui l’authentifie et livre le payload applicatif au webhook que vous configurez. TagoIO reçoit ce payload, exécute votre parser et stocke les variables obtenues.
Étape 1 : créer un appareil dans TagoIO avec le connecteur TTN
- Connectez-vous à admin.tago.io.
- Cliquez sur Devices → Add Device.
- Cherchez The Things Network v3 dans le catalogue de connecteurs.
- Nommez l’appareil pour qu’il corresponde à votre end device TTN.
- Cliquez sur Create Device.
TagoIO affiche une Webhook URL et un Authorization Token. Copiez les deux.
Documentation des appareils : docs.tago.io/docs/tagoio/devices
Étape 2 : configurer le webhook TagoIO dans TTN
- Dans votre application TTN, allez dans Integrations → Webhooks.
- Cliquez sur + Add webhook → Custom webhook.
- Définissez Base URL sur la Webhook URL de TagoIO.
- Sous Headers, ajoutez :
Authorization: YOUR_TAGOIO_TOKEN - Activez les événements Uplink message.
- Enregistrez.
Étape 3 : écrire un Payload Parser
TTN envoie un objet JSON à chaque uplink. TagoIO attend les variables dans son format standard :
[{"variable": "temperature", "value": 22.5, "unit": "C"}]
Option A : utiliser le payload formatter de TTN (decoded_payload)
Si TTN décode votre payload, faites correspondre les champs décodés :
const decoded = payload.uplink_message.decoded_payload;
if (!decoded) { payload = []; return; }
payload = Object.entries(decoded).map(([key, value]) => ({
variable: key, value: value
}));
Option B : décoder les octets bruts dans TagoIO
Pour des payloads base64 bruts (exemple Cayenne LPP) :
const raw = Buffer.from(payload.uplink_message.frm_payload, "base64");
const temperature = raw.readInt16BE(2) / 10;
const humidity = raw.readUInt8(5) / 2;
payload = [
{ variable: "temperature", value: temperature, unit: "C" },
{ variable: "humidity", value: humidity, unit: "%" }
];
Ajouter les métadonnées RF :
const rxMeta = payload.uplink_message.rx_metadata?.[0] || {};
payload.push({ variable: "rssi", value: rxMeta.rssi });
payload.push({ variable: "snr", value: rxMeta.snr });
Documentation du Payload Parser : docs.tago.io/docs/tagoio/devices/payload-parser
Étape 4 : vérifier dans le Live Inspector
Ouvrez le Live Inspector sur la page de votre appareil et confirmez que les variables décodées arrivent au prochain uplink.
Documentation du Live Inspector : docs.tago.io/docs/tagoio/devices/live-inspector
Étape 5 : passer à l’échelle d’une flotte
Pour les grandes flottes, créez un appareil TagoIO par end device TTN, ou utilisez une seule intégration TagoIO fourre-tout avec un script d’Analysis qui répartit les données entrantes selon le dev_eui.
Pour les dashboards multi-appareils, les Blueprint Dashboards appliquent automatiquement une seule mise en page à tous les appareils via les tags.
Documentation Analysis : docs.tago.io/docs/tagoio/analysis
Envoyer des downlinks de TagoIO vers TTN
Utilisez un script d’Analysis TagoIO pour envoyer des downlinks en POST via l’API TTN v3 :
const axios = require("axios");
await axios.post(
`https://eu1.cloud.thethings.network/api/v3/as/applications/${APP_ID}/devices/${DEVICE_ID}/down/push`,
{ downlinks: [{ f_port: 1, frm_payload: Buffer.from([0x01]).toString("base64"), priority: "NORMAL" }] },
{ headers: { Authorization: `Bearer ${TTN_API_KEY}` } }
);
Cela vous permet d’envoyer des commandes aux appareils : changer l’intervalle de remontée, basculer un relais, demander des relevés à la demande.
Aller plus loin avec l’IA
Le serveur MCP de TagoIO connecte des assistants IA comme Claude aux données de vos appareils. Demandez : “Quels appareils n’ont pas remonté de données depuis 6 heures ?” ou “Température moyenne sur tous les nœuds du bâtiment B ?”
Documentation MCP : docs.tago.io/docs/tagoio/getting-started/tagoio-mcp-ai-powered-iot-data-integration
Récapitulatif
L’intégration TTN-TagoIO repose sur le connecteur natif TTN v3 de TagoIO. Enregistrez l’appareil dans TagoIO, ajoutez le webhook dans TTN, écrivez un payload parser, et vos données LoRaWAN affluent vers un stockage longue durée avec des capacités complètes de dashboard et d’alerte.
- Appareils : docs.tago.io/docs/tagoio/devices
- Payload Parser : docs.tago.io/docs/tagoio/devices/payload-parser
- Scripts d’Analysis : docs.tago.io/docs/tagoio/analysis
- Actions : docs.tago.io/docs/tagoio/actions
- MCP : docs.tago.io/docs/tagoio/getting-started/tagoio-mcp-ai-powered-iot-data-integration


