void Sdreaddata()//чтение данных после откл питания или сброса
{ Serial.println ("read SD data");
 strdat="";
 
  myFile = SD.open("/thkom1.txt", FILE_READ);
   while(myFile.available()) {

   strdat+=char(myFile.read());
  
  }
 

  myFile.close();
   jsonString2=strdat;
   Serial.println (jsonString2);
 //  events.send(jsonString2.c_str(), "new_datatemp", millis());//обновление веба
JSONVar myObject = JSON.parse(strdat);
//{"tkom1":"","hkom1":"","batkom1":"","timekom1":"","tkom2":"25.1","hkom2":"50.1","batkom2":"4.0","timekom2":"22:00","tkor":"23.6","hkor":"45.7","batkor":"3.71","timekor":"21:55","tbal":"11.1","hbal":"56.3","batbal":"3.45","timebal":"21:47","tul1":"5.3","hul1":"99.9","osv1":"0%","timeul1":"22:01"}
   
   if (myObject.hasOwnProperty("tkom1")) {
   tkom1=((const char*) myObject["tkom1"]);}
   if (myObject.hasOwnProperty("hkom1")) {
   hkom1=((const char*) myObject["hkom1"]);}
   if (myObject.hasOwnProperty("batkom1")) {
   batkom1=((const char*) myObject["batkom1"]);}
   if (myObject.hasOwnProperty("timekom1")) {
   timekom1=((const char*) myObject["timekom1"]);}

   if (myObject.hasOwnProperty("tkom2")) {
   tkom2=((const char*) myObject["tkom2"]);}
   if (myObject.hasOwnProperty("hkom2")) {
   hkom2=((const char*) myObject["hkom2"]);}
   if (myObject.hasOwnProperty("batkom2")) {
   batkom2=((const char*) myObject["batkom2"]);}
    if (myObject.hasOwnProperty("timekom2")) {
   timekom2=((const char*) myObject["timekom2"]);}

   
   if (myObject.hasOwnProperty("tkor")) {
   tkor=((const char*) myObject["tkor"]);}
   if (myObject.hasOwnProperty("hkor")) {
   hkor=((const char*) myObject["hkor"]);}
   if (myObject.hasOwnProperty("batkor")) {
   batkor=((const char*) myObject["batkor"]);}
    if (myObject.hasOwnProperty("timekor")) {
   timekor=((const char*) myObject["timekor"]);}
   
    if (myObject.hasOwnProperty("tbal")) {
   tbal=((const char*) myObject["tbal"]);}
   if (myObject.hasOwnProperty("hbal")) {
   hbal=((const char*) myObject["hbal"]);}
   if (myObject.hasOwnProperty("batbal")) {
   batbal=((const char*) myObject["batbal"]);}
     if (myObject.hasOwnProperty("timebal")) {
   timebal=((const char*) myObject["timebal"]);}

      if (myObject.hasOwnProperty("tul1")) {
   tul1=((const char*) myObject["tul1"]);}
   if (myObject.hasOwnProperty("hul1")) {
   hul1=((const char*) myObject["hul1"]);}
   if (myObject.hasOwnProperty("osv1")) {
   osv1=((const char*) myObject["osv1"]);}
     if (myObject.hasOwnProperty("timeul1")) {
   timeul1=((const char*) myObject["timeul1"]);}


 strdat="";
  myFile = SD.open("/thku1.txt", FILE_READ);
   while(myFile.available()) {

   strdat+=char(myFile.read());
  
  }
 myFile.close();
   jsonString=strdat;
   Serial.println ("jsonString");
   Serial.println (jsonString);
  
 //  events.send(jsonString.c_str(), "new_readings", millis());//обновление веба текущая температура
 myObject = JSON.parse(jsonString);
    if (myObject.hasOwnProperty("id")) {
String id=((const char*) myObject["id"]);}
  if (myObject.hasOwnProperty("temperature")) {
ts=((const char*) myObject["temperature"]);}

   if (myObject.hasOwnProperty("humidity")) {
 hs=((const char*) myObject["humidity"]);}

   if (myObject.hasOwnProperty("tim2")) {
   tim2=((const char*) myObject["tim2"]);}
   if (myObject.hasOwnProperty("tim3")) {
   tim3=((const char*) myObject["tim3"]);}
   if (myObject.hasOwnProperty("dataserv")) {
   dataserv=((const char*) myObject["dataserv"]);}
   if (myObject.hasOwnProperty("timev")) {
   timev=((int) myObject["timev"]);}
   if(ntp_on==0)//если NTP не пдключилось
   {if (myObject.hasOwnProperty("EpochTime")) {
   EpochTime=((long) myObject["EpochTime"]);}
   }
//{"id":2,"temperature":9.6733450317382812,"humidity":50.41815185546875,"tim2":"12:02",
 // "dataserv":"12","timeserv":"15:30","munthserv":"январь",weekserv:"среда","timev":0,"EpochTime":565}
/* hour1=stamp.hour;//число
min1=stamp.minute;//число

 dataserv=stamp.day;//число
 munthserv=strm[stamp.month-1] ;// строка
 weekserv=strweek[stamp.dayOfWeek];// строка
 tweekday=stamp.dayOfWeek;//1-7
*/

    strdat="";
  myFile = SD.open("/timerd.txt", FILE_READ);
   while(myFile.available()) {

   strdat+=char(myFile.read());
  
  }
 myFile.close();
   timerdata=strdat;
   Serial.println ("timerdata");
   Serial.println (timerdata);
   
      strdat="";
  myFile = SD.open("/week.txt", FILE_READ);
   while(myFile.available()) {

   strdat+=char(myFile.read());
  
  }
 myFile.close();
   timerweek=strdat;
   Serial.println ("timerdata");
   Serial.println (timerweek);
   
         strdat="";
  myFile = SD.open("/tdout.txt", FILE_READ);
   while(myFile.available()) {

   strdat+=char(myFile.read());
  
  }
 myFile.close();
   timerout=strdat;
   Serial.println ("timerout");
   Serial.println (timerout);

       strdat="";
  myFile = SD.open("/akva.txt", FILE_READ);
   while(myFile.available()) {

   strdat+=char(myFile.read());
  
  }
 

  myFile.close();
   jsonStringakva=strdat;
   Serial.println (jsonStringakva);
myObject = JSON.parse(strdat);

 if (myObject.hasOwnProperty("id")) {
String id=((const char*) myObject["id"]);}
  if (myObject.hasOwnProperty("tempakv1")) {
takva1=((const char*) myObject["tempakv1"]);}
if (myObject.hasOwnProperty("light1")) {
light=((const char*) myObject["light1"]);}
if (myObject.hasOwnProperty("timakv1")) {
timeakva=((const char*) myObject["timakv1"]);}
if (myObject.hasOwnProperty("fan1")) {
fan1=((const char*) myObject["fan1"]);}
  if (myObject.hasOwnProperty("tempakv2")) {
takva2=((const char*) myObject["tempakv2"]);}
if (myObject.hasOwnProperty("fan2")) {
fan2=((const char*) myObject["fan2"]);}
  if (myObject.hasOwnProperty("tempakv3")) {
takva3=((const char*) myObject["tempakv3"]);}
if (myObject.hasOwnProperty("fan3")) {
fan3=((const char*) myObject["fan3"]);}

}


