struct MqttConfig {
char host[50] = "192.168.1.94";
unsigned short port = 1883;
char user[10] = "mqtt";
char password[20] = "password";
char client[20] = "LightController";
};
MqttConfig mqttConfig;
WiFiClient espClient;
PubSubClient mqttClient(espClient);
mqttClient.setServer(mqttConfig.host, configmqttConfig.port);
Но mqtt библиотека не подключается (да, там дальше вызов
mqttClient.connect
, это для компактности). Методом тыка, понял, что дело в
mqttConfig.host
, если его заменить (и остальные user/password) на явные:
mqttClient.setServer("192.168.1.94", 1883);
то все работает.
Почему так происходит и как быть? Если выводить
Serial.println(mqttConfig.host);
то там тот же хост, что и указан. В общем, я в тупике. Структура мне нужна чтобы хранить настройки в EEPROM.