Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

maximum number of variables #1

Open
sevelm opened this issue Mar 23, 2023 · 0 comments
Open

maximum number of variables #1

sevelm opened this issue Mar 23, 2023 · 0 comments

Comments

@sevelm
Copy link

sevelm commented Mar 23, 2023

hey,
what is the maximum number of variables to use? I have the problem that I already have a relatively large number of variables and unfortunately not even all of them, but the system is becoming more and more unstable.
In your opinion, how could this be simplified and optimized so that the whole thing is not too detrimental to computing power.

thx

//START Funktion for Websocket -> write from Website ///////////////////////////////////////////////////////
void webSocketEvent(byte num, WStype_t type, uint8_t * payload, size_t length) {      // the parameters of this callback function are always the same -> num: id of the client who send the event, type: type of message, payload: actual data sent and length: length of payload
  switch (type) {                                     // switch on the type of information sent
    case WStype_DISCONNECTED:                         // if a client is disconnected, then type == WStype_DISCONNECTED
      Serial.println("Client " + String(num) + " disconnected");
      break;
    case WStype_CONNECTED:                            // if a client is connected, then type == WStype_CONNECTED
      Serial.println("Client " + String(num) + " connected");
      //websDevNbr = 1;
      // optionally you can add code here what to do when connected
      break;
    case WStype_TEXT:                                 // if a client has sent data, then type == WStype_TEXT
      // try to decipher the JSON string received
      //StaticJsonDocument<200> doc;
      DynamicJsonDocument doc(2048); // create a JSON container
      DeserializationError error = deserializeJson(doc, payload);
      if (error) {
        Serial.print(F("deserializeJson() failed: "));
        Serial.println(error.f_str());
        return;
      }
      else {
        // JSON string was received correctly, so information can be retrieved:
        JsonVariantConst val;
        /*Allgemein Dashboard*/
        val = doc["wallbox"];              if (val != nullptr) {          websDevNbr = val.as<short>();        }
        val = doc["maxGridCurrent_contr"]; if (val != nullptr) {          preferences.putShort("maxGridCurr", val.as<short>());        }
        val = doc["restart_contr"];        if (val != nullptr) {          delay (200); ESP.restart(); }        
        /*Control Ladecontroller*/
        val = doc["ChContr4_contr"];       if (val != nullptr) {          mb.Hreg(Device[websDevNbr].NbrTCPwriteReg + 2, val.as<short>());  } // Unlock    
        val = doc["ChContr5_contr"];       if (val != nullptr) {          mb.Hreg(Device[websDevNbr].NbrTCPwriteReg + 3, val.as<short>());  } // Release      
        val = doc["ChContr6_contr"];       if (val != nullptr) {          mb.Hreg(Device[websDevNbr].NbrTCPwriteReg + 4, val.as<short>());  } // Set Charge Current        
        /*Control RFID*/
        val = doc["rfidBuzzer_contr"];     if (val != nullptr) {          mb.Hreg(Device[websDevNbr].NbrTCPwriteReg + 5, val.as<short>());  } // Control RFID Buzzer       
        val = doc["rfidLed_contr"];        if (val != nullptr) {          mb.Hreg(Device[websDevNbr].NbrTCPwriteReg + 6, val.as<short>());  } // Control RFID LED
        val = doc["RFID_contr"];           if (val != nullptr) { 
            switch (websDevNbr) {
                case 1        : preferences.putShort("wallbox1RFID", val.as<short>());break;
                case 2        : preferences.putShort("wallbox2RFID", val.as<short>());break;
                case 3        : preferences.putShort("wallbox3RFID", val.as<short>());break;
            }}       
        /*Control IP-Settings*/
        val = doc["staticIpAdress1"];      if (val != nullptr) {          preferences.putShort("staticIpAdress1", val.as<short>());        }
        val = doc["staticIpAdress2"];      if (val != nullptr) {          preferences.putShort("staticIpAdress2", val.as<short>());        }
        val = doc["staticIpAdress3"];      if (val != nullptr) {          preferences.putShort("staticIpAdress3", val.as<short>());        }
        val = doc["staticIpAdress4"];      if (val != nullptr) {          preferences.putShort("staticIpAdress4", val.as<short>());        }
        val = doc["staticSubnet1"];        if (val != nullptr) {          preferences.putShort("staticSubnet1", val.as<short>());        }
        val = doc["staticSubnet2"];        if (val != nullptr) {          preferences.putShort("staticSubnet2", val.as<short>());        }
        val = doc["staticSubnet3"];        if (val != nullptr) {          preferences.putShort("staticSubnet3", val.as<short>());        }
        val = doc["staticSubnet4"];        if (val != nullptr) {          preferences.putShort("staticSubnet4", val.as<short>());        }
        val = doc["staticGateway1"];       if (val != nullptr) {          preferences.putShort("staticGateway1", val.as<short>());       }
        val = doc["staticGateway2"];       if (val != nullptr) {          preferences.putShort("staticGateway2", val.as<short>());       }
        val = doc["staticGateway3"];       if (val != nullptr) {          preferences.putShort("staticGateway3", val.as<short>());       }
        val = doc["staticGateway4"];       if (val != nullptr) {          preferences.putShort("staticGateway4", val.as<short>());       }
        val = doc["staticDns1"];           if (val != nullptr) {          preferences.putShort("staticDns1", val.as<short>());        }
        val = doc["staticDns2"];           if (val != nullptr) {          preferences.putShort("staticDns2", val.as<short>());        }
        val = doc["staticDns3"];           if (val != nullptr) {          preferences.putShort("staticDns3", val.as<short>());        }
        val = doc["staticDns4"];           if (val != nullptr) {          preferences.putShort("staticDns4", val.as<short>());        }
        val = doc["staticIp_contr"];       if (val != nullptr) {          preferences.putShort("staticIpCtrl", val.as<short>());      }
        val = doc["setIpSettings"];        if (val != nullptr) {          delay (200); ESP.restart(); }
        /*Enable/Disable Wallbox*/
        val = doc["wallbox1cc_contr"];     if (val != nullptr) {          preferences.putShort("wb1cc_state", val.as<short>());        }
        val = doc["wallbox1em_contr"];     if (val != nullptr) {          preferences.putShort("wb1em_state", val.as<short>());        }
        val = doc["wallbox1rfid_contr"];   if (val != nullptr) {          preferences.putShort("wb1rfid_state", val.as<short>());      }
        val = doc["wallbox2cc_contr"];     if (val != nullptr) {          preferences.putShort("wb2cc_state", val.as<short>());        }
        val = doc["wallbox2em_contr"];     if (val != nullptr) {          preferences.putShort("wb2em_state", val.as<short>());        }
        val = doc["wallbox2rfid_contr"];   if (val != nullptr) {          preferences.putShort("wb2rfid_state", val.as<short>());      }
        val = doc["wallbox3cc_contr"];     if (val != nullptr) {          preferences.putShort("wb3cc_state", val.as<short>());        }
        val = doc["wallbox3em_contr"];     if (val != nullptr) {          preferences.putShort("wb3em_state", val.as<short>());        }
        val = doc["wallbox3rfid_contr"];   if (val != nullptr) {          preferences.putShort("wb3rfid_state", val.as<short>());      }
        /*NTP Settings*/
        val = doc["NTP_contr"];            if (val != nullptr) {          preferences.putShort("NTP_contr", val.as<short>());          }
        val = doc["ntpServervalue_contr"]; if (val != nullptr) {          preferences.putString("NTP_UrlState", val.as<String>());     }
        /*OCPP Settings*/
        val = doc["OCCP_contr"];           if (val != nullptr) {          preferences.putShort("OCPP_contr", val.as<short>());         }
        val = doc["OCCP_TLS_contr"];       if (val != nullptr) {          preferences.putShort("OCPP_TLS_contr", val.as<short>());     }
        val = doc["ocppHostIp_contr"];     if (val != nullptr) {          preferences.putString("ocppHostIp", val.as<String>());       }
        val = doc["ocppHostPort_contr"];   if (val != nullptr) {          preferences.putString("ocppHostPort", val.as<String>());     }
        val = doc["ocppHostAuthId_contr"]; if (val != nullptr) {          preferences.putString("ocppHostAuthId", val.as<String>());   }
        val = doc["ocppHostAuthKey_contr"];if (val != nullptr) {          preferences.putString("ocppHostAuthKey", val.as<String>());  }
        val = doc["ocppHostUrl_contr"];    if (val != nullptr) {          preferences.putString("ocppHostUrl", val.as<String>());      }
        /*RFID Settings*/        
        val = doc["rfid1_contr"];          if (val != nullptr) {          preferences.putString("rfid1_Tag", val.as<String>());        }
        val = doc["rfid2_contr"];          if (val != nullptr) {          preferences.putString("rfid2_Tag", val.as<String>());        }
        val = doc["rfid3_contr"];          if (val != nullptr) {          preferences.putString("rfid3_Tag", val.as<String>());        }
        val = doc["rfid4_contr"];          if (val != nullptr) {          preferences.putString("rfid4_Tag", val.as<String>());        }
        val = doc["rfid5_contr"];          if (val != nullptr) {          preferences.putString("rfid5_Tag", val.as<String>());        }
        val = doc["rfid6_contr"];          if (val != nullptr) {          preferences.putString("rfid6_Tag", val.as<String>());        }
        val = doc["rfid7_contr"];          if (val != nullptr) {          preferences.putString("rfid7_Tag", val.as<String>());        }
        val = doc["rfid8_contr"];          if (val != nullptr) {          preferences.putString("rfid8_Tag", val.as<String>());        }
        val = doc["rfid9_contr"];          if (val != nullptr) {          preferences.putString("rfid9_Tag", val.as<String>());        }
        val = doc["rfid10_contr"];         if (val != nullptr) {          preferences.putString("rfid10_Tag", val.as<String>());       }
        val = doc["rfid11_contr"];         if (val != nullptr) {          preferences.putString("rfid11_Tag", val.as<String>());       }
        val = doc["rfid12_contr"];         if (val != nullptr) {          preferences.putString("rfid12_Tag", val.as<String>());       }
        val = doc["rfid13_contr"];         if (val != nullptr) {          preferences.putString("rfid13_Tag", val.as<String>());       }
        val = doc["rfid14_contr"];         if (val != nullptr) {          preferences.putString("rfid14_Tag", val.as<String>());       }
        val = doc["rfid15_contr"];         if (val != nullptr) {          preferences.putString("rfid15_Tag", val.as<String>());       }
        val = doc["rfid16_contr"];         if (val != nullptr) {          preferences.putString("rfid16_Tag", val.as<String>());       }
        val = doc["rfid17_contr"];         if (val != nullptr) {          preferences.putString("rfid17_Tag", val.as<String>());       }
        val = doc["rfid18_contr"];         if (val != nullptr) {          preferences.putString("rfid18_Tag", val.as<String>());       }
        val = doc["rfid19_contr"];         if (val != nullptr) {          preferences.putString("rfid19_Tag", val.as<String>());       }
        val = doc["rfid20_contr"];         if (val != nullptr) {          preferences.putString("rfid20_Tag", val.as<String>());       }
        val = doc["rfid1Name_contr"];      if (val != nullptr) {          preferences.putString("rfid1_Name", val.as<String>());        }
        val = doc["rfid2Name_contr"];      if (val != nullptr) {          preferences.putString("rfid2_Name", val.as<String>());        }
        val = doc["rfid3Name_contr"];      if (val != nullptr) {          preferences.putString("rfid3_Name", val.as<String>());        }
        val = doc["rfid4Name_contr"];      if (val != nullptr) {          preferences.putString("rfid4_Name", val.as<String>());        }
        val = doc["rfid5Name_contr"];      if (val != nullptr) {          preferences.putString("rfid5_Name", val.as<String>());        }
        val = doc["rfid6Name_contr"];      if (val != nullptr) {          preferences.putString("rfid6_Name", val.as<String>());        }
        val = doc["rfid7Name_contr"];      if (val != nullptr) {          preferences.putString("rfid7_Name", val.as<String>());        }
        val = doc["rfid8Name_contr"];      if (val != nullptr) {          preferences.putString("rfid8_Name", val.as<String>());        }
        val = doc["rfid9Name_contr"];      if (val != nullptr) {          preferences.putString("rfid9_Name", val.as<String>());        }
        val = doc["rfid10Name_contr"];     if (val != nullptr) {          preferences.putString("rfid10_Name", val.as<String>());       }
        val = doc["rfid11Name_contr"];     if (val != nullptr) {          preferences.putString("rfid11_Name", val.as<String>());       }
        val = doc["rfid12Name_contr"];     if (val != nullptr) {          preferences.putString("rfid12_Name", val.as<String>());       }
        val = doc["rfid13Name_contr"];     if (val != nullptr) {          preferences.putString("rfid13_Name", val.as<String>());       }
        val = doc["rfid14Name_contr"];     if (val != nullptr) {          preferences.putString("rfid14_Name", val.as<String>());       }
        val = doc["rfid15Name_contr"];     if (val != nullptr) {          preferences.putString("rfid15_Name", val.as<String>());       }
        val = doc["rfid16Name_contr"];     if (val != nullptr) {          preferences.putString("rfid16_Name", val.as<String>());       }
        val = doc["rfid17Name_contr"];     if (val != nullptr) {          preferences.putString("rfid17_Name", val.as<String>());       }
        val = doc["rfid18Name_contr"];     if (val != nullptr) {          preferences.putString("rfid18_Name", val.as<String>());       }
        val = doc["rfid19Name_contr"];     if (val != nullptr) {          preferences.putString("rfid19_Name", val.as<String>());       }
        val = doc["rfid20Name_contr"];     if (val != nullptr) {          preferences.putString("rfid20_Name", val.as<String>());       }             
        val = doc["rfid1Time_contr"];      if (val != nullptr) {          preferences.putInt("rfid1_Time", val.as<signed int>());        }
        val = doc["rfid2Time_contr"];      if (val != nullptr) {          preferences.putInt("rfid2_Time", val.as<signed int>());        }
        val = doc["rfid3Time_contr"];      if (val != nullptr) {          preferences.putInt("rfid3_Time", val.as<signed int>());        }
        val = doc["rfid4Time_contr"];      if (val != nullptr) {          preferences.putInt("rfid4_Time", val.as<signed int>());        }
        val = doc["rfid5Time_contr"];      if (val != nullptr) {          preferences.putInt("rfid5_Time", val.as<signed int>());        }
        val = doc["rfid6Time_contr"];      if (val != nullptr) {          preferences.putInt("rfid6_Time", val.as<signed int>());        }
        val = doc["rfid7Time_contr"];      if (val != nullptr) {          preferences.putInt("rfid7_Time", val.as<signed int>());        }
        val = doc["rfid8Time_contr"];      if (val != nullptr) {          preferences.putInt("rfid8_Time", val.as<signed int>());        }
        val = doc["rfid9Time_contr"];      if (val != nullptr) {          preferences.putInt("rfid9_Time", val.as<signed int>());        }
        val = doc["rfid10Time_contr"];     if (val != nullptr) {          preferences.putInt("rfid10_Time", val.as<signed int>());       }
        val = doc["rfid11Time_contr"];     if (val != nullptr) {          preferences.putInt("rfid11_Time", val.as<signed int>());       }
        val = doc["rfid12Time_contr"];     if (val != nullptr) {          preferences.putInt("rfid12_Time", val.as<signed int>());       }
        val = doc["rfid13Time_contr"];     if (val != nullptr) {          preferences.putInt("rfid13_Time", val.as<signed int>());       }
        val = doc["rfid14Time_contr"];     if (val != nullptr) {          preferences.putInt("rfid14_Time", val.as<signed int>());       }
        val = doc["rfid15Time_contr"];     if (val != nullptr) {          preferences.putInt("rfid15_Time", val.as<signed int>());       }
        val = doc["rfid16Time_contr"];     if (val != nullptr) {          preferences.putInt("rfid16_Time", val.as<signed int>());       }
        val = doc["rfid17Time_contr"];     if (val != nullptr) {          preferences.putInt("rfid17_Time", val.as<signed int>());       }
        val = doc["rfid18Time_contr"];     if (val != nullptr) {          preferences.putInt("rfid18_Time", val.as<signed int>());       }
        val = doc["rfid19Time_contr"];     if (val != nullptr) {          preferences.putInt("rfid19_Time", val.as<signed int>());       }
        val = doc["rfid20Time_contr"];     if (val != nullptr) {          preferences.putInt("rfid20_Time", val.as<signed int>());       }  
         /*OCPP InnoCharge Controller*/       
        val = doc["ChrgPowr_contr"];       if (val != nullptr) {          preferences.putInt("ChrgPowr_contr", val.as<signed int>());       }
        val = doc["ChrgCurr_contr"];       if (val != nullptr) {          preferences.putInt("ChrgCurr_contr", val.as<signed int>());       }
        val = doc["ChrgMaxCurr_contr"];    if (val != nullptr) {          preferences.putInt("ChrgMaxCurr", val.as<signed int>());       }
        val = doc["ChrgMinCurr_contr"];    if (val != nullptr) {          preferences.putInt("ChrgMinCurr", val.as<signed int>());       }
        val = doc["LcSwitch1_contr"];      if (val != nullptr) {          preferences.putInt("LcSwitch1_cont", val.as<signed int>());       }
        val = doc["LcSwitch2_contr"];      if (val != nullptr) {          preferences.putInt("LcSwitch2_cont", val.as<signed int>());       }  

        serializeJsonPretty(doc, Serial);

      }
      //Serial.println("");
      break;
  }
}
//END Funktion for Websocket -> write from Website ///////////////////////////////////////////////////////


