Install
openclaw skills install tracking-pettracer-locationTracks a pet’s location via the PetTracer portal API (snapshot, history, and live updates). Generates a shareable map screenshot (PNG) for the latest location. Use when user asks where their pet is, needs GPS coordinates, location history, live tracking, or a map image / screenshot of the pet’s location.
openclaw skills install tracking-pettracer-locationPetTracer collar tracking is exposed via an unofficial web portal API and a SockJS/STOMP WebSocket. This skill provides a reliable, repeatable workflow to:
export PETTRACER_USERNAME="you@example.com"
export PETTRACER_PASSWORD="…"
export GOOGLE_MAPS_API_KEY="…"
python scripts/pettracer_cli.py locate --pet "Fluffy" --pretty
python scripts/pettracer_mapshot.py --pet "Fluffy" --pretty
# → writes a PNG under ./output/ and prints JSON with the file path
scripts/pettracer_cli.py locate — latest known lat/lon + timestamps + battery + helpful linksscripts/pettracer_cli.py history — list of points for the last N hours or an explicit time rangescripts/pettracer_watch.py — NDJSON stream of live updates via SockJS/STOMPscripts/pettracer_mapshot.py — downloads a static map image centred on the latest fixSee: references/maps.md
Option A (preferred):
PETTRACER_USERNAME (or PETTRACER_EMAIL)PETTRACER_PASSWORDOption B:
PETTRACER_TOKEN (bearer token)GOOGLE_MAPS_API_KEYOptional tuning:
GOOGLE_MAPS_MAPTYPE (hybrid default)GOOGLE_MAPS_SIZE (640x640 default)GOOGLE_MAPS_SCALE (2 default)Decide what the user wants:
locate)history)pettracer_watch.py)pettracer_mapshot.py)Resolve which device:
--pet "Name"list and pick by id or exact name matchRun the smallest command that answers the request.
Validate freshness:
last_fix_age_s to decide whether the fix is stale.last_contact and suggest switching collar mode in the official app.If user asked for a map screenshot:
pettracer_mapshot.py.python scripts/pettracer_cli.py list --pretty
python scripts/pettracer_cli.py locate --pet "Fluffy" --pretty
# If multiple devices, disambiguate:
python scripts/pettracer_cli.py locate --device-id 12345 --pretty
# last 6 hours (default)
python scripts/pettracer_cli.py history --pet "Fluffy" --pretty
# last 24 hours
python scripts/pettracer_cli.py history --pet "Fluffy" --hours 24 --pretty
# explicit window (epoch ms)
python scripts/pettracer_cli.py history --device-id 12345 --from-ms 1767152926491 --to-ms 1767174526491 --pretty
# Install dependency
pip install -r scripts/requirements.txt
# Stream updates
python scripts/pettracer_watch.py --pet "Fluffy"
# Writes ./output/pettracer_<pet>_<id>_<ts>.png
python scripts/pettracer_mapshot.py --pet "Fluffy" --pretty
# Choose output path
python scripts/pettracer_mapshot.py --pet "Fluffy" --out output/fluffy_latest.png --pretty
# Tune map appearance
GOOGLE_MAPS_MAPTYPE=satellite python scripts/pettracer_mapshot.py --pet "Fluffy" --zoom 18 --pretty
When answering the user, prefer:
google_maps and openstreetmap links.pettracer_mapshot.py.PETTRACER_PASSWORD, PETTRACER_TOKEN, or GOOGLE_MAPS_API_KEY into chat.access_token=…).references/endpoints.mdreferences/data-model.mdreferences/modes.mdreferences/websocket.mdreferences/maps.md1) Run pettracer_mapshot.py for the requested pet/device.
2) If it returns no_recent_fix, explain that and include last_contact.
3) If it returns an image path, attach/send that PNG to the user.
4) In the message: include timestamp, fix age, accuracy, and a clickable Google Maps link.
5) Do not reveal any API keys/tokens.