From a19c0ea452d6db6ef57c90eb2a79700303d5b708 Mon Sep 17 00:00:00 2001 From: Luka Jankovic Date: Fri, 9 Jan 2026 21:49:20 +0100 Subject: [PATCH] init --- owntracks_apple_bridge.py | 48 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100755 owntracks_apple_bridge.py diff --git a/owntracks_apple_bridge.py b/owntracks_apple_bridge.py new file mode 100755 index 0000000..c7a897d --- /dev/null +++ b/owntracks_apple_bridge.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 + +import requests +import os +import time +from requests.auth import HTTPBasicAuth +from dotenv import load_dotenv + +def get_latest_location(): + + r = requests.get( + os.getenv("URL"), + auth=HTTPBasicAuth(os.getenv("USERNAME"), os.getenv("PASSWORD")), + headers={ + "Accept": "application/json", + "User-Agent": "owntracks-poller/1.0", + }, + timeout=int(os.getenv("TIMEOUT")), + ) + + r.raise_for_status() + + data = r.json() + + if not data: + raise RuntimeError("No location data returned") + + latest = data[0] + + return { + "lat": latest.get("lat"), + "lon": latest.get("lon"), + "timestamp": latest.get("tst"), + "accuracy": latest.get("acc"), + "battery": latest.get("batt"), + } + + +if __name__ == "__main__": + + load_dotenv() + + while True: + loc = get_latest_location() + print( + f"{loc['lat']}, {loc['lon']}" + ) + time.sleep(1)