Nodes and media

Kameraaufnahme

OpenClaw unterstützt Kameraaufnahmen für Agenten-Workflows auf gekoppelten iOS-, Android- und macOS-Nodes: Nehmen Sie über Gateway node.invoke ein Foto (jpg) oder einen kurzen Videoclip (mp4, optional mit Audio) auf.

Jeder Kamerazugriff wird durch eine benutzergesteuerte Einstellung für die jeweilige Plattform geregelt.

iOS-Node

iOS-Benutzereinstellung

  • iOS-Einstellungen-Tab → CameraAllow Camera (camera.enabled).
    • Standard: ein (ein fehlender Schlüssel wird als aktiviert behandelt).
    • Wenn ausgeschaltet: camera.*-Befehle geben CAMERA_DISABLED zurück.

iOS-Befehle (über Gateway node.invoke)

  • camera.list

    • Antwortnutzlast: devices — Array aus { id, name, position, deviceType }.
  • camera.snap

    • Parameter:
      • facing: front|back (Standard: front)
      • maxWidth: Zahl (optional; Standard 1600)
      • quality: 0..1 (optional; Standard 0.9, auf [0.05, 1.0] begrenzt)
      • format: derzeit jpg
      • delayMs: Zahl (optional; Standard 0, intern auf 10000 begrenzt)
      • deviceId: Zeichenfolge (optional; aus camera.list)
    • Antwortnutzlast: format: "jpg", base64, width, height.
    • Nutzlastbegrenzung: Fotos werden erneut komprimiert, damit die Base64-codierte Nutzlast unter 5MB bleibt.
  • camera.clip

    • Parameter:
      • facing: front|back (Standard: front)
      • durationMs: Zahl (Standard 3000, auf [250, 60000] begrenzt)
      • includeAudio: boolescher Wert (Standard true)
      • format: derzeit mp4
      • deviceId: Zeichenfolge (optional; aus camera.list)
    • Antwortnutzlast: format: "mp4", base64, durationMs, hasAudio.

iOS-Vordergrundanforderung

Wie bei canvas.* erlaubt der iOS-Node camera.*-Befehle nur im Vordergrund. Aufrufe im Hintergrund geben NODE_BACKGROUND_UNAVAILABLE zurück.

CLI-Hilfsfunktion

Am einfachsten erhalten Sie Mediendateien über die CLI-Hilfsfunktion. Sie schreibt die decodierten Medien in eine temporäre Datei und gibt den Speicherpfad aus.

bash
openclaw nodes camera snap --node <id>                 # Standard: Front- + Rückkamera (2 MEDIA-Zeilen)openclaw nodes camera snap --node <id> --facing frontopenclaw nodes camera clip --node <id> --duration 3000openclaw nodes camera clip --node <id> --no-audio

nodes camera snap verwendet standardmäßig --facing both und nimmt sowohl mit der Front- als auch mit der Rückkamera auf, damit der Agent beide Ansichten erhält. Verwenden Sie --device-id mit einer einzelnen expliziten Ausrichtung (both wird abgelehnt, wenn --device-id gesetzt ist). Ausgabedateien sind temporär (im temporären Verzeichnis des Betriebssystems), sofern Sie keinen eigenen Wrapper erstellen.

Android-Node

Android-Benutzereinstellung

  • Android-Einstellungsdialog → CameraAllow Camera (camera.enabled).
    • Bei Neuinstallationen ist die Einstellung standardmäßig ausgeschaltet. Bestehende Installationen, die älter als diese Einstellung sind, werden auf ein migriert, damit durch Upgrades ein zuvor funktionierender Kamerazugriff nicht unbemerkt verloren geht.
    • Wenn ausgeschaltet: camera.*-Befehle geben CAMERA_DISABLED: enable Camera in Settings zurück.

Berechtigungen

  • CAMERA ist sowohl für camera.snap als auch für camera.clip erforderlich; eine fehlende oder verweigerte Berechtigung gibt CAMERA_PERMISSION_REQUIRED zurück.
  • RECORD_AUDIO ist für camera.clip erforderlich, wenn includeAudio auf true gesetzt ist; eine fehlende oder verweigerte Berechtigung gibt MIC_PERMISSION_REQUIRED zurück.

Die App fordert nach Möglichkeit Laufzeitberechtigungen an.

Android-Vordergrundanforderung

Wie bei canvas.* erlaubt der Android-Node camera.*-Befehle nur im Vordergrund. Aufrufe im Hintergrund geben NODE_BACKGROUND_UNAVAILABLE: command requires foreground zurück.

Android-Befehle (über Gateway node.invoke)

  • camera.list

    • Antwortnutzlast: devices — Array aus { id, name, position, deviceType }.
  • camera.snap

    • Parameter: facing (front|back, Standard front), quality (Standard 0.95, auf [0.1, 1.0] begrenzt), maxWidth (Standard 1600), deviceId (optional; eine unbekannte ID schlägt mit INVALID_REQUEST fehl).
    • Antwortnutzlast: format: "jpg", base64, width, height.
    • Nutzlastbegrenzung: erneute Komprimierung, damit Base64 unter 5MB bleibt (dasselbe Budget wie bei iOS).
  • camera.clip

    • Parameter: facing (Standard front), durationMs (Standard 3000, auf [200, 60000] begrenzt), includeAudio (Standard true), deviceId (optional).
    • Antwortnutzlast: format: "mp4", base64, durationMs, hasAudio.
    • Nutzlastbegrenzung: Die rohe MP4-Datei ist vor der Base64-Codierung auf 18MB begrenzt; zu große Clips schlagen mit PAYLOAD_TOO_LARGE fehl (verringern Sie durationMs und versuchen Sie es erneut).

macOS-App

macOS-Benutzereinstellung

Die macOS-Begleit-App bietet ein Kontrollkästchen:

  • Settings → General → Allow Camera (openclaw.cameraEnabled).
    • Standard: aus.
    • Wenn ausgeschaltet: Kameraanfragen geben CAMERA_DISABLED: enable Camera in Settings zurück.

CLI-Hilfsfunktion (Node-Aufruf)

Verwenden Sie die Haupt-CLI openclaw, um Kamerabefehle auf dem macOS-Node aufzurufen.

bash
openclaw nodes camera list --node <id>                     # Kamera-IDs auflistenopenclaw nodes camera snap --node <id>                     # gibt den Speicherpfad ausopenclaw nodes camera snap --node <id> --max-width 1280openclaw nodes camera snap --node <id> --delay-ms 2000openclaw nodes camera snap --node <id> --device-id <id>openclaw nodes camera clip --node <id> --duration 10s       # gibt den Speicherpfad ausopenclaw nodes camera clip --node <id> --duration-ms 3000   # gibt den Speicherpfad aus (veraltetes Flag)openclaw nodes camera clip --node <id> --device-id <id>openclaw nodes camera clip --node <id> --no-audio
  • openclaw nodes camera snap verwendet standardmäßig maxWidth=1600, sofern dies nicht überschrieben wird.
  • camera.snap wartet nach dem Aufwärmen und Stabilisieren der Belichtung delayMs (Standard 2000ms, auf [0, 10000] begrenzt), bevor die Aufnahme erfolgt.
  • Fotonutzlasten werden erneut komprimiert, damit Base64 unter 5MB bleibt.

Sicherheit und praktische Grenzen

  • Der Zugriff auf Kamera und Mikrofon löst die üblichen Berechtigungsabfragen des Betriebssystems aus (und erfordert Verwendungsbeschreibungen in Info.plist).
  • Videoclips sind auf 60s begrenzt, um übergroße Node-Nutzlasten zu vermeiden (Base64-Overhead zuzüglich Nachrichtenlimits).

macOS-Bildschirmvideo (Betriebssystemebene)

Verwenden Sie für Bildschirmvideos (nicht für Kameraaufnahmen) die macOS-Begleit-App:

bash
openclaw nodes screen record --node <id> --duration 10s --fps 15   # gibt den Speicherpfad aus

Erfordert unter macOS die Berechtigung Screen Recording (TCC).

Verwandte Themen

Was this useful?
On this page

On this page