Mike Vinogradov
uint8_t loadConfig(config_t *cfg){
putLogLn("loadConfig sizeof=" + String(sizeof(config_t), DEC));
EEPROM.begin(sizeof(config_t));
EEPROM.get(EEPROM_startaddr, cfg);
EEPROM.end();
if (!cfg->save_config){
putLogLn("loadConfig get defaul value!");
} else{
putLogLn("loadConfig load value from eeprom");
}
return 1;
}
void mqtt_callback(const MQTT::Publish& pub){ //-------MQTT приём
String payload = pub.payload_string();
if (String(pub.topic()) == "BelPower/realkw") //realkw - в топик присланы реальные показания счётчика
{
for (byte i=0; i <= 5; i++){ digitalWrite(12, !digitalRead(12)); delay(20);}
realkw = payload.toInt(); //присланное значение
if (realkw!=0) {
korrkw=realkw-e; //расчёт коррекции
EEPROM.get(0,test); //считываем прошлую запись из EEPROM
}
else {korrkw=0;}
if (test!=korrkw) { //если данные изменись,
EEPROM.put(0,korrkw); // то пишем новое в EEPROM
EEPROM.commit(); //подтвердили запись
for (byte i=0; i <= 5; i++){ digitalWrite(12, !digitalRead(12)); delay(20);}
}
}
}