Referenz für Drittanbieter-Integrationen

Verbinde deine App mit einem TigerSystem-Konto

Das TigerSystem-Konto verbindet jede App und jedes Gerät. Deine App, dein Gerät oder Home Assistant greift nativ über Firebase darauf zu: Anmeldung mit den eigenen Zugangsdaten des Nutzers, Lesen seiner Spulen und Regale in Firestore, Zurückschreiben der Gewichte.

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 }
Gültigkeitsdauer eines idToken: vor Ablauf erneuern
1 hGültigkeitsdauer eines idToken: vor Ablauf erneuern
Empfohlenes minimales Abfrageintervall
5 minEmpfohlenes minimales Abfrageintervall
Mindestvorlauf für eine Abkündigung, bevor ein Feld umbenannt oder entfernt wird
3 MonateMindestvorlauf für eine Abkündigung, bevor ein Feld umbenannt oder entfernt wird
Lizenz jedes Code-Snippets: in dein Projekt einfügen, ohne Namensnennung
Apache-2.0Lizenz jedes Code-Snippets: in dein Projekt einfügen, ohne Namensnennung

So verbindet sich ein Client mit TigerSystem

Jeder Client folgt denselben vier Schritten: die öffentliche Firebase-Konfiguration abrufen, sich als Nutzer anmelden, die Firestore-REST-API mit dem Token des Nutzers aufrufen und dieses Token aktuell halten.

Öffentliche Konfiguration abrufen

Ein einziger GET liefert die Konfiguration des Firebase-Projekts. Der apiKey ist absichtlich öffentlich: Er identifiziert das Projekt, nicht den Aufrufer. Speichere ihn zwischen; eine wöchentliche Aktualisierung genügt.

Als Nutzer anmelden

E-Mail und Passwort des Nutzers liefern eine UID, ein idToken für 1 Stunde und ein refreshToken. Google Sign-In benötigt einen Browser, daher verwenden Clients ohne Oberfläche ein Passwort.

Firestore lesen und schreiben

Sende das idToken als Bearer-Token. Spulen liegen in users/{uid}/inventory, Regale in users/{uid}/racks; Gewichte sind Nettogramm, Datumsangaben Unix-Millisekunden.

Kein Dienstkonto

Jeder Client meldet sich mit den eigenen Zugangsdaten des Endnutzers an. Liefere niemals das firebase-admin SDK oder einen Admin-Schlüssel in einem Drittanbieter-Client aus.

Die Security Rules entscheiden

Die Firestore Security Rules prüfen jede Anfrage gegen den angemeldeten Nutzer: Eigentümer lesen und schreiben ihre Dokumente, Freunde dürfen Inventar und Regale lesen, alles andere wird abgelehnt.

Ein öffentlicher Vertrag

Dokumentpfade und Feldnamen bleiben stabil. Das Umbenennen oder Entfernen eines Felds wird mindestens 3 Monate vorher im Changelog angekündigt; neue Felder kommen immer nur hinzu.

Home Assistant

Ein Entwurf für eine Custom Component, die einen Sensor pro Spule bereitstellt, mit dem Restgewicht in Gramm als Zustand. Der Leitfaden behandelt auch die Inventare von Freunden, Paginierung und Token-Speicherung.

The TigerSystem apps and devices around one account

Eine ESP32-Waage oder ein NFC-Gerät

Eine Spule anhand der gescannten RFID-UID suchen (uid, dann twin_uid), das Nettogewicht berechnen und weight_available und last_update mit einer Update-Maske schreiben. Der Leitfaden endet mit einem vollständigen ESP32-Sketch (WiFi, ArduinoJson).

Tiger NFC Connect on a phone

Ein Python-Skript

Ein minimaler Python-Client auf Basis von Pyrebase4: Er meldet sich an, listet deine Spulen auf und zeigt, wie viele Spulen jeder Freund hat. Der Leitfaden enthält das gesamte Skript und einen Beispiellauf.

Fragen

Brauche ich ein Dienstkonto oder einen Admin-Schlüssel?

Nein. Jeder Client meldet sich mit der eigenen TigerSystem-E-Mail und dem Passwort des Endnutzers an, und die Firestore Security Rules entscheiden, was dieser Nutzer lesen oder schreiben darf. Es gibt keinen gemeinsamen Admin-Schlüssel, und das firebase-admin SDK darf niemals in einem Drittanbieter-Client verwendet werden.

Warum ist der Firebase-apiKey öffentlich?

Der apiKey identifiziert das Firebase-Projekt, nicht den Aufrufer. Ohne gültiges idToken, das man durch Anmeldung als echter Nutzer erhält, gewährt er keinerlei Zugriff; die Zugriffskontrolle erfolgt über die Authentifizierung und die Security Rules.

Können sich Home Assistant oder ein ESP32 mit Google anmelden?

Nicht direkt: Google Sign-In erfordert eine Browser-Weiterleitung. Ein Nutzer, der bisher nur Google verwendet hat, legt zuerst über die Passwort-vergessen-Funktion von Tiger Studio Manager 2 oder Tiger NFC Connect ein Passwort für sein TigerSystem-Konto fest und meldet sich dann mit E-Mail und Passwort an.

Wie oft darf meine Integration abfragen?

Höchstens alle 5 Minuten für einen Sensor, alle 15 Minuten für eine Regalübersicht und nie in kürzeren Abständen als 30 Sekunden. Eine Waage schreibt nur, wenn sich ein Gewicht ändert. Listenabfragen sollten ein Limit angeben: 200 für das Inventar, 50 für Regale.

Kann meine Integration die Spulen eines Freundes lesen?

Ja, nur lesend. Sind zwei Nutzer befreundet, hat jeder unter users/{uid}/friends ein Dokument für den anderen, und die Regeln erlauben einem Freund, Inventar und Regale zu lesen. Jeder der beiden kann die Freundschaft jederzeit beenden, was den Zugriff sofort aufhebt.

Starte deine Integration

Wähle den Leitfaden für deine Plattform und folge ihm von der Anmeldung bis zum ersten Lesezugriff. Was dokumentiert ist, ist das, was bereitgestellt ist.

Integration starten