Referentie voor integraties van derden

Verbind je app met een TigerSystem-account

Het TigerSystem-account verbindt elke app en elk apparaat. Je app, je apparaat of Home Assistant maakt er native verbinding mee via Firebase: het logt in met de eigen inloggegevens van de gebruiker, leest diens spoelen en rekken in Firestore en schrijft gewichten terug.

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 }
Geldigheidsduur van een idToken: vernieuw het voordat het verloopt
1 hGeldigheidsduur van een idToken: vernieuw het voordat het verloopt
Aanbevolen minimale polling-interval
5 minAanbevolen minimale polling-interval
Minimale aankondigingstermijn voordat een veld wordt hernoemd of verwijderd
3 maandenMinimale aankondigingstermijn voordat een veld wordt hernoemd of verwijderd
Licentie van elk codefragment: plak het in je project, zonder naamsvermelding
Apache-2.0Licentie van elk codefragment: plak het in je project, zonder naamsvermelding

Hoe een client verbinding maakt met TigerSystem

Elke client volgt dezelfde vier stappen: de openbare Firebase-configuratie ophalen, inloggen als de gebruiker, de Firestore REST API aanroepen met het token van de gebruiker, en dat token geldig houden.

Haal de openbare configuratie op

Eén GET geeft de configuratie van het Firebase-project terug. De apiKey is bewust openbaar: hij identificeert het project, niet de aanroeper. Cache hem; wekelijks vernieuwen is genoeg.

Log in als de gebruiker

Het e-mailadres en wachtwoord van de gebruiker leveren een UID, een idToken van 1 uur en een refreshToken op. Google Sign-In vraagt een browser, dus headless clients gebruiken een wachtwoord.

Lees en schrijf in Firestore

Stuur het idToken mee als Bearer-token. Spoelen staan in users/{uid}/inventory, rekken in users/{uid}/racks; gewichten zijn netto grammen, datums Unix-milliseconden.

Geen serviceaccount

Elke client logt in met de eigen inloggegevens van de eindgebruiker. Lever de firebase-admin SDK of een beheerderssleutel nooit mee in een client van derden.

Security Rules beslissen

Firestore Security Rules toetsen elk verzoek aan de ingelogde gebruiker: de eigenaar leest en schrijft zijn eigen documenten, vrienden lezen inventaris en rekken, al het andere wordt geweigerd.

Een openbaar contract

Documentpaden en veldnamen blijven stabiel. Een veld hernoemen of verwijderen vraagt minstens 3 maanden aankondiging in de changelog; nieuwe velden komen er altijd alleen bij.

Home Assistant

Een schets van een custom component die één sensor per spoel aanmaakt, met het resterende gewicht in grammen als status. De handleiding behandelt ook inventarissen van vrienden, paginering en tokenopslag.

The TigerSystem apps and devices around one account

Een ESP32-weegschaal of NFC-apparaat

Zoek een spoel op aan de hand van de gescande RFID-UID (uid, daarna twin_uid), bereken het nettogewicht en schrijf weight_available en last_update met een update mask. De handleiding eindigt met een volledige ESP32-sketch (WiFi, ArduinoJson).

Tiger NFC Connect on a phone

Een Python-script

Een minimale Python-client op basis van Pyrebase4: hij logt in, toont je spoelen en geeft weer hoeveel spoelen elke vriend heeft. De handleiding bevat het volledige script en een voorbeelduitvoer.

Vragen

Heb ik een serviceaccount of een beheerderssleutel nodig?

Nee. Elke client logt in met het eigen TigerSystem-e-mailadres en -wachtwoord van de eindgebruiker, en Firestore Security Rules bepalen wat die gebruiker mag lezen of schrijven. Er is geen gedeelde beheerderssleutel, en de firebase-admin SDK mag nooit in een client van derden worden gebruikt.

Waarom is de Firebase-apiKey openbaar?

De apiKey identificeert het Firebase-project, niet de aanroeper. Zonder geldig idToken, verkregen door in te loggen als een echte gebruiker, geeft hij nergens toegang toe; de toegangscontrole gebeurt via authenticatie en de Security Rules.

Kan Home Assistant of een ESP32 inloggen met Google?

Niet rechtstreeks: Google Sign-In vereist een doorverwijzing in de browser. Een gebruiker die altijd alleen Google heeft gebruikt, stelt eerst een wachtwoord in voor het TigerSystem-account via de wachtwoord-vergeten-functie van Tiger Studio Manager 2 of Tiger NFC Connect, en logt daarna in met e-mail en wachtwoord.

Hoe vaak mag mijn integratie pollen?

Hooguit elke 5 minuten voor een sensor, elke 15 minuten voor een overzicht van rekken, en nooit vaker dan elke 30 seconden. Een weegschaal schrijft alleen als een gewicht verandert. Bij het lezen van lijsten hoort een limiet: 200 voor de inventaris, 50 voor rekken.

Kan mijn integratie de spoelen van een vriend lezen?

Ja, alleen-lezen. Als twee gebruikers vrienden zijn, heeft elk van hen een document voor de ander onder users/{uid}/friends, en de regels laten een vriend de inventaris en rekken lezen. Elk van beide gebruikers kan de vriendschap op elk moment beëindigen, wat de toegang onmiddellijk afsluit.

Begin je integratie

Kies de handleiding voor je platform en volg die van inloggen tot je eerste leesactie. Wat gedocumenteerd is, is wat er draait.

Begin een integratie