From dd2fce3908583e5e8c0423ba9e6fb552b90d0522 Mon Sep 17 00:00:00 2001 From: richonguzman Date: Sat, 11 Oct 2025 13:22:08 -0300 Subject: [PATCH] igate beacon over mqtt --- data/igate_conf.json | 3 ++- data_embed/index.html | 15 +++++++++++++++ data_embed/script.js | 16 ++++++++++------ include/configuration.h | 1 + src/configuration.cpp | 6 +++++- src/web_utils.cpp | 1 + 6 files changed, 34 insertions(+), 8 deletions(-) diff --git a/data/igate_conf.json b/data/igate_conf.json index 362b20a..04a4bda 100644 --- a/data/igate_conf.json +++ b/data/igate_conf.json @@ -86,7 +86,8 @@ "topic": "", "username": "", "password": "", - "port": 1883 + "port": 1883, + "beaconOverMqtt": false }, "ota": { "username": "", diff --git a/data_embed/index.html b/data_embed/index.html index 0f389fa..4c2a578 100644 --- a/data_embed/index.html +++ b/data_embed/index.html @@ -1641,6 +1641,21 @@ Default is 1883 +
+
+ + +
+
diff --git a/data_embed/script.js b/data_embed/script.js index 0cdd590..b6bf231 100644 --- a/data_embed/script.js +++ b/data_embed/script.js @@ -207,12 +207,14 @@ function loadSettings(settings) { document.getElementById("mqtt.username").value = settings.mqtt.username; document.getElementById("mqtt.password").value = settings.mqtt.password; document.getElementById("mqtt.port").value = settings.mqtt.port; - MqttCheckbox.checked = settings.mqtt.active; - MqttServer.disabled = !MqttCheckbox.check; - MqttTopic.disabled = !MqttCheckbox.check; - MqttUsername.disabled = !MqttCheckbox.check; - MqttPassword.disabled = !MqttCheckbox.check; - MqttPort.disabled = !MqttCheckbox.check; + document.getElementById("mqtt.beaconOverMqtt").value = settings.mqtt.beaconOverMqtt; + MqttCheckbox.checked = settings.mqtt.active; + MqttServer.disabled = !MqttCheckbox.check; + MqttTopic.disabled = !MqttCheckbox.check; + MqttUsername.disabled = !MqttCheckbox.check; + MqttPassword.disabled = !MqttCheckbox.check; + MqttPort.disabled = !MqttCheckbox.check; + MqttBeaconOverMqtt.disabled = !MqttCheckbox.check; // Reboot document.getElementById("other.rebootMode").checked = settings.other.rebootMode; @@ -380,12 +382,14 @@ const MqttTopic = document.querySelector('input[name="mqtt.topic const MqttUsername = document.querySelector('input[name="mqtt.username"]'); const MqttPassword = document.querySelector('input[name="mqtt.password"]'); const MqttPort = document.querySelector('input[name="mqtt.port"]'); +const MqttBeaconOverMqtt = document.querySelector('input[name="mqtt.beaconOverMqtt"]'); MqttCheckbox.addEventListener("change", function () { MqttServer.disabled = !this.checked; MqttTopic.disabled = !this.checked; MqttUsername.disabled = !this.checked; MqttPassword.disabled = !this.checked; MqttPort.disabled = !this.checked; + MqttBeaconOverMqtt.disabled = !this.checked; }); // Reboot Switches diff --git a/include/configuration.h b/include/configuration.h index 2c653cb..85e9c4b 100644 --- a/include/configuration.h +++ b/include/configuration.h @@ -158,6 +158,7 @@ public: String username; String password; int port; + bool beaconOverMqtt; }; class Configuration { diff --git a/src/configuration.cpp b/src/configuration.cpp index 9c77f2c..de31de8 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -131,6 +131,7 @@ bool Configuration::writeFile() { data["mqtt"]["username"] = mqtt.username; data["mqtt"]["password"] = mqtt.password; data["mqtt"]["port"] = mqtt.port; + data["mqtt"]["beaconOverMqtt"] = mqtt.beaconOverMqtt; data["ota"]["username"] = ota.username; data["ota"]["password"] = ota.password; @@ -323,13 +324,15 @@ bool Configuration::readFile() { !data["mqtt"].containsKey("topic") || !data["mqtt"].containsKey("username") || !data["mqtt"].containsKey("password") || - !data["mqtt"].containsKey("port")) needsRewrite = true; + !data["mqtt"].containsKey("port") || + !data["mqtt"].containsKey("beaconOverMqtt")) needsRewrite = true; mqtt.active = data["mqtt"]["active"] | false; mqtt.server = data["mqtt"]["server"] | ""; mqtt.topic = data["mqtt"]["topic"] | "aprs-igate"; mqtt.username = data["mqtt"]["username"] | ""; mqtt.password = data["mqtt"]["password"] | ""; mqtt.port = data["mqtt"]["port"] | 1883; + mqtt.beaconOverMqtt = data["mqtt"]["beaconOverMqtt"] | false; if (!data["ota"].containsKey("username") || !data["ota"].containsKey("password")) needsRewrite = true; @@ -476,6 +479,7 @@ void Configuration::setDefaultValues() { mqtt.username = ""; mqtt.password = ""; mqtt.port = 1883; + mqtt.beaconOverMqtt = false; ota.username = ""; ota.password = ""; diff --git a/src/web_utils.cpp b/src/web_utils.cpp index c629d0c..1e32c0d 100644 --- a/src/web_utils.cpp +++ b/src/web_utils.cpp @@ -261,6 +261,7 @@ namespace WEB_Utils { Config.mqtt.username = getParamStringSafe("mqtt.username", Config.mqtt.username); Config.mqtt.password = getParamStringSafe("mqtt.password", Config.mqtt.password); Config.mqtt.port = getParamIntSafe("mqtt.port", Config.mqtt.port); + Config.mqtt.beaconOverMqtt = request->hasParam("mqtt.beaconOverMqtt", true); }