|
@@ -32,7 +32,7 @@ bool loadConfig() {
|
|
|
// use configFile.readString instead.
|
|
|
configFile.readBytes(buf.get(), size);
|
|
|
|
|
|
- StaticJsonBuffer<200> jsonBuffer;
|
|
|
+ StaticJsonBuffer<1000> jsonBuffer;
|
|
|
JsonObject& json = jsonBuffer.parseObject(buf.get());
|
|
|
|
|
|
if (!json.success()) {
|
|
@@ -40,78 +40,186 @@ bool loadConfig() {
|
|
|
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"]);
|
|
|
+ strcpy(deviceName, json["devName"]);
|
|
|
+ strcpy(mqtt_server, json["mqttHost"]);
|
|
|
+ mqtt_port = atoi(json["mqttPort"]);
|
|
|
+ strcpy(mqtt_topic_in, json["inTop"]);
|
|
|
+ strcpy(mqtt_topic_out, json["outTop"]);
|
|
|
+ strcpy(mqtt_topic_out_hold_1, json["outTop_hold1"]);
|
|
|
+ strcpy(mqtt_topic_out_hold_2, json["outTop_hold2"]);
|
|
|
+ strcpy(mqtt_topic_out_hold_3, json["outTop_hold3"]);
|
|
|
+ strcpy(mqtt_payload_out_hold_1, json["outPld_hold1"]);
|
|
|
+ strcpy(mqtt_payload_out_hold_2, json["outPld_hold2"]);
|
|
|
+ strcpy(mqtt_payload_out_hold_3, json["outPld_hold3"]);
|
|
|
+ domoticzIdx[0] = atoi(json["domoIdx1"]);
|
|
|
+ domoticzIdx[1] = atoi(json["domoIdx2"]);
|
|
|
+ domoticzIdx[2] = atoi(json["domoIdx3"]);
|
|
|
+ strcpy(domoticz_out_topic, json["domoOutTop"]);
|
|
|
+ relais_impulse[0] = atoi(json["impuls1"]);
|
|
|
+ relais_impulse[1] = atoi(json["impuls2"]);
|
|
|
+ relais_impulse[2] = atoi(json["impuls3"]);
|
|
|
+
|
|
|
+
|
|
|
+ // deviceName = json["devName"];
|
|
|
+ // mqtt_server = json["mqttHost"];
|
|
|
+ // mqtt_port = atoi(json["mqttPort"]);
|
|
|
+ // mqtt_topic_in = json["inTop"];
|
|
|
+ // mqtt_topic_out = json["outTop"];
|
|
|
+ // mqtt_topic_out_hold[0] = json["outTop_hold1"];
|
|
|
+ // mqtt_topic_out_hold[1] = json["outTop_hold2"];
|
|
|
+ // mqtt_topic_out_hold[2] = json["outTop_hold3"];
|
|
|
+ // mqtt_payload_out_hold[0] = json["outPld_hold1"];
|
|
|
+ // mqtt_payload_out_hold[1] = json["outPld_hold2"];
|
|
|
+ // mqtt_payload_out_hold[2] = json["outPld_hold3"];
|
|
|
+ // domoticzIdx[0] = atoi(json["domoIdx1"]);
|
|
|
+ // domoticzIdx[1] = atoi(json["domoIdx2"]);
|
|
|
+ // domoticzIdx[2] = atoi(json["domoIdx3"]);
|
|
|
+ // domoticz_out_topic = json["domoOutTop"];
|
|
|
+ // relais_impulse[0] = json["impuls1"];
|
|
|
+ // relais_impulse[1] = json["impuls2"];
|
|
|
+ // relais_impulse[2] = json["impuls3"];
|
|
|
|
|
|
Serial.println("Loaded config values:");
|
|
|
- Serial.print("mqtt_server: ");
|
|
|
+ getConfig();
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+void getConfig() {
|
|
|
+ Serial.print("devName: ");
|
|
|
+ Serial.println(deviceName);
|
|
|
+ Serial.print("mqttHost: ");
|
|
|
Serial.println(mqtt_server);
|
|
|
- Serial.print("mqtt_port: ");
|
|
|
+ Serial.print("mqttPort: ");
|
|
|
Serial.println(mqtt_port);
|
|
|
- Serial.print("mqtt_topic_in: ");
|
|
|
+ Serial.print("inTop: ");
|
|
|
Serial.println(mqtt_topic_in);
|
|
|
- Serial.print("mqtt_topic_out: ");
|
|
|
+ Serial.print("outTop: ");
|
|
|
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.print("outTop_hold1: ");
|
|
|
+ Serial.println(mqtt_topic_out_hold_1);
|
|
|
+ Serial.print("outTop_hold2: ");
|
|
|
+ Serial.println(mqtt_topic_out_hold_2);
|
|
|
+ Serial.print("outTop_hold3: ");
|
|
|
+ Serial.println(mqtt_topic_out_hold_3);
|
|
|
+ Serial.print("outPld_hold1: ");
|
|
|
+ Serial.println(mqtt_payload_out_hold_1);
|
|
|
+ Serial.print("outPld_hold2: ");
|
|
|
+ Serial.println(mqtt_payload_out_hold_2);
|
|
|
+ Serial.print("outPld_hold3: ");
|
|
|
+ Serial.println(mqtt_payload_out_hold_3);
|
|
|
+ Serial.print("domoIdx1: ");
|
|
|
Serial.println(domoticzIdx[0]);
|
|
|
- Serial.print("domoticzIdx_2: ");
|
|
|
+ Serial.print("domoIdx2: ");
|
|
|
Serial.println(domoticzIdx[1]);
|
|
|
- Serial.print("domoticzIdx_3: ");
|
|
|
+ Serial.print("domoIdx3: ");
|
|
|
Serial.println(domoticzIdx[2]);
|
|
|
-// Serial.print(": ");
|
|
|
-// Serial.println();
|
|
|
-// Serial.print(": ");
|
|
|
-// Serial.println();
|
|
|
-// Serial.print(": ");
|
|
|
-// Serial.println();
|
|
|
- return true;
|
|
|
+ Serial.print("domoOutTop: ");
|
|
|
+ Serial.println(domoticz_out_topic);
|
|
|
+ Serial.print("impuls1: ");
|
|
|
+ Serial.println(relais_impulse[0]);
|
|
|
+ Serial.print("impuls2: ");
|
|
|
+ Serial.println(relais_impulse[1]);
|
|
|
+ Serial.print("impuls3: ");
|
|
|
+ Serial.println(relais_impulse[2]);
|
|
|
}
|
|
|
|
|
|
|
|
|
+bool setConfig(char* param, char* value) {
|
|
|
+
|
|
|
+// char buf[80];
|
|
|
+// int len = strlen(value);
|
|
|
+// for (int i = 0; i < len; i++) {
|
|
|
+// buf[i] = value[i];
|
|
|
+// }
|
|
|
+// buf[len] = '\0';
|
|
|
+
|
|
|
+ Serial.print("param: ");
|
|
|
+ Serial.print(param);
|
|
|
+ Serial.print(", value: ");
|
|
|
+ Serial.println(value);
|
|
|
+
|
|
|
+ if ( strcmp(param, "devName") == 0 ) {
|
|
|
+ strcpy(deviceName, value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "mqttHost") == 0 ) {
|
|
|
+ strcpy(mqtt_server, value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "mqttPort") == 0 ) {
|
|
|
+ mqtt_port = atoi(value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "inTop") == 0 ) {
|
|
|
+ strcpy(mqtt_topic_in, value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "outTop") == 0 ) {
|
|
|
+ strcpy(mqtt_topic_out, value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "outTop_hold1") == 0 ) {
|
|
|
+ strcpy(mqtt_topic_out_hold_1, value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "outTop_hold2") == 0 ) {
|
|
|
+ strcpy(mqtt_topic_out_hold_2, value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "outTop_hold3") == 0 ) {
|
|
|
+ strcpy(mqtt_topic_out_hold_3, value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "outPld_hold1") == 0 ) {
|
|
|
+ Serial.print("set outPld_hold1");
|
|
|
+ strcpy(mqtt_payload_out_hold_1, value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "outPld_hold2") == 0 ) {
|
|
|
+ Serial.print("set outPld_hold2");
|
|
|
+ strcpy(mqtt_payload_out_hold_2, value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "outPld_hold3") == 0 ) {
|
|
|
+ Serial.print("set outPld_hold3");
|
|
|
+ strcpy(mqtt_payload_out_hold_3, value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "domoIdx1") == 0 ) {
|
|
|
+ domoticzIdx[0] = atoi(value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "domoIdx2") == 0 ) {
|
|
|
+ domoticzIdx[1] = atoi(value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "domoIdx3") == 0 ) {
|
|
|
+ domoticzIdx[2] = atoi(value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "domoOutTop") == 0 ) {
|
|
|
+ strcpy(domoticz_out_topic, value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "impuls1") == 0 ) {
|
|
|
+ relais_impulse[0] = atoi(value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "impuls2") == 0 ) {
|
|
|
+ relais_impulse[1] = atoi(value);
|
|
|
+ }
|
|
|
+ else if ( strcmp(param, "impuls3") == 0 ) {
|
|
|
+ relais_impulse[2] = atoi(value);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
bool saveConfig() {
|
|
|
- StaticJsonBuffer<200> jsonBuffer;
|
|
|
+ StaticJsonBuffer<1000> 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];
|
|
|
-
|
|
|
+
|
|
|
+ json["devName"] = deviceName;
|
|
|
+ json["mqttHost"] = mqtt_server;
|
|
|
+ json["mqttPort"] = mqtt_port;
|
|
|
+ json["inTop"] = mqtt_topic_in;
|
|
|
+ json["outTop"] = mqtt_topic_out;
|
|
|
+ json["outTop_hold1"] = mqtt_topic_out_hold_1;
|
|
|
+ json["outTop_hold2"] = mqtt_topic_out_hold_2;
|
|
|
+ json["outTop_hold3"] = mqtt_topic_out_hold_3;
|
|
|
+ json["outPld_hold1"] = mqtt_payload_out_hold_1;
|
|
|
+ json["outPld_hold2"] = mqtt_payload_out_hold_2;
|
|
|
+ json["outPld_hold3"] = mqtt_payload_out_hold_3;
|
|
|
+ json["domoIdx1"] = domoticzIdx[0];
|
|
|
+ json["domoIdx2"] = domoticzIdx[1];
|
|
|
+ json["domoIdx3"] = domoticzIdx[2];
|
|
|
+ json["domoOutTop"] = domoticz_out_topic;
|
|
|
+ json["impuls1"] = relais_impulse[0];
|
|
|
+ json["impuls2"] = relais_impulse[1];
|
|
|
+ json["impuls3"] = relais_impulse[2];
|
|
|
|
|
|
File configFile = SPIFFS.open("/config.json", "w");
|
|
|
if (!configFile) {
|