Ausreißer beim Datenverbrauch per Webhook erkennen

Flotten & Entwickler Veröffentlicht

Mit den Verbrauchs-Webhooks von ThingSIM erfahren, wenn eine SIM-Karte 80 % ihres Datenvolumens überschreitet, bevor ein fehlerhaftes Gerät sie pausiert.

Ein Gerät, das plötzlich weit mehr Daten verbraucht als sonst, will Ihnen etwas sagen: eine Kamera, deren Bewegungszone jetzt eine belebte Straße erfasst, ein Router, der auf Mobilfunk umgeschaltet hat und dort geblieben ist, ein Firmware-Update in einer Endlosschleife oder gelegentlich ein kompromittiertes Gerät. Die Webhooks von ThingSIM melden das Ihren eigenen Systemen in dem Moment, in dem es passiert. So können Sie handeln, bevor die SIM-Karte ihr Datenvolumen erreicht und pausiert.

Die Ereignisse rund um den Verbrauch

Ereignis Wann es gesendet wird
iot.sim.usage_threshold Eine SIM-Karte überschreitet 80 % ihres Datenvolumens im Abrechnungszeitraum, und erneut bei 100 %
iot.sim.allowance_reached Eine SIM-Karte hat ihr gesamtes Datenvolumen verbraucht und ist pausiert
iot.sim.allowance_reset Ein neuer Zeitraum hat begonnen; am Datenvolumen pausierte SIM-Karten laufen weiter
iot.sim.plan_changed Eine SIM-Karte wurde in einen anderen Tarif verschoben

Das Ereignis bei 80 % ist die nützliche Frühwarnung: Es bleibt noch Zeit, sich das Gerät anzusehen oder die SIM-Karte in einen größeren Tarif zu verschieben, bevor sie pausiert. Der Katalog der Benachrichtigungen listet jedes Ereignis und seinen Inhalt.

Einen Webhook anlegen

Webhooks legen Sie im Portal oder über die API an. Geben Sie eine HTTPS-URL unter einer öffentlichen Adresse und die gewünschten Ereignistypen an:

curl
curl -X POST "https://partners.netavo.com/api/v1/platform/webhooks" \
  -H "Authorization: Bearer $THINGSIM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/thingsim/events",
    "description": "Usage alerts",
    "types": ["iot.sim.usage_threshold", "iot.sim.allowance_reached"]
  }'

Mit POST /v1/platform/webhooks/{webhookId}/test senden Sie sich ein Testereignis, um den Endpunkt zu prüfen, bevor Sie sich auf ihn verlassen.

Empfangen und prüfen

Jedes Ereignis kommt als HTTPS-POST mit JSON an Ihre URL. Antworten Sie innerhalb von 10 Sekunden mit einem beliebigen 2xx und erledigen Sie die eigentliche Arbeit danach; alles andere wird erneut zugestellt. Jede Anfrage trägt einen Header Webhook-Signature mit einem Zeitstempel t und einer Signatur v1: dem HMAC-SHA256 aus Zeitstempel, einem Punkt und dem unveränderten Request-Body, berechnet mit Ihrem Signing Secret als Schlüssel. Prüfen Sie die Signatur gegen den Body genau so, wie er angekommen ist, und zwar vor dem Parsen:

Python
import hmac, hashlib, time

def verify(raw_body: bytes, header: str, secret: str, tolerance: int = 300) -> bool:
    parts = dict(p.strip().split("=", 1) for p in header.split(",") if "=" in p)
    t, sig = parts.get("t"), parts.get("v1")
    if not t or not sig or abs(time.time() - int(t)) > tolerance:
        return False
    signed = t.encode() + b"." + raw_body
    expected = hmac.new(secret.encode(), signed, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, sig)

Die Entwicklerübersicht zeigt dieselbe Prüfung in JavaScript und C# und erklärt den Wechsel des Signing Secrets.

Was tun, wenn die Warnung kommt

Eine einfache, wirksame Reaktion auf eine 80-%-Warnung:

  1. Das Gerät ansehen. Vergleichen Sie seinen Verbrauch mit ähnlichen Geräten: Tut es etwas Neues?
  2. Die Ursache beheben, wenn es ein Fehler ist, etwa Bewegungszonen, Upload-Einstellungen oder ein hängendes Update.
  3. Die SIM-Karte upgraden, wenn der Verbrauch berechtigt ist, mit POST /v1/iot/sims/{iccid}/plan. Ein Upgrade wirkt sofort.
  4. Die SIM-Karte pausieren, wenn das Gerät kompromittiert wirkt, mit POST /v1/iot/sims/{iccid}/pause, und dann der Sache nachgehen. Siehe ein Gerät mit öffentlicher IP-Adresse absichern.

Haben Sie nur wenige SIM-Karten, erledigen die Verbrauchswarnungen im Portal dieselbe Aufgabe ganz ohne Code; siehe eine kleine SIM-Flotte verwalten.

Häufige Fragen

Wann wird das Ereignis zum Verbrauchsschwellenwert gesendet?

Wenn eine SIM-Karte 80 % ihres Datenvolumens im Abrechnungszeitraum überschreitet, und erneut bei 100 %.

Was passiert, wenn mein Endpunkt nicht erreichbar ist?

Fehlgeschlagene Zustellungen werden in wachsenden Abständen wiederholt. Scheitert ein Webhook etwa einen Tag lang, wird er abgeschaltet, und Ihre anderen Webhooks erhalten ein Ereignis platform.webhook.disabled.

Brauche ich die API für Verbrauchswarnungen?

Nein. Verbrauchswarnungen können Sie im Portal einrichten; Webhooks dienen dazu, dieselben Ereignisse an Ihre eigenen Systeme zu senden.