raw nearby charging sites from proxy

This commit is contained in:
2025-08-03 21:31:16 +02:00
parent 7ac90a025a
commit d6737cc327
3 changed files with 29 additions and 9 deletions

View File

@@ -1,5 +1,7 @@
from datetime import datetime, timezone
from functools import partial from functools import partial
import requests
from shared.config import APP from shared.config import APP
import dagster as dg import dagster as dg
@@ -7,5 +9,27 @@ import dagster as dg
asset = partial(dg.asset, key_prefix=APP) asset = partial(dg.asset, key_prefix=APP)
@asset @asset(io_manager_key="json_io_manager")
def raw_nearby_charging_sites() -> None: ... def raw_nearby_charging_sites() -> dg.Output[str]:
# base_url = 'https://owner-api.teslamotors.com'
# Proxy that handles authentication
base_url = "http://192.168.2.200:8000"
# Hardcoded vehicle ID (for now)
vid = "929784335744220"
response = requests.get(f"{base_url}/api/1/vehicles/{vid}/nearby_charging_sites")
response.raise_for_status()
now = datetime.now(tz=timezone.utc)
date_str = now.strftime("%Y-%m-%d")
time_str = now.strftime("%H:%M:%S")
return dg.Output(
response.text,
metadata={
"date": dg.MetadataValue.timestamp(now),
"path_suffix": [date_str, time_str],
},
)

View File

@@ -3,6 +3,7 @@ import schedules
from dagster_polars import PolarsParquetIOManager from dagster_polars import PolarsParquetIOManager
from icecream import install from icecream import install
from shared.config import APP, STORAGE_DIR from shared.config import APP, STORAGE_DIR
from shared.io_manager import JsonIOManager
import dagster as dg import dagster as dg
from dagster import load_assets_from_modules from dagster import load_assets_from_modules
@@ -18,6 +19,7 @@ definitions = dg.Definitions(
for asset in load_assets_from_modules([assets]) for asset in load_assets_from_modules([assets])
], ],
resources={ resources={
"json_io_manager": JsonIOManager(base_dir=STORAGE_DIR),
"polars_parquet_io_manager": PolarsParquetIOManager(base_dir=STORAGE_DIR), "polars_parquet_io_manager": PolarsParquetIOManager(base_dir=STORAGE_DIR),
}, },
schedules=[schedules.raw_schedule], schedules=[schedules.raw_schedule],

View File

@@ -3,13 +3,7 @@ import assets
import dagster as dg import dagster as dg
raw_schedule = dg.ScheduleDefinition( raw_schedule = dg.ScheduleDefinition(
name="daily_refresh", name="raw_nearby_charging_sites",
cron_schedule="*/10 * * * *", cron_schedule="*/10 * * * *",
target=[assets.raw_nearby_charging_sites], target=[assets.raw_nearby_charging_sites],
) )
# dg.build_schedule_from_partitioned_job(
# job=raw_nearby_charging_sites_job,
# hour_of_day=9,
# default_status=dg.DefaultScheduleStatus.STOPPED,
# )