Add ability to change MQTT topic and or gateway name by MQTT command. (#1053)
* Add ability to change MQTT topic and or gateway name by MQTT command.
This adds new commands to allow changing the MQTT topic and or gateway name from a command.
The new topic/name will be saved in flash memory and used on subsequent reboots.
Either/both parameters can be sent or combined with other commands.
Example use:
```
mosquitto_pub -t "home/OpenMQTTGateway/commands/MQTTtoSYS/config" -m
'{
"mqtt_topic": "topic/",
"gateway_name: "name"
}'
```
* Update example with /
Co-authored-by: Florian <1technophile@users.noreply.github.com>
This commit is contained in:
1 parent
702c4b7fea
commit
ca616939b8
2 files changed
+24
No files matched your search
@@ -68,6 +68,18 @@ Server, port, and secure_flag are only required if changing connection to anothe
|
|||||||
If the new connection fails the gateway will fallback to the previous connection.
|
If the new connection fails the gateway will fallback to the previous connection.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
## Change the MQTT main topic and or gateway name
|
||||||
|
```
|
||||||
|
mosquitto_pub -t "home/OpenMQTTGateway/commands/MQTTtoSYS/config" -m
|
||||||
|
'{
|
||||||
|
"mqtt_topic": "topic/",
|
||||||
|
"gateway_name: "name"
|
||||||
|
}'
|
||||||
|
```
|
||||||
|
::: info
|
||||||
|
This will change the subscribed and published mqtt_topic/gateway_name that the gateway uses. No parameters are manditory, the current topic or gateway name will be used if not supplied.
|
||||||
|
:::
|
||||||
|
|
||||||
## Switching brokers and using self signed and client certificates
|
## Switching brokers and using self signed and client certificates
|
||||||
|
|
||||||
In the `user_config.h` file it is possible to specify multiple MQTT brokers and client certificates. These are commonly self signed and are supported by defining `MQTT_SECURE_SELF_SIGNED` as true or 1.
|
In the `user_config.h` file it is possible to specify multiple MQTT brokers and client certificates. These are commonly self signed and are supported by defining `MQTT_SECURE_SELF_SIGNED` as true or 1.
|
||||||
|
|||||||
@@ -2026,6 +2026,18 @@ void MQTTtoSYS(char* topicOri, JsonObject& SYSdata) { // json object decoding
|
|||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
if (SYSdata.containsKey("mqtt_topic") || SYSdata.containsKey("gateway_name")) {
|
||||||
|
if (SYSdata.containsKey("mqtt_topic")) {
|
||||||
|
strncpy(mqtt_topic, SYSdata["mqtt_topic"], mqtt_topic_max_size);
|
||||||
|
}
|
||||||
|
if (SYSdata.containsKey("gateway_name")) {
|
||||||
|
strncpy(gateway_name, SYSdata["gateway_name"], parameters_size * 2);
|
||||||
|
}
|
||||||
|
# ifndef ESPWifiManualSetup
|
||||||
|
saveMqttConfig();
|
||||||
|
# endif
|
||||||
|
client.disconnect(); // reconnects in loop using the new topic/name
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ZmqttDiscovery
|
#ifdef ZmqttDiscovery
|
||||||
|
|||||||
Reference in new issue
Block a user