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
|
defp handle_rssi(sensor_id, payload) do
|
||||||
case Jason.decode(payload) do
|
case Jason.decode(payload) do
|
||||||
{:ok, %{"id" => tag_id, "rssi" => rssi} = decoded} ->
|
{:ok, %{"id" => id, "rssi" => rssi, "type" => type} = decoded} ->
|
||||||
reading = %{
|
reading = %{
|
||||||
|
type: type,
|
||||||
sensor_id: sensor_id,
|
sensor_id: sensor_id,
|
||||||
tag_id: tag_id,
|
tag_id: "#{type}:#{id}",
|
||||||
rssi: rssi,
|
rssi: rssi,
|
||||||
tx_power: Map.get(decoded, "tx_power"),
|
tx_power: Map.get(decoded, "tx_power"),
|
||||||
timestamp: DateTime.utc_now()
|
timestamp: DateTime.utc_now()
|
||||||
@@ -63,17 +64,6 @@ defmodule Localiser.MQTT.Router do
|
|||||||
Localiser.MQTT.Telemetry.count_reading()
|
Localiser.MQTT.Telemetry.count_reading()
|
||||||
Localiser.RSSI.Buffer.push(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} ->
|
{:error, reason} ->
|
||||||
Logger.error("[MQTT.Router] Bad payload from #{sensor_id}: #{inspect(reason)}")
|
Logger.error("[MQTT.Router] Bad payload from #{sensor_id}: #{inspect(reason)}")
|
||||||
Localiser.MQTT.Telemetry.count_error()
|
Localiser.MQTT.Telemetry.count_error()
|
||||||
|
|||||||
Reference in New Issue
Block a user