TagoTiP

Le protocole IoT ouvert. Tout transport. Tout serveur.

TagoTiP est un protocole de télémétrie léger et lisible pour UDP, TCP, HTTP et MQTT. La spécification est ouverte sous Apache 2.0 : déployez-le sur votre propre backend ou envoyez vos données à TagoIO dès aujourd'hui.

ESP32

Wi-Fi + BLE

STM32

LoRa + Cellular

Arduino

Ethernet

TCP UDP MQTT HTTP
TagoTiP Protocol

TagoIO

Plateforme cloud

TagoDeploy

Instance dédiée

Votre cloud

Tout fournisseur

Serveur local

Sur site

PUSH|token|serial|temperature:=23.5#C GET|token|serial|humidity:=68#% ACK|200|OK|1 record saved PUSH|token|serial|temperature:=23.5#C GET|token|serial|humidity:=68#% ACK|200|OK|1 record saved

Pourquoi TagoTiP

Conçu pour les appareils contraints et les réseaux réels

Tout ce dont vous avez besoin pour envoyer des données de télémétrie de manière fiable. Moins de surcharge, plus de clarté.

Charges utiles réduites

Le format compact délimité par des pipes utilise une fraction de la bande passante du HTTP/JSON. 112 octets contre 487 octets pour les mêmes données. Critique pour les liens LTE-M, NB-IoT, LoRa et satellite.

Lisible par l'homme

Lisez, écrivez et déboguez les trames directement dans votre terminal ou moniteur série. Pas de parseurs binaires, pas d'outils externes. Si vous pouvez lire une chaîne délimitée par des pipes, vous pouvez déboguer TagoTiP.

Indépendant du transport

Le même format de trame fonctionne sur UDP, TCP, MQTT et HTTP. Changez de transport sans modifier le firmware de votre appareil ou votre pipeline de données.

Typage sûr par conception

Les opérateurs d'affectation explicites définissent les nombres, chaînes, booléens et coordonnées GPS directement dans la trame. Pas de conversion JSON ambiguë. Le type est déclaré à la source.

Comparaison

Moins d'octets. Plus de signal.

Découvrez comment TagoTiP se compare à une requête HTTP/JSON standard pour des relevés de capteurs IoT.

HTTP / JSON 487 bytes
POST /data HTTP/1.1
Host: api.tago.io
Content-Type: application/json
Authorization: ate2bd31...c0d0
[{
  "variable": "temperature",
  "value": 32.5,
  "unit": "C"
}, {
  "variable": "humidity",
  "value": 65,
  "unit": "%"
}]
↔ 4,3x plus petit
TagoTiP 112 bytes
PUSH|4deedd7bab8817ec|sensor-01|
[temperature:=32.5#C;humidity:=65#%]

Transports

Un seul protocole. Tous les réseaux.

Le format de trame de TagoTiP est indépendant du transport. Envoyez via n'importe quel protocole supporté par votre matériel ou réseau.

UDP

Télémétrie sans accusé de réception. Surcharge minimale pour le matériel sur batterie et contraint.

Voir la fonctionnalité

TCP

Livraison ordonnée et garantie pour les environnements où l'intégrité des données est critique.

Voir la fonctionnalité

MQTT

Publiez les trames TagoTiP en payload MQTT via le broker que vous utilisez déjà.

Voir la fonctionnalité

HTTP

Aucun changement d'infrastructure. Changez le format de la charge utile, gardez votre stack REST existante.

Voir la fonctionnalité

Syntaxe

Pas d'ambiguïté. Pas de schéma externe.

Simple d'utilisation. Les opérateurs de type font partie de la trame elle-même.

:=

Numbers & Units

Integer or decimal. Attach any unit with #.

# variable := value #unit

temperature:=32.5#C

pressure:=1013.25#hPa

battery:=3.7#V

=

Strings

Any text value. Status labels, version strings, named locations.

# variable = "text value"

status="running"

firmware="v2.3.1"

location_name="warehouse-A"

?=

Booleans

Exact lowercase true or false. No other values accepted.

# variable ?= true | false

door_open?=true

alarm_active?=false

connected?=true

@=

GPS Coordinates

lat, lng, or lat, lng, alt. Altitude always in meters.

# variable @= lat,lng[,alt]

location@=-35.28,149.12,600

# combined with number in one frame

[location@=-35.28,149.12;speed:=72#kmh]

→ All 4 types in a single frame
PUSH|4deedd7bab8817ec|sensor-01|[temperature:=32.5#C;status="online";alarm?=false;pos@=-35.28,149.12,600]

Questions fréquentes

Qu'est-ce que TagoTiP ?
TagoTiP est un protocole de télémétrie IoT ouvert, léger et lisible. TagoIO l'a conçu et publie la spécification sous licence Apache 2.0. Il utilise des trames compactes délimitées par des pipes qui fonctionnent sur UDP, TCP, MQTT et HTTP, ce qui permet aux appareils d'envoyer des données avec moins de bande passante que le HTTP/JSON.
Quels transports TagoTiP prend-il en charge ?
Le même format de trame fonctionne sur UDP, TCP, MQTT et HTTP. Vous pouvez changer de transport sans modifier le firmware de vos appareils ni votre pipeline de données.
Combien TagoTiP est-il plus léger que le HTTP/JSON ?
Pour un même relevé de capteur, une trame TagoTiP pèse environ 112 octets contre 487 octets pour le HTTP/JSON, soit à peu près 4,3 fois plus petit. Cela compte sur les liens LTE-M, NB-IoT, LoRa et satellite.
TagoTiP est-il gratuit et ouvert ?
Oui. La spécification est publique sur github.com/tago-io/tagotip, sous licence Apache 2.0. Tout le monde peut l'implémenter, côté client comme côté serveur, pour tout usage, y compris commercial, sans frais et sans compte TagoIO.
Ai-je besoin d'un SDK pour utiliser TagoTiP ?
Non. Comme les trames sont en texte clair, vous pouvez les construire et les envoyer directement depuis votre firmware ou n'importe quel client. Le protocole est lisible par l'homme par conception.
Ai-je besoin de TagoIO pour utiliser TagoTiP ?
Non. La spécification définit les deux côtés de l'échange, l'appareil et le serveur : n'importe quel backend peut donc recevoir des trames TagoTiP. Des bibliothèques open-source pour Rust, Node.js, Python, Go et C/Arduino analysent et construisent les trames (github.com/tago-io/tagotip-sdk). TagoIO est un serveur qui parle TagoTiP nativement sur les quatre transports : vous pouvez commencer par là sans exploiter le vôtre.

Commencer

Envoyez des données en quelques minutes

La spécification TagoTiP est gratuite et ouverte sous Apache 2.0. Aucun SDK requis : formez la trame et envoyez-la à TagoIO ou à tout serveur qui implémente la spécification.