Zum Inhalt springen

Datenmodelle

Die drei PushGo-Modelle beschreiben unterschiedliche fachliche Situationen. Wenn Sie das richtige Modell wählen, bleiben Client-Darstellung, Verlauf, Zustandsabgleich und Automatisierung nachvollziehbar.

Was Sie ausdrücken möchtenModellWarum
„Etwas ist passiert, bitte einmal benachrichtigen.“MessageEs gibt keinen dauerhaften Zustand. Jede Nachricht steht für sich.
„Etwas beginnt, verändert sich und endet später.“EventEin event_id kann mehrfach aktualisiert und anschließend geschlossen werden.
„Dieses Gerät, dieser Dienst, dieser Raum oder diese Aufgabe hat einen aktuellen Zustand.“ThingEin thing_id kann über längere Zeit aktualisiert werden.
„Bei einer bestimmten Entität ist eine Warnung aufgetreten.“Thing + MessageThing identifiziert die Entität, Message protokolliert die Warnung.
„Eine bestimmte Entität durchläuft einen Prozess.“Thing + EventThing identifiziert das Objekt, Event protokolliert den Lebenszyklus.

Message ist das einfachste Benachrichtigungsmodell. Verwenden Sie es für Inhalte, die später nicht zusammengeführt, aktualisiert oder geschlossen werden müssen.

  • Festplattennutzung über einem Schwellwert.
  • Abgeschlossenes Backup.
  • Gesunkener Preis.
  • Kamera erkennt Bewegung und liefert ein Bild mit.
  • Build, Veröffentlichung und Abschluss eines Deployments.
  • Aktuellen Zustand eines Servers, Sensors oder Raums.
  • Dashboard-Werte, die immer wieder überschrieben werden.
GruppeFelder
Authentifizierung und Routingchannel_id, password, op_id, thing_id
Anzeigetitle, body, severity, url, images, tags
Zeit und Sicherheitoccurred_at, ttl, ciphertext
Erweiterungenmetadata
{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"title": "Backup completed",
"body": "The daily NAS backup has finished.",
"severity": "normal"
}

Event beschreibt einen Prozess. Beim Erstellen erhalten Sie ein event_id; spätere Updates und der abschließende Close-Aufruf verwenden dieselbe ID.

  • CI/CD-Deployment: gestartet, gebaut, veröffentlicht, erfolgreich oder fehlgeschlagen.
  • Incident-Bearbeitung: erkannt, untersucht, behoben.
  • Tür- oder Fensterzustand: geöffnet und später geschlossen.
  • Länger laufende Aufgaben: Transcoding, Synchronisierung, Modelltraining.
/event/create -> event_id
|
+-> /event/update can be called many times
|
+-> /event/close ends the event
GruppeFelder
Authentifizierung und Routingchannel_id, password, op_id, thing_id
Lebenszyklusevent_id, event_time, started_at, ended_at
Anzeigetitle, description, status, message, severity, tags, images
Erweiterungenattrs, metadata, ciphertext
  • Verwenden Sie kurze status-Werte wie running, degraded, success oder failed.
  • Verwenden Sie message für den aktuellen Schritt, zum Beispiel „Image pushed“.
  • event_time beschreibt den Zeitpunkt des jeweiligen Updates.
  • started_at gehört zum Start des gesamten Events und typischerweise zum Create-Aufruf.
  • ended_at gehört zum Ende des gesamten Events und typischerweise zum Close-Aufruf.

Thing beschreibt ein Objekt, das über längere Zeit existiert. Sein Nutzen entsteht dadurch, dass immer dieselbe Entität aktualisiert wird, anstatt bei jeder Änderung eine unabhängige Benachrichtigung zu erzeugen.

  • Heim-NAS, Server oder Netzwerkdienst.
  • Raum, Sensor, Kamera oder Schloss.
  • Länger laufendes Asset oder Aufgabe.
  • Alles, dessen aktueller Zustand sichtbar bleiben soll.
/thing/create -> thing_id
|
+-> /thing/update can be called many times
|
+-> /thing/archive inactive but history remains
|
+-> /thing/delete removed or retired
GruppeFelder
Authentifizierung und Routingchannel_id, password, op_id
Identität und Anzeigething_id, title, description, tags, primary_image, images
Zeitcreated_at, observed_at, deleted_at
Externe Systemeexternal_ids, location_type, location_value
Zustandattrs, metadata, ciphertext
  • Verwenden Sie title für einen lesbaren Namen, zum Beispiel „Home NAS“.
  • Verwenden Sie attrs für veränderliche Werte wie CPU, Temperatur oder Online-Status.
  • Verwenden Sie metadata für Zusatzdaten, die normalerweise nicht direkt angezeigt werden.
  • Verwenden Sie external_ids, um IDs aus Systemen wie Home Assistant zuzuordnen.
KombinationMuster
Thing + MessageAuf der Entität „Home NAS“ tritt die Warnung „Disk almost full“ auf.
Thing + EventAuf der Entität „Production database“ läuft ein Event zu Replikationsverzögerungen.
Event + MessageEvent protokolliert den Lebenszyklus, Message sendet an einem kritischen Punkt eine deutliche Warnung.

Wenn Sie unsicher sind, beginnen Sie mit Message. Sobald ein Skript wiederholt „gestartet/aktualisiert/beendet“ oder „aktueller Wert geändert“ sendet, wechseln Sie zu Event oder Thing.