init
This commit is contained in:
commit
a19c0ea452
1 changed files with 48 additions and 0 deletions
48
owntracks_apple_bridge.py
Executable file
48
owntracks_apple_bridge.py
Executable file
|
|
@ -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)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue