Files
homelab/clusters/homelab/apps/garmin/configmap.yaml
T
2026-05-10 13:54:07 +02:00

50 lines
1.6 KiB
YAML

apiVersion: v1
kind: ConfigMap
metadata:
name: garmin-sync-script
namespace: garmin
data:
sync.py: |
import os
import json
import time
from datetime import date, timedelta
from garminconnect import Garmin
email = os.environ["GARMIN_EMAIL"]
password = os.environ["GARMIN_PASSWORD"]
client = Garmin(email, password)
for attempt in range(5):
try:
client.login()
print(f"Login erfolgreich (Versuch {attempt + 1})")
break
except Exception as e:
if "429" in str(e):
wait = 60 * (attempt + 1)
print(f"Rate limited (429), warte {wait}s...")
time.sleep(wait)
else:
raise
else:
raise Exception("Login nach 5 Versuchen fehlgeschlagen")
d = (date.today() - timedelta(days=1)).isoformat()
print(f"=== Debug fuer {d} ===")
for name, fn, args in [
("stats", client.get_stats, [d]),
("stress", client.get_stress_data, [d]),
("bb", client.get_body_battery, [d, d]),
("spo2", client.get_spo2_data, [d]),
("resp", client.get_respiration_data, [d]),
("hrv", client.get_hrv_data, [d]),
("sleep", client.get_sleep_data, [d]),
]:
try:
result = fn(*args)
print(f"\n=== {name} ===")
print(json.dumps(result, indent=2, default=str)[:3000])
except Exception as e:
print(f"\n=== {name} FEHLER: {e} ===")