Ereignisse & Überwachung
Der Dienst sendet Systemereignisse über eine dedizierte, schreibgeschützte WebSocket auf Port 10020. Ereignisse melden Sicherheitsauslöser, Geräteverbindungen, Batteriewarnungen, Änderungen am Sitzungslebenszyklus und Anomalien der Regelrate.
Standard-URL: ws://localhost:10020
Aufbau von JSON-Ereignissen
{
"name": "device-safety-triggered",
"category": "device",
"level": "warning",
"data": { "device_family": "inverse", "device_id": "049D", … },
"message": "FOD stage changed: guard -> hard"
}
| Feld | Typ | Beschreibung |
|---|---|---|
name | string | Stabiler Ereignisbezeichner (zum Filtern bzw. Umschalten verwenden) |
category | string | device, session, system |
level | string | info, notice, warning, error, critical, panic |
data | object | Ereignisspezifische Nutzlast |
message | string | Lesbare Beschreibung |
Ereignistypen
Geräteereignisse
| Name | Level | Wann |
|---|---|---|
device-connected | info | Ein neues Gerät wurde erkannt und ist betriebsbereit |
device-disconnected | warning | Ein Gerät ist verloren gegangen (abgezogen oder Zeitüberschreitung) |
device-battery-low | warning | Akkustand des kabellosen VerseGrip unter dem Schwellenwert |
device-battery-critical | error | Akkustand des kabellosen VerseGrip kritisch niedrig |
device-sleep | info | VerseGrip (kabellos) ist in den Ruhemodus gewechselt |
device-busy | warning | Gerät wird von einer anderen Sitzung verwendet |
device-connection-loop | warning | Wiederholte Verbindungs- und Trennungszyklen an einem Anschluss erkannt |
Sicherheitsereignisse
| Name | Level | Wann |
|---|---|---|
device-safety-triggered | variiert | Sicherheitsmeldung der Firmware (siehe unten) |
device-calibration-failed | warning | Kalibrierung des Inkwell ausgelöst, der Stift ist jedoch nicht verwendbar |
Untertypen von device-safety-triggered
Das Feld safety_type in den Ereignisdaten gibt an, was passiert ist:
safety_type | Level | Bedeutung |
|---|---|---|
ebrake_triggered | error | Notbremse ausgelöst — Gerät gesperrt |
ebrake_released | notice | Notbremse gelöst |
fod_stage_changed | warning / info | FOD-Sicherheitsstufe hat die Grenze zwischen niedrigem und hohem Risiko überschritten |
stall_detected | warning | Motorblockade erkannt |
stability_ceiling | warning | Stabilitätsobergrenze erreicht |
Gründe für device-calibration-failed
reason | Bedeutung |
|---|---|
pen_not_connected | Überhaupt kein Verse Grip ist verbunden |
pen_asleep | Der kabellose Verse Grip ist gekoppelt, befindet sich aber im Ruhemodus |
pen_not_attached | Der Verse Grip ist betriebsbereit, aber der Hall-Sensor liegt unter dem Schwellenwert |
Sitzungsereignisse
| Name | Level | Wann |
|---|---|---|
session-started | notice | Eine WebSocket-Sitzung wurde erstellt |
session-stopped | notice | Eine WebSocket-Sitzung wurde beendet |
device-low-control-rate | warning | Die Steuerrate der Sitzung ist unter den empfohlenen Schwellenwert gefallen |
device-critical-control-rate | error | Die Steuerrate ist auf einen kritischen Wert gefallen |
Systemereignisse
| Name | Level | Wann |
|---|---|---|
system-rate-report | info | Periodischer Bericht zur Taktrate der Hauptschleife |
Ereignisse abhören
Verwenden Sie das Events-Tutorial für einen sofort lauffähigen Python Listener mit Filterung nach Level, Namensmustern und Ausschlüssen:
# All events
python 10-haply-inverse-events.py
# Only warnings and above
python 10-haply-inverse-events.py --level warning
# Only device events
python 10-haply-inverse-events.py --name "device-*"
# Exclude battery noise
python 10-haply-inverse-events.py --exclude "*battery*"