void Sdread()
{//jsonStringout= "{"id":"out","out1":"101"}";// 0-выкл  1-вкл
  //получаем состояние выходов изаписывам их в gpio
        strdat="";
  myFile = SD.open("/output.txt", FILE_READ);
   while(myFile.available()) {

   strdat+=char(myFile.read());
  
  }
 myFile.close();
   jsonStringout=strdat;
//  gpio[3]={0,0,0};//выходы состояние {gpio 4, gpio 26, gpio 27,timer}{1,1,1,1}
Serial.println (jsonStringout);
 JSONVar myObject = JSON.parse(jsonStringout);//парсинг JSON
 String outGPIO;
    if (myObject.hasOwnProperty("out1")) {
   outGPIO=((const char*) myObject["out1"]);}
    Serial.println (outGPIO); 
    Serial.println (outGPIO[2]); 
   if(outGPIO[0]=='1')
   { digitalWrite(4, HIGH);
   gpio[0]=1;
   }
    else
   {digitalWrite(4, LOW);
   gpio[0]=0;
   }
    if(outGPIO[1]=='1')
   { digitalWrite(26, HIGH);
   gpio[1]=1;
   }
    else
   {digitalWrite(26, LOW);
   gpio[1]=0;
   }
    if(outGPIO[2]=='1')
   { digitalWrite(27, HIGH);
   gpio[2]=1;
   }
    else
   {digitalWrite(27, LOW);
   gpio[2]=0;
   }
      if(outGPIO[3]=='1')
   { //digitalWrite(27, HIGH);
   gpio[3]=1;
   }
    else
   {//digitalWrite(27, LOW);
   gpio[3]=0;
   }
  timerconvert();
}

void readdata()
{delay(0);
  //****************************************************
  // формируем имя файла и путь к нему /TEMPUL/D-2022/FEBR/27/T1.txt
String name1="/TEMPUL"+ String(stryen[year1-2014])+String(strmen[month1-1])+String(strden[data1-1])+String(strdaten[nti]);
//String name1="/TEMPUL1/D-2025/FEBR/27/T5.txt";
 char Buf[50];
name1.toCharArray(Buf, 50);
 
 myFile = SD.open(Buf, FILE_READ);//открывам файл
  while(myFile.available()) {
    Serial.write(myFile.read());
  }
  Serial.println(" ");   
 // Узнаем размер файла:
  Serial.print("File size: ");
           //  "Размер файла: "
  Serial.println(myFile.size());
 myFile.close();

strdat="";

 Serial.println("/TEMPUL/D-2022/FEBR/27/T.txt");
 myFile = SD.open(Buf, FILE_READ);
 while(myFile.available()) {
      strdat+=char(myFile.read());//считываем текс файла в строковую переменную
       }
      myFile.close();
delay(0);
  esp_task_wdt_reset();//reset WDT
delay(0);

 board1["tdata"] = strdat; 
   board1["dataserv"] = dataserv;
     board1["timeserv"] = timeserv;
jsonString1 = JSON.stringify(board1);
 // Serial.println (jsonString1);
 // Serial.println ("strdat=");
 //Serial.println (strdat);
  delay(0);
 // events.send(tempdat.c_str(), "readings", millis());//обновление веба
  // events.send(strdat.c_str(), "readings", millis());//обновление веба
}

void readakva()
{delay(0);
  //****************************************************
  // формируем имя файла и путь к нему /AKVA/D-2022/FEBR/27/T10.txt
  nti=9;
String name1="/AKVA"+ String(stryen[year1-2014])+String(strmen[month1-1])+String(strden[data1-1])+String(strdaten[nti]);
//String name1="/AKVA/D-2025/FEBR/27/T10.txt";
 char Buf[50];
name1.toCharArray(Buf, 50);
 


strdat="";

 myFile = SD.open(Buf, FILE_READ);
 while(myFile.available()) {
      strdat+=char(myFile.read());//считываем текс файла в строковую переменную
       }
      myFile.close();
delay(0);
  esp_task_wdt_reset();//reset WDT
delay(0);
// Serial.println (strdat);
   delay(0);

}
