Référence d'intégration tierce

Connecte ton appli à un compte TigerSystem

Le compte TigerSystem relie chaque appli et chaque appareil. Ton appli, ton appareil ou Home Assistant y accède nativement via Firebase : connexion avec les identifiants de l'utilisateur, lecture de ses bobines et de ses racks dans Firestore, écriture des poids.

GitHub ↗

$ GET  https://tigertag-cdn.web.app/__/firebase/init.json

POST https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key={apiKey}
     { "email": "user@example.com", "password": "…", "returnSecureToken": true }
Durée de vie d'un idToken : rafraîchis-le avant son expiration
1 hDurée de vie d'un idToken : rafraîchis-le avant son expiration
Intervalle d'interrogation minimal recommandé
5 minIntervalle d'interrogation minimal recommandé
Préavis minimal de dépréciation avant qu'un champ soit renommé ou supprimé
3 moisPréavis minimal de dépréciation avant qu'un champ soit renommé ou supprimé
Licence de chaque extrait de code : colle-le dans ton projet, sans attribution
Apache-2.0Licence de chaque extrait de code : colle-le dans ton projet, sans attribution

Comment un client se connecte à TigerSystem

Tous les clients suivent les mêmes quatre étapes : récupérer la configuration Firebase publique, se connecter en tant qu'utilisateur, appeler l'API REST de Firestore avec le jeton de l'utilisateur, et garder ce jeton à jour.

Récupérer la configuration publique

Un seul GET renvoie la configuration du projet Firebase. L'apiKey est publique par conception : elle identifie le projet, pas l'appelant. Mets-la en cache ; un rafraîchissement hebdomadaire suffit.

Se connecter en tant qu'utilisateur

L'e-mail et le mot de passe de l'utilisateur renvoient un UID, un idToken d'une heure et un refreshToken. Google Sign-In exige un navigateur, d'où le mot de passe sans interface.

Lire et écrire dans Firestore

Envoie l'idToken comme jeton Bearer. Les bobines se trouvent dans users/{uid}/inventory, les racks dans users/{uid}/racks ; les poids sont en grammes nets, les dates en millisecondes Unix.

Pas de compte de service

Chaque client se connecte avec les identifiants de l'utilisateur final. N'embarque jamais le SDK firebase-admin ni aucune clé d'administration dans un client tiers.

Les Security Rules décident

Les Firestore Security Rules vérifient chaque requête selon l'utilisateur connecté : le propriétaire lit et écrit ses documents, un ami lit l'inventaire et les racks, le reste est refusé.

Un contrat public

Les chemins de documents et les noms de champs restent stables. Renommer ou supprimer un champ exige 3 mois de préavis minimum dans le changelog ; les nouveaux champs s'ajoutent.

Home Assistant

Une ébauche de composant personnalisé qui expose un capteur par bobine, avec le poids restant en grammes comme état. Le guide couvre aussi les inventaires des amis, la pagination et le stockage des jetons.

The TigerSystem apps and devices around one account

Une balance ESP32 ou un appareil NFC

Retrouver une bobine à partir de l'UID RFID scanné (uid, puis twin_uid), calculer le poids net et écrire weight_available et last_update avec un masque de mise à jour. Le guide se termine par un sketch ESP32 complet (WiFi, ArduinoJson).

Tiger NFC Connect on a phone

Un script Python

Un client Python minimal basé sur Pyrebase4 : il se connecte, liste tes bobines et affiche le nombre de bobines de chaque ami. Le guide contient le script entier et un exemple d'exécution.

Questions

Ai-je besoin d'un compte de service ou d'une clé d'administration ?

Non. Chaque client se connecte avec l'e-mail et le mot de passe TigerSystem de l'utilisateur final, et les Firestore Security Rules décident de ce que cet utilisateur peut lire ou écrire. Il n'existe aucune clé d'administration partagée, et le SDK firebase-admin ne doit jamais être utilisé dans un client tiers.

Pourquoi l'apiKey Firebase est-elle publique ?

L'apiKey identifie le projet Firebase, pas l'appelant. Sans idToken valide, obtenu en se connectant en tant qu'utilisateur réel, elle ne donne accès à rien ; le contrôle d'accès repose sur l'authentification et sur les Security Rules.

Home Assistant ou un ESP32 peuvent-ils se connecter avec Google ?

Pas directement : Google Sign-In nécessite une redirection dans un navigateur. Un utilisateur qui n'a jamais utilisé que Google définit d'abord un mot de passe sur son compte TigerSystem, via la procédure de mot de passe oublié de Tiger Studio Manager 2 ou de Tiger NFC Connect, puis se connecte avec son e-mail et son mot de passe.

À quelle fréquence mon intégration peut-elle interroger ?

Au plus toutes les 5 minutes pour un capteur, toutes les 15 minutes pour une vue d'ensemble des racks, et jamais en dessous de 30 secondes. Une balance n'écrit que lorsqu'un poids change. Les lectures de listes doivent passer une limite : 200 pour l'inventaire, 50 pour les racks.

Mon intégration peut-elle lire les bobines d'un ami ?

Oui, en lecture seule. Lorsque deux utilisateurs sont amis, chacun possède un document pour l'autre sous users/{uid}/friends, et les règles permettent à un ami de lire l'inventaire et les racks. Chacun des deux peut mettre fin à l'amitié à tout moment, ce qui coupe l'accès immédiatement.

Démarre ton intégration

Choisis le guide de ta plateforme et suis-le de la connexion à ta première lecture. Ce qui est documenté est ce qui est déployé.

Démarrer une intégration