sensor graphing improvement

This commit is contained in:
Graham McIntire 2026-01-29 10:14:34 -06:00
parent 8e739283ad
commit c95487f55d
3 changed files with 23 additions and 3 deletions

View file

@ -217,7 +217,8 @@ defmodule ToweropsWeb.DeviceLive.Show do
storage_sensors = Enum.filter(non_transceiver_sensors, &(&1.sensor_type in ["disk_usage"]))
count_sensors = Enum.filter(non_transceiver_sensors, &(&1.sensor_type == "count"))
# Include various counter/gauge sensor types in the Counters section
count_sensors = Enum.filter(non_transceiver_sensors, &counter_sensor?/1)
# Wireless sensors (frequency, power, rssi, ccq, etc.)
wireless_sensors = Enum.filter(non_transceiver_sensors, &wireless_sensor?/1)
@ -829,4 +830,17 @@ defmodule ToweropsWeb.DeviceLive.Show do
"utilization"
]
end
# Counter sensors include various count and gauge types
# (connections, sessions, clients, DHCP leases, etc.)
defp counter_sensor?(sensor) do
sensor.sensor_type in [
"count",
"pppoe_sessions",
"connections",
"clients",
"leases",
"sessions"
]
end
end

View file

@ -713,7 +713,7 @@
<dt class="text-sm text-gray-600 dark:text-gray-400">
<.link
navigate={
~p"/devices/#{@device.id}/graph/count?sensor_id=#{sensor.id}"
~p"/devices/#{@device.id}/graph/#{sensor.sensor_type}?sensor_id=#{sensor.id}"
}
class="hover:text-blue-600 dark:hover:text-blue-400 hover:underline"
>

View file

@ -204,7 +204,13 @@ defmodule ToweropsWeb.GraphLive.Show do
since = get_datetime_from_range(range)
limit = get_limit_for_range(range)
dataset = sensor_to_dataset(sensor, since, limit)
Jason.encode!(%{datasets: [dataset]})
# Return nil if no data points (empty readings)
if Enum.empty?(dataset.data) do
nil
else
Jason.encode!(%{datasets: [dataset]})
end
end
end