timezoned: set only from gps (#30904)

* timezoned: set only from gps

* unused
This commit is contained in:
Adeeb Shihadeh 2024-01-03 20:18:29 -08:00 committed by GitHub
parent fe40905849
commit 3c4150c542
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 24 deletions

View File

@ -5,7 +5,6 @@ import time
import subprocess
from typing import NoReturn
import requests
from timezonefinder import TimezoneFinder
from openpilot.common.params import Params
@ -41,35 +40,18 @@ def main() -> NoReturn:
# Get allowed timezones
valid_timezones = subprocess.check_output('timedatectl list-timezones', shell=True, encoding='utf8').strip().split('\n')
timezone = params.get("Timezone", encoding='utf8')
if timezone is not None:
cloudlog.debug("Setting timezone based on param")
set_timezone(valid_timezones, timezone)
while True:
time.sleep(60)
# Set based on param
timezone = params.get("Timezone", encoding='utf8')
if timezone is not None:
cloudlog.debug("Setting timezone based on param")
set_timezone(valid_timezones, timezone)
continue
location = params.get("LastGPSPosition", encoding='utf8')
# Find timezone based on IP geolocation if no gps location is available
if location is None:
cloudlog.debug("Setting timezone based on IP lookup")
try:
r = requests.get("https://ipapi.co/timezone", headers=REQUEST_HEADERS, timeout=10)
if r.status_code == 200:
set_timezone(valid_timezones, r.text)
else:
cloudlog.error(f"Unexpected status code from api {r.status_code}")
time.sleep(3600) # Don't make too many API requests
except requests.exceptions.RequestException:
cloudlog.exception("Error getting timezone based on IP")
continue
# Find timezone by reverse geocoding the last known gps location
else:
if location is not None:
cloudlog.debug("Setting timezone based on GPS location")
try:
location = json.loads(location)