123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- //const char* deviceName = DEVICE_NAME;
- //const char* mqtt_server = MQTT_SERVER;
- //const int mqtt_port = MQTT_PORT;
- //const char* mqtt_topic_in = MQTT_TOPIC_IN;
- //const char* mqtt_topic_out = MQTT_TOPIC_OUT;
- //const char* mqtt_topic_out_hold[3] = { BUTTON1_HOLD_TOPIC_OUT, BUTTON2_HOLD_TOPIC_OUT, BUTTON3_HOLD_TOPIC_OUT };
- //const char* mqtt_payload_out_hold[3] = { BUTTON1_HOLD_PAYLOAD_OUT, BUTTON2_HOLD_PAYLOAD_OUT, BUTTON3_HOLD_PAYLOAD_OUT };
- //const int domoticzIdx[3] = {DOMOTICZ_IDX_1, DOMOTICZ_IDX_2, DOMOTICZ_IDX_3}; // initially set to 0, must be defined in config
- bool loadConfig() {
- File configFile = SPIFFS.open("/config.json", "r");
- if (!configFile) {
- Serial.println("Failed to open config file");
- return false;
- }
- size_t size = configFile.size();
- if (size > 1024) {
- Serial.println("Config file size is too large");
- return false;
- }
- // Allocate a buffer to store contents of the file.
- std::unique_ptr<char[]> buf(new char[size]);
- // We don't use String here because ArduinoJson library requires the input
- // buffer to be mutable. If you don't use ArduinoJson, you may as well
- // use configFile.readString instead.
- configFile.readBytes(buf.get(), size);
- StaticJsonBuffer<200> jsonBuffer;
- JsonObject& json = jsonBuffer.parseObject(buf.get());
- if (!json.success()) {
- Serial.println("Failed to parse config file");
- return false;
- }
- deviceName = json["deviceName"];
- mqtt_server = json["mqtt_server"];
- mqtt_port = atoi(json["mqtt_port"]);
- mqtt_topic_in = json["mqtt_topic_in"];
- mqtt_topic_out = json["mqtt_topic_out"];
- mqtt_topic_out_hold[0] = json["mqtt_topic_out_hold_1"];
- mqtt_topic_out_hold[1] = json["mqtt_topic_out_hold_2"];
- mqtt_topic_out_hold[2] = json["mqtt_topic_out_hold_3"];
- mqtt_payload_out_hold[0] = json["mqtt_payload_out_hold_1"];
- mqtt_payload_out_hold[1] = json["mqtt_payload_out_hold_2"];
- mqtt_payload_out_hold[2] = json["mqtt_payload_out_hold_3"];
- domoticzIdx[0] = atoi(json["domoticzIdx_1"]);
- domoticzIdx[1] = atoi(json["domoticzIdx_2"]);
- domoticzIdx[2] = atoi(json["domoticzIdx_3"]);
- Serial.println("Loaded config values:");
- Serial.print("mqtt_server: ");
- Serial.println(mqtt_server);
- Serial.print("mqtt_port: ");
- Serial.println(mqtt_port);
- Serial.print("mqtt_topic_in: ");
- Serial.println(mqtt_topic_in);
- Serial.print("mqtt_topic_out: ");
- Serial.println(mqtt_topic_out);
- Serial.print("mqtt_topic_out_hold_1: ");
- Serial.println(mqtt_topic_out_hold[0]);
- Serial.print("mqtt_topic_out_hold_2: ");
- Serial.println(mqtt_topic_out_hold[1]);
- Serial.print("mqtt_topic_out_hold_3: ");
- Serial.println(mqtt_topic_out_hold[2]);
- Serial.print("mqtt_payload_out_hold_1: ");
- Serial.println(mqtt_payload_out_hold[0]);
- Serial.print("mqtt_payload_out_hold_2: ");
- Serial.println(mqtt_payload_out_hold[1]);
- Serial.print("mqtt_payload_out_hold_3: ");
- Serial.println(mqtt_payload_out_hold[2]);
- Serial.print("domoticzIdx_1: ");
- Serial.println(domoticzIdx[0]);
- Serial.print("domoticzIdx_2: ");
- Serial.println(domoticzIdx[1]);
- Serial.print("domoticzIdx_3: ");
- Serial.println(domoticzIdx[2]);
- // Serial.print(": ");
- // Serial.println();
- // Serial.print(": ");
- // Serial.println();
- // Serial.print(": ");
- // Serial.println();
- return true;
- }
- bool saveConfig() {
- StaticJsonBuffer<200> jsonBuffer;
- JsonObject& json = jsonBuffer.createObject();
-
- json["deviceName"] = deviceName;
- json["mqtt_server"] = mqtt_server;
- json["mqtt_port"] = mqtt_port;
- json["mqtt_topic_in"] = mqtt_topic_in;
- json["mqtt_topic_out"] = mqtt_topic_out;
- json["mqtt_topic_out_hold_1"] = mqtt_topic_out_hold[0];
- json["mqtt_topic_out_hold_2"] = mqtt_topic_out_hold[1];
- json["mqtt_topic_out_hold_3"] = mqtt_topic_out_hold[2];
- json["mqtt_payload_out_hold_1"] = mqtt_payload_out_hold[0];
- json["mqtt_payload_out_hold_2"] = mqtt_payload_out_hold[1];
- json["mqtt_payload_out_hold_3"] = mqtt_payload_out_hold[2];
- json["domoticzIdx_1"] = domoticzIdx[0];
- json["domoticzIdx_2"] = domoticzIdx[1];
- json["domoticzIdx_3"] = domoticzIdx[2];
-
- File configFile = SPIFFS.open("/config.json", "w");
- if (!configFile) {
- Serial.println("Failed to open config file for writing");
- return false;
- }
- json.printTo(configFile);
- return true;
- }
|