feat: support firmware uploads, OTA pushes

This commit is contained in:
2026-05-17 14:39:29 +02:00
parent e4e4065c2b
commit 2601484fad
7 changed files with 198 additions and 3 deletions
+21
View File
@@ -59,6 +59,27 @@ defmodule Localiser.Domain.Sensors do
{:ok, sensor}
end
def send_ota_update(%Sensor{} = sensor, url, version) do
payload = %{
action: "ota",
url: url,
version: version
}
Localiser.MQTT.Connection.publish(cmd_topic(sensor), Jason.encode!(payload))
{:ok, sensor}
end
def send_ota_broadcast(url, version) do
payload = %{
action: "ota",
url: url,
version: version
}
Localiser.MQTT.Connection.publish("localiser/ota", Jason.encode!(payload))
end
# Pushes new WiFi and/or MQTT broker settings to the sensor. The sensor will
# apply the changes and restart. All keys are optional — omit any you don't
# want to change. Valid keys: "ssid", "password", "mqtt_host", "mqtt_port".