fix: use last_value field so sensor values are saved to database
- Change sensor_value to last_value to match Sensor schema - Make wireless sensor_index unique using OID suffix - Values now persist and can be graphed
This commit is contained in:
parent
985e3533df
commit
28a9517a1f
1 changed files with 8 additions and 4 deletions
|
|
@ -216,7 +216,7 @@ defmodule Towerops.Snmp.Profiles.Dynamic do
|
|||
sensor_descr: sensor_oid[:sensor_descr] || sensor_oid[:sensor_type],
|
||||
sensor_unit: sensor_oid[:sensor_unit] || "",
|
||||
sensor_divisor: sensor_oid[:sensor_divisor] || 1,
|
||||
sensor_value: value
|
||||
last_value: value / 1
|
||||
}
|
||||
else
|
||||
{:error, :translation_failed} ->
|
||||
|
|
@ -368,7 +368,7 @@ defmodule Towerops.Snmp.Profiles.Dynamic do
|
|||
oid: sensor.sensor_oid,
|
||||
descr: sensor.sensor_descr,
|
||||
type: sensor.sensor_type,
|
||||
value: sensor.sensor_value,
|
||||
value: sensor.last_value,
|
||||
unit: sensor.sensor_unit || ""
|
||||
}
|
||||
|
||||
|
|
@ -656,14 +656,18 @@ defmodule Towerops.Snmp.Profiles.Dynamic do
|
|||
defp fetch_wireless_sensor_value(sensor_def, client_opts) do
|
||||
case Client.get(client_opts, sensor_def.oid) do
|
||||
{:ok, value} when is_integer(value) ->
|
||||
# Use OID suffix to make sensor_index unique (avoids collisions like two "frequency" sensors)
|
||||
oid_suffix = sensor_def.oid |> String.split(".") |> Enum.take(-2) |> Enum.join("_")
|
||||
|
||||
%{
|
||||
sensor_type: sensor_def.sensor_type,
|
||||
sensor_index: "wireless_#{sensor_def.sensor_type}",
|
||||
sensor_index:
|
||||
"wireless_#{sensor_def.sensor_descr |> String.downcase() |> String.replace(" ", "_")}_#{oid_suffix}",
|
||||
sensor_oid: sensor_def.oid,
|
||||
sensor_descr: sensor_def.sensor_descr,
|
||||
sensor_unit: sensor_def.sensor_unit,
|
||||
sensor_divisor: sensor_def.sensor_divisor,
|
||||
sensor_value: value
|
||||
last_value: value / 1
|
||||
}
|
||||
|
||||
_ ->
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue