askill
location-awareness

location-awarenessSafety 90Repository

Location awareness via privacy-friendly GPS tracking (Home Assistant, OwnTracks, GPS Logger). Set location-based reminders and ask about movement history, travel time, and nearby POIs.

2 stars
1.2k downloads
Updated 2/7/2026

Package Files

Loading files...
SKILL.md

Location Awareness

This skill provides commands to execute. When the user asks about location, RUN the appropriate command below.

⚠️ IMPORTANT: All commands use scripts/location.sh

Every command must be run via scripts/location.sh. Example:

User asks: "How long to walk home?"
You run:

scripts/location.sh eta home --mode walk

Output: 4.6 km, about 45 min walk
You reply with the output directly.

Do NOT run eta or other subcommands directly — they don't exist as standalone commands.

Quick Reference — What to Run

User saysRun this (copy exactly)Reply with
"Where am I?"scripts/location.sh statusZone name only
"Map" / "map link"scripts/location.sh herewegoJust the URL
"What are my coordinates?"scripts/location.sh statusLat/lon from output
"How long to walk home?"scripts/location.sh eta home --mode walkDistance + duration
"How long to bike to X?"scripts/location.sh eta X --mode bikeDistance + duration
"How far is X by car?"scripts/location.sh eta X --mode carDistance + duration
"Remind me to X when I get to Y"scripts/location.sh remind "X" YBrief confirm
"What reminders do I have?"scripts/location.sh remindersBullet list or "None"
"List my places"scripts/location.sh placesBullet list
"List places nearby"scripts/location.sh places --nearSorted by distance
"List my pubs downtown"scripts/location.sh places --region downtown --category pubFiltered list
"Save this spot as X"scripts/location.sh addplace "X"Confirm
"Delete place X"scripts/location.sh delplace XConfirm
"Disable the grocery rule"scripts/location.sh disable groceryConfirm
"List my geofence rules"scripts/location.sh geofencesBullet list
"When was I last at X?"scripts/location.sh history XDate/time
"Where have I been today?"scripts/location.sh history --days 1List of places
"Find me a cafe nearby"scripts/location.sh nearby cafePOI list with distances
"Any pubs within 1km?"scripts/location.sh nearby pub 1000Filtered POI list
"How long was I at work this week?"scripts/location.sh stats --days 7Hours per place

Response style: Terse. No preamble. No "Here's your location:". Just the answer.

All Commands

All via scripts/location.sh <command>:

CommandDescription
statusCurrent location, geofences inside, map link
herewegoJust the HERE WeGo map link
checkCheck for triggered actions/reminders (used by cron)
places [--near] [--region R] [--category C]List saved places
geofencesList all geofences with full details
remind <text> <place_id>Add one-shot location reminder
remindersList pending reminders
addplace <name> [radius] [--region R] [--category C]Save current location
editplace <id> [--name] [--radius] [--region] [--category] [--action] [--cooldown]Modify a place
delplace <id>Delete a place
enable <id> / disable <id>Toggle geofence on/off
history [place] [--days N]When was I last at a place?
nearby <category> [radius]Find nearby POIs (cafe, pub, restaurant, etc.)
stats [--days N]Time spent at each place, visit counts
proximity <text> <place/lat> [lon] [radius]Alert when approaching a location
eta <place> [--mode walk|bike|car]Travel time and distance to a place

Note: eta accepts saved place names, coordinates (lat,lon), or any place name (geocoded via OpenStreetMap, biased to current location).

Note: status returns the zone name if in a known place, otherwise reverse geocodes to a street address (e.g., "123 Main Street, Downtown").

Concepts

Geofences — Saved places with lat/lon, radius, and optional action. Persistent.

Reminders — One-shot alerts tied to a place. Deleted after delivery.

Region/Category — Optional tags for filtering (e.g., "downtown", "pub").


Setup (for administrators)

Provider Configuration

Edit scripts/config.json:

Home Assistant (default):

{
  "provider": "homeassistant",
  "homeassistant": {
    "url": "https://your-ha.example.com",
    "token": "your-long-lived-token",
    "entity_id": "device_tracker.phone"
  }
}

OwnTracks:

{
  "provider": "owntracks",
  "owntracks": {
    "url": "https://owntracks.example.com",
    "user": "username",
    "device": "phone"
  }
}

Generic HTTP:

{
  "provider": "http",
  "http": {
    "url": "https://your-api.com/location",
    "headers": {"Authorization": "Bearer token"}
  }
}

GPSLogger (file-based):

{
  "provider": "gpslogger",
  "gpslogger": {
    "file": "/path/to/location.json"
  }
}

Secrets support: "env:VAR", "pass:path", "cmd:command", or plain string.

Alternative: Set HA_URL and HA_TOKEN environment variables instead of editing config.json.

Output format: Most query commands output human-readable text by default. Add --json for JSON output (useful for scripting).

Travel Speeds

Customize walking/biking speeds for ETA calculations in scripts/config.json:

{
  "speeds_kmh": {
    "walk": 6,
    "bike": 15
  }
}

Geofence Config

Edit scripts/geofences.json:

{
  "geofences": [
    {
      "id": "grocery",
      "name": "Grocery Store",
      "lat": 40.7128,
      "lon": -74.0060,
      "radius_m": 30,
      "action": "shopping_tasks",
      "cooldown_hours": 4,
      "enabled": true,
      "region": "downtown",
      "category": "shop"
    }
  ],
  "location_reminders": [],
  "proximity_alerts": []
}

Cron Setup (Automatic Notifications)

For automatic location-based notifications, set up a systemd timer:

  1. Configure notification target (env var):
export CLAWDBOT_NOTIFY_TARGET="+1234567890"  # or @telegram_user, etc.
  1. Create systemd service (~/.config/systemd/user/location-check.service):
[Unit]
Description=Location check

[Service]
Type=oneshot
Environment=CLAWDBOT_NOTIFY_TARGET=+1234567890
ExecStart=%h/clawd/skills/location-awareness/scripts/location_cron.sh
  1. Create timer (~/.config/systemd/user/location-check.timer):
[Unit]
Description=Run location check every 5 minutes

[Timer]
OnBootSec=2min
OnUnitActiveSec=5min

[Install]
WantedBy=timers.target
  1. Enable: systemctl --user enable --now location-check.timer

Notifications use clawdbot message send, so they work with any configured channel (Signal, Telegram, etc.).

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/11/2026

An exceptionally well-documented skill that provides a comprehensive interface for location tracking. It includes clear command mappings, detailed configuration guides, and automation setup instructions.

90
95
85
98
100

Metadata

Licenseunknown
Version-
Updated2/7/2026
PublisherDemerzels-lab

Tags

api