Standortbefehl (Nodes)

Kurzfassung

  • location.get ist ein Node-Befehl (über node.invoke).
  • Standardmäßig aus.
  • Android-App-Einstellungen verwenden einen Selektor: Aus / Bei Nutzung.
  • Separater Schalter: Präziser Standort.

Warum ein Selektor (nicht nur ein Schalter)

OS-Berechtigungen sind mehrstufig. Wir können einen Selektor in der App anbieten, aber das OS entscheidet über die tatsächliche Berechtigung.

  • iOS/macOS zeigen möglicherweise Bei Nutzung oder Immer in Systemaufforderungen/Einstellungen an.
  • Die Android-App unterstützt derzeit nur Vordergrund-Standort.
  • Präziser Standort ist eine separate Berechtigung (iOS 14+ „Präzise”, Android „fein” vs. „grob”).

Der Selektor in der UI bestimmt den angeforderten Modus; die tatsächliche Berechtigung liegt in den OS-Einstellungen.

Einstellungsmodell

Pro Node-Gerät:

  • location.enabledMode: off | whileUsing
  • location.preciseEnabled: bool

UI-Verhalten:

  • Die Auswahl von whileUsing fordert Vordergrund-Berechtigung an.
  • Wenn das OS die angeforderte Stufe verweigert, wird auf die höchste erteilte Stufe zurückgesetzt und der Status angezeigt.

Berechtigungs-Mapping (node.permissions)

Optional. macOS-Node meldet location über die Berechtigungs-Map; iOS/Android können es weglassen.

Befehl: location.get

Aufgerufen über node.invoke.

Parameter (Vorschlag):

{
  "timeoutMs": 10000,
  "maxAgeMs": 15000,
  "desiredAccuracy": "coarse|balanced|precise"
}

Antwort-Payload:

{
  "lat": 48.20849,
  "lon": 16.37208,
  "accuracyMeters": 12.5,
  "altitudeMeters": 182.0,
  "speedMps": 0.0,
  "headingDeg": 270.0,
  "timestamp": "2026-01-03T12:34:56.000Z",
  "isPrecise": true,
  "source": "gps|wifi|cell|unknown"
}

Fehler (stabile Codes):

  • LOCATION_DISABLED: Selektor ist aus.
  • LOCATION_PERMISSION_REQUIRED: Berechtigung für angeforderten Modus fehlt.
  • LOCATION_BACKGROUND_UNAVAILABLE: App ist im Hintergrund, aber nur „Bei Nutzung” erlaubt.
  • LOCATION_TIMEOUT: kein Fix in der verfügbaren Zeit.
  • LOCATION_UNAVAILABLE: Systemfehler / keine Provider.

Hintergrundverhalten

  • Die Android-App verweigert location.get im Hintergrund.
  • Halte OpenClaw geöffnet, wenn du auf Android den Standort abfragst.
  • Andere Node-Plattformen können sich unterschiedlich verhalten.

Modell-/Tool-Integration

  • Tool-Oberfläche: nodes-Tool fügt die location_get-Aktion hinzu (Node erforderlich).
  • CLI: openclaw nodes location get --node <id>.
  • Agent-Richtlinien: nur aufrufen, wenn der Benutzer Standort aktiviert hat und den Umfang versteht.

UX-Texte (Vorschlag)

  • Aus: „Standortfreigabe ist deaktiviert.”
  • Bei Nutzung: „Nur wenn OpenClaw geöffnet ist.”
  • Präzise: „Präzisen GPS-Standort verwenden. Ausschalten, um ungefähren Standort zu teilen.”