Nodes and media
Konum komutu
Özet
location.get,node.invokeveyaopenclaw nodes location getaracılığıyla çağrılan bir Node komutudur.- Varsayılan olarak kapalıdır.
- Android üçüncü taraf derlemeleri bir seçici kullanır: Kapalı / Kullanırken / Her Zaman. Play derlemelerinde Kapalı / Kullanırken seçenekleri bulunmaya devam eder.
- Kesin Konum ayrı bir açma/kapatma seçeneğidir.
Neden yalnızca anahtar değil, seçici kullanılıyor?
İşletim sistemi konum izinleri birden fazla düzeye sahiptir. Kesin konum da ayrı bir işletim sistemi iznidir (iOS 14+ sürümünde "Precise", Android'de "fine" ve "coarse"). Uygulama içi seçici, istenen modu belirler ancak verilecek gerçek izne yine işletim sistemi karar verir.
Ayarlar modeli
Her Node cihazı için:
location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled: bool
Kullanıcı arayüzü davranışı:
whileUsingseçildiğinde ön plan izni istenir.- Android üçüncü taraf derlemesinde
alwaysseçildiğinde önce ön plan izni istenir, arka plan erişimi açıklanır ve ardından ayrı Allow all the time izni için Android uygulama ayarları açılır. - Android Play derlemeleri arka plan konum iznini bildirmez veya
alwaysseçeneğini göstermez. - İşletim sistemi istenen düzeyi reddederse uygulama, izin verilen en yüksek düzeye geri döner ve durumu gösterir.
İzin eşlemesi (node.permissions)
İsteğe bağlıdır. macOS Node'u, node.list/node.describe üzerindeki permissions eşlemesi aracılığıyla location değerini bildirir; iOS/Android bunu dahil etmeyebilir.
Komut: location.get
node.invoke veya CLI yardımcısı aracılığıyla çağrılır:
openclaw nodes location get --node <idOrNameOrIp>openclaw nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000Parametreler:
{ "timeoutMs": 10000, "maxAgeMs": 15000, "desiredAccuracy": "coarse|balanced|precise"}CLI bayrakları doğrudan eşlenir: --location-timeout -> timeoutMs, --max-age -> maxAgeMs, --accuracy -> desiredAccuracy.
Yanıt yükü:
{ "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"}Hatalar (kararlı kodlar):
LOCATION_DISABLED: seçici kapalıdır.LOCATION_PERMISSION_REQUIRED: istenen mod için izin eksiktir.LOCATION_BACKGROUND_UNAVAILABLE: uygulama arka plandadır ancak yalnızca Kullanırken izni verilmiştir.LOCATION_TIMEOUT: zamanında konum belirlenemedi.LOCATION_UNAVAILABLE: sistem hatası oluştu veya sağlayıcı yok.
Arka plan davranışı
- Android üçüncü taraf derlemeleri, arka plandaki
location.getisteklerini yalnızca kullanıcıAlwaysseçeneğini belirlediyse ve Android arka plan konum izni verdiyse kabul eder. Mevcut kalıcı Node hizmeti,locationhizmet türünü ekler ve etkinkenLocation: Alwaysbilgisini açıkça gösterir. - Android Play derlemeleri ve
While Usingmodu, uygulama arka plandaykenlocation.getisteklerini reddeder. - Diğer Node platformları farklı davranabilir.
Linux Node ana makinesi
Paketle gelen Linux Node Plugin'i, Linux masaüstü uygulaması bulunmayan başsız ana makineler de dahil olmak üzere CLI openclaw node hizmetine location.get ekler. Konum varsayılan olarak kapalıdır. Plugin girdisi altında etkinleştirin ve ardından Node hizmetini yeniden başlatın:
{ plugins: { entries: { "linux-node": { config: { location: { enabled: true }, }, }, }, },}GeoClue2'yi ve where-am-i demosunu (Debian ve Ubuntu'da geoclue-2-demo) yükleyin. Node hizmeti kullanıcısına, ana makinenin GeoClue ilkesi ve yetkilendirme aracısı tarafından izin verilmelidir.
Plugin, bir dizi busctl çağrısı yerine where-am-i kullanır. GeoClue; istemci oluşturma, özellikler, başlatma, güncellemeler ve durdurma işlemlerini tek bir D-Bus istemci bağlantısına bağlar. Demo bu yaşam döngüsünü bir arada tutarken ayrı busctl alt süreçleri bunu yapmaz. Herhangi bir npm bağımlılığı eklenmez.
Linux; coarse, balanced ve precise değerlerini sırasıyla 4, 6 ve 8 GeoClue doğruluk düzeyleriyle eşler. maxAgeMs değerini döndürülen zaman damgasına göre doğrular. GeoClue demosu seçilen sağlayıcıyı göstermediğinden source değeri unknown olur; isPrecise yalnızca bildirilen doğruluk 100 metre veya daha iyiyse true olur.
Linux aynı kararlı hataları kullanır: LOCATION_DISABLED, LOCATION_TIMEOUT ve LOCATION_UNAVAILABLE.
Model/araç entegrasyonu
- Aracı aracı:
nodesaracınınlocation_geteylemi (Node gereklidir). - CLI:
openclaw nodes location get --node <id>. - Aracı yönergeleri: yalnızca kullanıcı konumu etkinleştirdiyse ve kapsamını anlıyorsa çağırın.
Kullanıcı deneyimi metni (önerilen)
- Kapalı: "Konum paylaşımı devre dışı."
- Kullanırken: "Yalnızca OpenClaw açıkken."
- Her Zaman: "OpenClaw arka plandayken istenen konum kontrollerine izin ver."
- Kesin: "Kesin GPS konumunu kullan. Yaklaşık konumu paylaşmak için kapatın."