//////////////////////////////////////////////////// Setup ///////////////////////////////////////////////////
//////////////////////////////////////////////////// Setup ///////////////////////////////////////////////////
//////////////////////////////////////////////////// Setup ///////////////////////////////////////////////////
//////////////////////////////////////////////////// Setup ///////////////////////////////////////////////////
static void A_Task1(void *arg) {


//////////////////////////////////////////////////// Loop ///////////////////////////////////////////////////
//////////////////////////////////////////////////// Loop ///////////////////////////////////////////////////
//////////////////////////////////////////////////// Loop ///////////////////////////////////////////////////
  while (1) {


       // Update function for the webSockets 
      webSocket.onEvent(webSocketEvent);                  // define a callback function -> what does the ESP32 need to do when an event from the websocket is received? -> run function "webSocketEvent()"   

  if (xTaskGetTickCount() - previousMillis >= 500) { // check if "interval" ms has passed since last time the clients were updated
    previousMillis = xTaskGetTickCount();
       
   // Modbus and Websocket
   
            
            // RFID-Enable/Disable zuweisen
            Device[1].CheckRFIDEnable = preferences.getShort("wallbox1RFID", 0);   
            Device[2].CheckRFIDEnable = preferences.getShort("wallbox2RFID", 0);  
            Device[3].CheckRFIDEnable = preferences.getShort("wallbox3RFID", 0);  
            RFIDTags[0] = preferences.getString("rfid1_Tag","");  
            RFIDTags[1] = preferences.getString("rfid2_Tag",""); 
            RFIDTags[2] = preferences.getString("rfid3_Tag",""); 
            RFIDTags[3] = preferences.getString("rfid4_Tag",""); 
            RFIDTags[4] = preferences.getString("rfid5_Tag",""); 
            RFIDTags[5] = preferences.getString("rfid6_Tag",""); 
            RFIDTags[6] = preferences.getString("rfid7_Tag",""); 
            RFIDTags[7] = preferences.getString("rfid8_Tag",""); 
            RFIDTags[8] = preferences.getString("rfid9_Tag",""); 
            RFIDTags[9] = preferences.getString("rfid10_Tag",""); 
            RFIDTags[10] = preferences.getString("rfid11_Tag",""); 
            RFIDTags[11] = preferences.getString("rfid12_Tag",""); 
            RFIDTags[12] = preferences.getString("rfid13_Tag",""); 
            RFIDTags[13] = preferences.getString("rfid14_Tag",""); 
            RFIDTags[14] = preferences.getString("rfid15_Tag",""); 
            RFIDTags[15] = preferences.getString("rfid16_Tag",""); 
            RFIDTags[16] = preferences.getString("rfid17_Tag",""); 
            RFIDTags[17] = preferences.getString("rfid18_Tag",""); 
            RFIDTags[18] = preferences.getString("rfid19_Tag",""); 
            RFIDTags[19] = preferences.getString("rfid20_Tag","");  
            RFIDTagsName[0] = preferences.getString("rfid1_Name","");  
            RFIDTagsName[1] = preferences.getString("rfid2_Name",""); 
            RFIDTagsName[2] = preferences.getString("rfid3_Name",""); 
            RFIDTagsName[3] = preferences.getString("rfid4_Name",""); 
            RFIDTagsName[4] = preferences.getString("rfid5_Name",""); 
            RFIDTagsName[5] = preferences.getString("rfid6_Name",""); 
            RFIDTagsName[6] = preferences.getString("rfid7_Name",""); 
            RFIDTagsName[7] = preferences.getString("rfid8_Name",""); 
            RFIDTagsName[8] = preferences.getString("rfid9_Name",""); 
            RFIDTagsName[9] = preferences.getString("rfid10_Name",""); 
            RFIDTagsName[10] = preferences.getString("rfid11_Name",""); 
            RFIDTagsName[11] = preferences.getString("rfid12_Name",""); 
            RFIDTagsName[12] = preferences.getString("rfid13_Name",""); 
            RFIDTagsName[13] = preferences.getString("rfid14_Name",""); 
            RFIDTagsName[14] = preferences.getString("rfid15_Name",""); 
            RFIDTagsName[15] = preferences.getString("rfid16_Name",""); 
            RFIDTagsName[16] = preferences.getString("rfid17_Name",""); 
            RFIDTagsName[17] = preferences.getString("rfid18_Name",""); 
            RFIDTagsName[18] = preferences.getString("rfid19_Name",""); 
            RFIDTagsName[19] = preferences.getString("rfid20_Name","");         
            RFIDTagsTime[0] = preferences.getInt("rfid1_Time",0);  
            RFIDTagsTime[1] = preferences.getInt("rfid2_Time",0); 
            RFIDTagsTime[2] = preferences.getInt("rfid3_Time",0); 
            RFIDTagsTime[3] = preferences.getInt("rfid4_Time",0); 
            RFIDTagsTime[4] = preferences.getInt("rfid5_Time",0); 
            RFIDTagsTime[5] = preferences.getInt("rfid6_Time",0); 
            RFIDTagsTime[6] = preferences.getInt("rfid7_Time",0); 
            RFIDTagsTime[7] = preferences.getInt("rfid8_Time",0); 
            RFIDTagsTime[8] = preferences.getInt("rfid9_Time",0); 
            RFIDTagsTime[9] = preferences.getInt("rfid10_Time",0); 
            RFIDTagsTime[10] = preferences.getInt("rfid11_Time",0); 
            RFIDTagsTime[11] = preferences.getInt("rfid12_Time",0); 
            RFIDTagsTime[12] = preferences.getInt("rfid13_Time",0); 
            RFIDTagsTime[13] = preferences.getInt("rfid14_Time",0); 
            RFIDTagsTime[14] = preferences.getInt("rfid15_Time",0); 
            RFIDTagsTime[15] = preferences.getInt("rfid16_Time",0); 
            RFIDTagsTime[16] = preferences.getInt("rfid17_Time",0); 
            RFIDTagsTime[17] = preferences.getInt("rfid18_Time",0); 
            RFIDTagsTime[18] = preferences.getInt("rfid19_Time",0); 
            RFIDTagsTime[19] = preferences.getInt("rfid20_Time",0); 

              // JSON Objekte für Webinterface erstellen und zuweisen
              String jsonString = "";                           // create a JSON string for sending data to the client
              DynamicJsonDocument doc(3072);
              // DynamicJsonDocument<4096> doc;                     // create a JSON container
              JsonObject object = doc.to<JsonObject>();         // create a JSON Object
              // write data into the JSON object ->
          
              uint32_t  writeReg = Device[websDevNbr].NbrTCPwriteReg;
              /*Status Allgemein*/
              object["wallbox_select"]        = websDevNbr;      
              object["maxGridCurrent_contr"]  = preferences.getShort("maxGridCurr", 0);
              /*Status Ladecontroller*/
              object["ChContr1_state"] = Device[websDevNbr].strActual_value_lc[0];
              object["ChContr2_state"] = Device[websDevNbr].strActual_value_lc[1];
              object["ChContr3_state"] = Device[websDevNbr].strActual_value_lc[2];
              object["ChContr4_state"] = Device[websDevNbr].strActual_value_lc[3]; 
              object["ChContr5_state"] = Device[websDevNbr].strActual_value_lc[4];
              object["ChContr6_state"] = Device[websDevNbr].strActual_value_lc[5];
              /*Status Energymeter*/
              object["EnMtr1_state"] = Device[websDevNbr].strActual_value_en[0];
              object["EnMtr2_state"] = Device[websDevNbr].strActual_value_en[1];
              object["EnMtr3_state"] = Device[websDevNbr].strActual_value_en[2];
              object["EnMtr4_state"] = Device[websDevNbr].strActual_value_en[3];
              object["EnMtr5_state"] = Device[websDevNbr].strActual_value_en[4];
              object["EnMtr6_state"] = Device[websDevNbr].strActual_value_en[5];
              object["EnMtr7_state"] = Device[websDevNbr].strActual_value_en[6];
              object["EnMtr8_state"] = Device[websDevNbr].strActual_value_en[7];
              object["EnMtr9_state"] = Device[websDevNbr].strActual_value_en[8];
              object["EnMtr10_state"] = Device[websDevNbr].strActual_value_en[9];
              object["EnMtr11_state"] = Device[websDevNbr].strActual_value_en[10];
              object["EnMtr12_state"] = Device[websDevNbr].strActual_value_en[11];
              object["EnMtr13_state"] = Device[websDevNbr].strActual_value_en[12];
              object["EnMtr14_state"] = Device[websDevNbr].strActual_value_en[13];
              object["EnMtr15_state"] = Device[websDevNbr].strActual_value_en[14];
              object["EnMtr16_state"] = Device[websDevNbr].strActual_value_en[15];
              /*Status RFID*/
              object["cardSerial_state"]  =  Device[websDevNbr].ActualRFIDTag;
              object["buzzer_state"]      =  mb.Hreg(writeReg + 5);
              object["RFIDLed_state"]     =  mb.Hreg(writeReg + 6);
              object["RFID_state"]        =  Device[websDevNbr].CheckRFIDEnable; //mb.Hreg(writeReg);        //Disable or Enable from Whitelist
              object["lastRFID_state"]    =  Device[websDevNbr].latestRFIDTag;
              /*Whitelist RFID*/
              object["rfid1_state"] = RFIDTags[0];
              object["rfid2_state"] = RFIDTags[1];
              object["rfid3_state"] = RFIDTags[2];
              object["rfid4_state"] = RFIDTags[3];
              object["rfid5_state"] = RFIDTags[4];
              object["rfid6_state"] = RFIDTags[5];
              object["rfid7_state"] = RFIDTags[6];
              object["rfid8_state"] = RFIDTags[7];
              object["rfid9_state"] = RFIDTags[8];
              object["rfid10_state"] = RFIDTags[9];
              object["rfid11_state"] = RFIDTags[10];
              object["rfid12_state"] = RFIDTags[11];
              object["rfid13_state"] = RFIDTags[12];
              object["rfid14_state"] = RFIDTags[13];
              object["rfid15_state"] = RFIDTags[14];
              object["rfid16_state"] = RFIDTags[15];
              object["rfid17_state"] = RFIDTags[16];
              object["rfid18_state"] = RFIDTags[17];
              object["rfid19_state"] = RFIDTags[18];
              object["rfid20_state"] = RFIDTags[19];
              object["rfid1Name_state"] = RFIDTagsName[0];
              object["rfid2Name_state"] = RFIDTagsName[1];
              object["rfid3Name_state"] = RFIDTagsName[2];
              object["rfid4Name_state"] = RFIDTagsName[3];
              object["rfid5Name_state"] = RFIDTagsName[4];
              object["rfid6Name_state"] = RFIDTagsName[5];
              object["rfid7Name_state"] = RFIDTagsName[6];
              object["rfid8Name_state"] = RFIDTagsName[7];
              object["rfid9Name_state"] = RFIDTagsName[8];
              object["rfid10Name_state"] = RFIDTagsName[9];
              object["rfid11Name_state"] = RFIDTagsName[10];
              object["rfid12Name_state"] = RFIDTagsName[11];
              object["rfid13Name_state"] = RFIDTagsName[12];
              object["rfid14Name_state"] = RFIDTagsName[13];
              object["rfid15Name_state"] = RFIDTagsName[14];
              object["rfid16Name_state"] = RFIDTagsName[15];
              object["rfid17Name_state"] = RFIDTagsName[16];
              object["rfid18Name_state"] = RFIDTagsName[17];
              object["rfid19Name_state"] = RFIDTagsName[18];
              object["rfid20Name_state"] = RFIDTagsName[19];
              object["rfid1Time_state"] = RFIDTagsTime[0];
              object["rfid2Time_state"] = RFIDTagsTime[1];
              object["rfid3Time_state"] = RFIDTagsTime[2];
              object["rfid4Time_state"] = RFIDTagsTime[3];
              object["rfid5Time_state"] = RFIDTagsTime[4];
              object["rfid6Time_state"] = RFIDTagsTime[5];
              object["rfid7Time_state"] = RFIDTagsTime[6];
              object["rfid8Time_state"] = RFIDTagsTime[7];
              object["rfid9Time_state"] = RFIDTagsTime[8];
              object["rfid10Time_state"] = RFIDTagsTime[9];
              object["rfid11Time_state"] = RFIDTagsTime[10];
              object["rfid12Time_state"] = RFIDTagsTime[11];
              object["rfid13Time_state"] = RFIDTagsTime[12];
              object["rfid14Time_state"] = RFIDTagsTime[13];
              object["rfid15Time_state"] = RFIDTagsTime[14];
              object["rfid16Time_state"] = RFIDTagsTime[15];
              object["rfid17Time_state"] = RFIDTagsTime[16];
              object["rfid18Time_state"] = RFIDTagsTime[17];
              object["rfid19Time_state"] = RFIDTagsTime[18];
              object["rfid20Time_state"] = RFIDTagsTime[19];
              /*Status IP-Adress*/

              IpAddress2Split(readIpAdress, ETH.localIP());
              IpAddress2Split(readSubnet, ETH.subnetMask());
              IpAddress2Split(readGateway, ETH.gatewayIP());
              IpAddress2Split(readDns, ETH.dnsIP());
              
              object["IP_WebInf1_state"] = readIpAdress[0];
              object["IP_WebInf2_state"] = readIpAdress[1];
              object["IP_WebInf3_state"] = readIpAdress[2];
              object["IP_WebInf4_state"] = readIpAdress[3];
              object["SUB_WebInf1_state"] = readSubnet[0];
              object["SUB_WebInf2_state"] = readSubnet[1];
              object["SUB_WebInf3_state"] = readSubnet[2];
              object["SUB_WebInf4_state"] = readSubnet[3];
              object["GATE_WebInf1_state"] = readGateway[0];
              object["GATE_WebInf2_state"] = readGateway[1];
              object["GATE_WebInf3_state"] = readGateway[2];
              object["GATE_WebInf4_state"] = readGateway[3];
              object["DNS_WebInf1_state"] = readDns[0];
              object["DNS_WebInf2_state"] = readDns[1];
              object["DNS_WebInf3_state"] = readDns[2];
              object["DNS_WebInf4_state"] = readDns[3];
              object["staticIp_state"] = staticIp_contr;
              /*Status NTP*/
              object["NTP_state"]             =  preferences.getShort("NTP_contr", 0);
              object["ntpServervalue_state"]  =  preferences.getString("NTP_UrlState","");
             // object["localtime_state"]       =  statusNTP_Time;
              /*Status OCPP*/
              object["OCPP_TLS_state"]        = preferences.getShort("OCPP_contr", 0);
              object["OCPP_state"]            = preferences.getShort("OCPP_TLS_contr", 0);   
              object["ocppHostIp_state"]      = preferences.getString("ocppHostIp","");
              object["ocppHostPort_state"]    = preferences.getString("ocppHostPort","");
              object["ocppHostAuthId_state"]  = preferences.getString("ocppHostAuthId","");
              object["ocppHostAuthKey_state"] = preferences.getString("ocppHostAuthKey","");
              object["ocppHostUrl_state"]     = preferences.getString("ocppHostUrl","");
              /*Status Enable / Disable Wallbox */
              object["wallbox1cc_state"]    = preferences.getShort("wb1cc_state", 0);
              object["wallbox1em_state"]    = preferences.getShort("wb1em_state", 0);
              object["wallbox1rfid_state"]  = preferences.getShort("wb1rfid_state", 0);
              object["wallbox2cc_state"]    = preferences.getShort("wb2cc_state", 0);
              object["wallbox2em_state"]    = preferences.getShort("wb2em_state", 0);
              object["wallbox2rfid_state"]  = preferences.getShort("wb2rfid_state", 0);
              object["wallbox3cc_state"]    = preferences.getShort("wb3cc_state", 0);
              object["wallbox3em_state"]    = preferences.getShort("wb3em_state", 0);
              object["wallbox3rfid_state"]  = preferences.getShort("wb3rfid_state", 0);
              object["wallbox1cc_io"]       = Device[1].ReadLC;
              object["wallbox1em_io"]       = Device[1].ReadEM;
              object["wallbox1rfid_io"]     = Device[1].ReadRFID;
              object["wallbox2cc_io"]       = Device[2].ReadLC;
              object["wallbox2em_io"]       = Device[2].ReadEM;
              object["wallbox2rfid_io"]     = Device[2].ReadRFID;
              object["wallbox3cc_io"]       = Device[3].ReadLC;
              object["wallbox3em_io"]       = Device[3].ReadEM;
              object["wallbox3rfid_io"]     = Device[3].ReadRFID;
               /*Status InnoCharge Controller */
              object["CpVolt_state"]        = 12; 
              object["ADCVolt_state"]       = 3700;                
              object["CpPilot_state"]       = 2; 
              object["ChrgPowr_state"]      = preferences.getInt("ChrgPowr_contr",0); 
              object["ChrgCurr_state"]      = preferences.getInt("ChrgCurr_contr",0);                                                        
              object["ChrgMaxCurr_state"]   = preferences.getInt("ChrgMaxCurr",0); 
              object["ChrgMinCurr_state"]   = preferences.getInt("ChrgMinCurr",0);  
              object["LcSwitch1_state"]     = preferences.getInt("LcSwitch1_cont",0); 
              object["LcSwitch2_state"]     = preferences.getInt("LcSwitch2_cont",0);              
                 
              serializeJson(doc, jsonString);                   // convert JSON object to string
              //Serial.println(jsonString);                       // print JSON string to console for debug purposes (you can comment this out)
              webSocket.broadcastTXT(jsonString);               // send JSON string to clients
  }
  
  vTaskDelay(10 / portTICK_PERIOD_MS); // verzögere den Task um 10ms 
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant