diff --git a/lib/teslamate/log.ex b/lib/teslamate/log.ex index b826eb23..7aab204e 100644 --- a/lib/teslamate/log.ex +++ b/lib/teslamate/log.ex @@ -116,19 +116,19 @@ defmodule TeslaMate.Log do start_km: min(p.odometer), end_km: max(p.odometer), distance: max(p.odometer) - min(p.odometer), - start_range_km: min(p.ideal_battery_range_km), - end_range_km: max(p.ideal_battery_range_km), + start_range_km: max(p.ideal_battery_range_km), + end_range_km: min(p.ideal_battery_range_km), duration_min: duration_min(max(p.date), min(p.date)) }) |> Repo.one() - if stats.distance in [nil, 0, 0.0] do + if is_nil(stats.distance) or stats.distance < 0.1 do trip |> Trip.changeset(stats) |> Repo.delete() else - ideal_distance = stats.end_range_km - stats.start_range_km - efficiency = if ideal_distance > 0, do: stats.distance / ideal_distance, else: nil + ideal_distance = stats.start_range_km - stats.end_range_km + efficiency = if ideal_distance > 0, do: ideal_distance / stats.distance, else: nil consumption = ideal_distance * trip.car.efficiency consumption_100km = if stats.distance > 0, do: consumption / stats.distance * 100, else: nil diff --git a/test/teslamate/log/log_trip_test.exs b/test/teslamate/log/log_trip_test.exs index 672de23f..cc358015 100644 --- a/test/teslamate/log/log_trip_test.exs +++ b/test/teslamate/log/log_trip_test.exs @@ -131,8 +131,8 @@ defmodule TeslaMate.LogTripTest do assert trip.start_km == 284.85156 assert trip.end_km == 288.045561 assert trip.distance == 3.1940010000000143 - assert trip.start_range_km == 334.8 - assert trip.end_range_km == 338.8 + assert trip.start_range_km == 338.8 + assert trip.end_range_km == 334.8 assert trip.duration_min == 4 assert trip.consumption_kWh == 0.612 assert trip.consumption_kWh_100km == 19.160920738597053