feat: parse beacon type from sensor readings
This commit is contained in:
@@ -52,10 +52,11 @@ defmodule Localiser.MQTT.Router do
|
||||
|
||||
defp handle_rssi(sensor_id, payload) do
|
||||
case Jason.decode(payload) do
|
||||
{:ok, %{"id" => tag_id, "rssi" => rssi} = decoded} ->
|
||||
{:ok, %{"id" => id, "rssi" => rssi, "type" => type} = decoded} ->
|
||||
reading = %{
|
||||
type: type,
|
||||
sensor_id: sensor_id,
|
||||
tag_id: tag_id,
|
||||
tag_id: "#{type}:#{id}",
|
||||
rssi: rssi,
|
||||
tx_power: Map.get(decoded, "tx_power"),
|
||||
timestamp: DateTime.utc_now()
|
||||
@@ -63,17 +64,6 @@ defmodule Localiser.MQTT.Router do
|
||||
Localiser.MQTT.Telemetry.count_reading()
|
||||
Localiser.RSSI.Buffer.push(reading)
|
||||
|
||||
{:ok, %{"tag_id" => tag_id, "rssi" => rssi}} ->
|
||||
reading = %{
|
||||
sensor_id: sensor_id,
|
||||
tag_id: tag_id,
|
||||
rssi: rssi,
|
||||
tx_power: nil,
|
||||
timestamp: DateTime.utc_now()
|
||||
}
|
||||
Localiser.MQTT.Telemetry.count_reading()
|
||||
Localiser.RSSI.Buffer.push(reading)
|
||||
|
||||
{:error, reason} ->
|
||||
Logger.error("[MQTT.Router] Bad payload from #{sensor_id}: #{inspect(reason)}")
|
||||
Localiser.MQTT.Telemetry.count_error()
|
||||
|
||||
Reference in New Issue
Block a user