Nodes and media
Locatiecommando
TL;DR
location.getis een Node-opdracht, aangeroepen vianode.invokeofopenclaw nodes location get.- Standaard uitgeschakeld.
- Android-builds van derden gebruiken een keuzelijst: Uit / Tijdens gebruik / Altijd. Play-builds blijven Uit / Tijdens gebruik.
- Precieze locatie is een afzonderlijke schakelaar.
Waarom een keuzelijst (en niet alleen een schakelaar)
Locatiemachtigingen van het besturingssysteem hebben meerdere niveaus. Precieze locatie is ook een afzonderlijke toestemming van het besturingssysteem (iOS 14+ 'Precies', Android 'nauwkeurig' versus 'globaal'). De keuzelijst in de app bepaalt de aangevraagde modus, maar het besturingssysteem bepaalt nog steeds welke toestemming daadwerkelijk wordt verleend.
Instellingenmodel
Per Node-apparaat:
location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled: bool
UI-gedrag:
- Als je
whileUsingselecteert, wordt toestemming voor gebruik op de voorgrond aangevraagd. - Als je
alwaysselecteert in de Android-build van derden, wordt eerst toestemming voor gebruik op de voorgrond aangevraagd, daarna wordt toegang op de achtergrond uitgelegd en vervolgens worden de Android-appinstellingen geopend voor de afzonderlijke toestemming Allow all the time. - Android Play-builds declareren geen machtiging voor locatie op de achtergrond en tonen
alwaysniet. - Als het besturingssysteem het aangevraagde niveau weigert, valt de app terug op het hoogste verleende niveau en toont deze de status.
Toewijzing van machtigingen (node.permissions)
Optioneel. De macOS-Node rapporteert location via de permissions-toewijzing op node.list/node.describe; iOS/Android kunnen dit weglaten.
Opdracht: location.get
Aangeroepen via node.invoke, of de CLI-helper:
openclaw nodes location get --node <idOrNameOrIp>openclaw nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000Parameters:
{ "timeoutMs": 10000, "maxAgeMs": 15000, "desiredAccuracy": "coarse|balanced|precise"}CLI-vlaggen worden rechtstreeks toegewezen: --location-timeout -> timeoutMs, --max-age -> maxAgeMs, --accuracy -> desiredAccuracy.
Antwoordpayload:
{ "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"}Fouten (stabiele codes):
LOCATION_DISABLED: de keuzelijst staat uit.LOCATION_PERMISSION_REQUIRED: de machtiging voor de aangevraagde modus ontbreekt.LOCATION_BACKGROUND_UNAVAILABLE: de app bevindt zich op de achtergrond, maar alleen Tijdens gebruik is toegestaan.LOCATION_TIMEOUT: niet tijdig een locatiebepaling beschikbaar.LOCATION_UNAVAILABLE: systeemfout of geen providers.
Gedrag op de achtergrond
- Android-builds van derden accepteren
location.getop de achtergrond alleen wanneer de gebruikerAlwaysheeft geselecteerd en Android locatiegebruik op de achtergrond heeft toegestaan. De bestaande permanente Node-service voegt het servicetypelocationtoe en maaktLocation: Alwayskenbaar zolang dit actief is. - Android Play-builds en de modus
While Usingweigerenlocation.getwanneer de app zich op de achtergrond bevindt. - Andere Node-platforms kunnen hiervan afwijken.
Linux-Node-host
De meegeleverde Linux Node-Plugin voegt location.get toe aan de CLI-service openclaw node, inclusief headless hosts zonder de Linux-desktopapp. Locatie is standaard uitgeschakeld. Schakel deze in onder de Plugin-vermelding en start daarna de Node-service opnieuw:
{ plugins: { entries: { "linux-node": { config: { location: { enabled: true }, }, }, }, },}Installeer GeoClue2 en de bijbehorende where-am-i-demo (geoclue-2-demo op Debian en Ubuntu). De gebruiker van de Node-service moet toestemming krijgen van het GeoClue-beleid en de autorisatieagent van de host.
De Plugin gebruikt where-am-i in plaats van een reeks aanroepen van busctl. GeoClue koppelt het maken van de client, eigenschappen, starten, updates en stoppen aan één D-Bus-clientverbinding; de demo houdt die levenscyclus bijeen, terwijl afzonderlijke busctl-subprocessen dat niet doen. Er wordt geen npm-afhankelijkheid toegevoegd.
Linux wijst coarse, balanced en precise toe aan de GeoClue-nauwkeurigheidsniveaus 4, 6 en 8. Het valideert maxAgeMs aan de hand van het geretourneerde tijdstempel. De demo van GeoClue stelt de geselecteerde provider niet beschikbaar, dus source is unknown; isPrecise is alleen waar wanneer de gerapporteerde nauwkeurigheid 100 meter of beter is.
Linux gebruikt dezelfde stabiele fouten: LOCATION_DISABLED, LOCATION_TIMEOUT en LOCATION_UNAVAILABLE.
Model-/toolingintegration
- Agenttool: de actie
location_getvan de toolnodes(Node vereist). - CLI:
openclaw nodes location get --node <id>. - Agentrichtlijnen: roep dit alleen aan wanneer de gebruiker locatie heeft ingeschakeld en de reikwijdte begrijpt.
UX-tekst (suggestie)
- Uit: "Locatie delen is uitgeschakeld."
- Tijdens gebruik: "Alleen wanneer OpenClaw geopend is."
- Altijd: "Sta aangevraagde locatiecontroles toe terwijl OpenClaw zich op de achtergrond bevindt."
- Precies: "Gebruik een precieze GPS-locatie. Schakel dit uit om een globale locatie te delen."