diff --git a/lib/teslamate/vehicles/vehicle.ex b/lib/teslamate/vehicles/vehicle.ex index 11a5d004..33daca4b 100644 --- a/lib/teslamate/vehicles/vehicle.ex +++ b/lib/teslamate/vehicles/vehicle.ex @@ -65,7 +65,6 @@ defmodule TeslaMate.Vehicles.Vehicle do end # TODO - # - close trip when shift_state == P # - deep sleep time with checks every 30min # - Schedule Sleep Mode: time window where idle times is set to 0 / is bypassed # - Deep Sleep Mode: time window where polling is limited to 30min @@ -76,7 +75,7 @@ defmodule TeslaMate.Vehicles.Vehicle do # - make suspend settings configurable # - make cars configurable # - create geo fences - # - check the vehicle state during sleep attempt - does it still work? + # - check the vehicle state during sleep attempt - does it still work? # - indices # - cron job which "closes" drives & charging_processes (i.e there is no end_time) @@ -323,11 +322,7 @@ defmodule TeslaMate.Vehicles.Vehicle do {:keep_state, %Data{data | last_used: DateTime.utc_now()}, [notify_subscribers(), schedule_fetch(5)]} - "P" -> - {:keep_state, %Data{data | last_used: DateTime.utc_now()}, - [notify_subscribers(), schedule_fetch(10)]} - - nil -> + shift_state when is_nil(shift_state) or shift_state == "P" -> {:ok, %Log.Trip{distance: distance, duration_min: duration}} = call(data.deps.log, :close_trip, [trip_id]) diff --git a/lib/teslamate_web/channels/user_socket.ex b/lib/teslamate_web/channels/user_socket.ex index 4ea1273f..ca6ec219 100644 --- a/lib/teslamate_web/channels/user_socket.ex +++ b/lib/teslamate_web/channels/user_socket.ex @@ -1,5 +1,5 @@ defmodule TeslaMateWeb.UserSocket do - use Phoenix.Socket + use Phoenix.Socket, log: :debug ## Channels # channel "room:*", TeslaMateWeb.RoomChannel diff --git a/lib/teslamate_web/live/car_live/index.ex b/lib/teslamate_web/live/car_live/index.ex index a4973769..1ed66cfc 100644 --- a/lib/teslamate_web/live/car_live/index.ex +++ b/lib/teslamate_web/live/car_live/index.ex @@ -2,8 +2,6 @@ defmodule TeslaMateWeb.CarLive.Index do use Phoenix.LiveView alias TeslaMateWeb.CarView - - alias TeslaMate.Vehicles alias TeslaMate.Log @impl true diff --git a/lib/teslamate_web/live/car_live/summary.ex b/lib/teslamate_web/live/car_live/summary.ex index bcb8d078..f87fa828 100644 --- a/lib/teslamate_web/live/car_live/summary.ex +++ b/lib/teslamate_web/live/car_live/summary.ex @@ -2,9 +2,7 @@ defmodule TeslaMateWeb.CarLive.Summary do use Phoenix.LiveView alias TeslaMateWeb.CarView - alias TeslaMate.Vehicles - alias TeslaMate.Log @impl true def mount(%{id: id}, socket) do diff --git a/lib/teslamate_web/views/car_view.ex b/lib/teslamate_web/views/car_view.ex index 005aef16..4d7d81c5 100644 --- a/lib/teslamate_web/views/car_view.ex +++ b/lib/teslamate_web/views/car_view.ex @@ -2,7 +2,6 @@ defmodule TeslaMateWeb.CarView do use TeslaMateWeb, :view alias TeslaMateWeb.CarView - alias TeslaMateWeb.CarLive def render("index.json", %{car: car}) do %{data: render_many(car, CarView, "car.json")} diff --git a/test/teslamate/vehicles/vehicle/driving_test.exs b/test/teslamate/vehicles/vehicle/driving_test.exs index e745fc97..b19a6daa 100644 --- a/test/teslamate/vehicles/vehicle/driving_test.exs +++ b/test/teslamate/vehicles/vehicle/driving_test.exs @@ -122,7 +122,7 @@ defmodule TeslaMate.Vehicles.Vehicle.DrivingTest do refute_receive _ end - test "shift_state P does not trigger position inserts", %{test: name} do + test "shift_state P ends the trip", %{test: name} do now = DateTime.utc_now() now_ts = DateTime.to_unix(now, :millisecond) @@ -130,10 +130,7 @@ defmodule TeslaMate.Vehicles.Vehicle.DrivingTest do {:ok, online_event()}, {:ok, drive_event(now_ts, "D", 5)}, {:ok, drive_event(now_ts, "D", 15)}, - {:ok, drive_event(now_ts, "P", 0)}, - {:ok, drive_event(now_ts, "P", 0)}, - {:ok, drive_event(now_ts, "P", 0)}, - {:ok, drive_event(now_ts, nil, 0)} + {:ok, drive_event(now_ts, "P", 0)} ] :ok = start_vehicle(name, events) @@ -148,10 +145,6 @@ defmodule TeslaMate.Vehicles.Vehicle.DrivingTest do assert_receive {:pubsub, {:broadcast, _server, _topic, {:driving, %TeslaApi.Vehicle{}}}} assert_receive {:insert_position, ^car_id, %{longitude: 0.1, speed: 24, trip_id: 111}} - assert_receive {:pubsub, {:broadcast, _server, _topic, {:driving, %TeslaApi.Vehicle{}}}} - assert_receive {:pubsub, {:broadcast, _server, _topic, {:driving, %TeslaApi.Vehicle{}}}} - assert_receive {:pubsub, {:broadcast, _server, _topic, {:driving, %TeslaApi.Vehicle{}}}} - assert_receive {:close_trip, 111} assert_receive {:start_state, ^car_id, :online}