|  | @@ -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) {
 |