Merge branch 'main' into cud
This commit is contained in:
		
						commit
						4232bef7c3
					
				
					 2 changed files with 65 additions and 2 deletions
				
			
		| 
						 | 
					@ -38,6 +38,10 @@ char STATE_REQUEST_TOPIC[40];
 | 
				
			||||||
bool MQTT_USE_AUTH = false;
 | 
					bool MQTT_USE_AUTH = false;
 | 
				
			||||||
char MQTT_USERNAME[32];
 | 
					char MQTT_USERNAME[32];
 | 
				
			||||||
char MQTT_PASSWORD[32];
 | 
					char MQTT_PASSWORD[32];
 | 
				
			||||||
 | 
					#ifdef ENABLE_WEBUI
 | 
				
			||||||
 | 
					char WEBUI_USERNAME[32];
 | 
				
			||||||
 | 
					char WEBUI_PASSWORD[32];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
uint8_t utc_offset = 7;
 | 
					uint8_t utc_offset = 7;
 | 
				
			||||||
#ifdef ENABLE_CLIMATE_MODULE
 | 
					#ifdef ENABLE_CLIMATE_MODULE
 | 
				
			||||||
float current_room_temp = 0;
 | 
					float current_room_temp = 0;
 | 
				
			||||||
| 
						 | 
					@ -92,6 +96,11 @@ char AC_ROOM_TEMPERATURE_TOPIC[75];
 | 
				
			||||||
char AC_HUMIDITY_TOPIC[75];
 | 
					char AC_HUMIDITY_TOPIC[75];
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ENABLE_IR_MODULE
 | 
				
			||||||
 | 
					uint16_t ir_buffer[IR_RAW_BUFFER_LENGTH];
 | 
				
			||||||
 | 
					uint16_t ir_buffer_length = 0;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef ENABLE_ANALOG_MODULE
 | 
					#ifdef ENABLE_ANALOG_MODULE
 | 
				
			||||||
#define DAC_COUNT 4
 | 
					#define DAC_COUNT 4
 | 
				
			||||||
#define ADC_COUNT 8
 | 
					#define ADC_COUNT 8
 | 
				
			||||||
| 
						 | 
					@ -129,6 +138,8 @@ char DAC_VALUE_TOPIC[75];
 | 
				
			||||||
#define EEPROM_ADDRESS_ADC_REPORT_STATE 187 // 8bytes, thru 194
 | 
					#define EEPROM_ADDRESS_ADC_REPORT_STATE 187 // 8bytes, thru 194
 | 
				
			||||||
#define EEPROM_ADDRESS_DAC_STATE 195        // 4bytes, thru 198
 | 
					#define EEPROM_ADDRESS_DAC_STATE 195        // 4bytes, thru 198
 | 
				
			||||||
#define EEPROM_ADDRESS_DAC_VALUE 199        // 8bytes, thru 206
 | 
					#define EEPROM_ADDRESS_DAC_VALUE 199        // 8bytes, thru 206
 | 
				
			||||||
 | 
					#define EEPROM_ADDRESS_WEBUI_USERNAME 207   // 32bytes, thru 238
 | 
				
			||||||
 | 
					#define EEPROM_ADDRESS_WEBUI_PASSWORD 239   // 32bytes, thru 270
 | 
				
			||||||
 | 
					
 | 
				
			||||||
char PWM_STATE_TOPIC[75];
 | 
					char PWM_STATE_TOPIC[75];
 | 
				
			||||||
char PWM_VALUE_TOPIC[75];
 | 
					char PWM_VALUE_TOPIC[75];
 | 
				
			||||||
| 
						 | 
					@ -238,7 +249,18 @@ void loop()
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
void eeprom_retrieve_init()
 | 
					void eeprom_retrieve_init()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  #ifdef ENABLE_WEBUI
 | 
				
			||||||
 | 
					  ESPMega_FRAM.read(EEPROM_ADDRESS_WEBUI_USERNAME, (uint8_t *)WEBUI_USERNAME, 32);
 | 
				
			||||||
 | 
					  ESPMega_FRAM.read(EEPROM_ADDRESS_WEBUI_PASSWORD, (uint8_t *)WEBUI_PASSWORD, 32);
 | 
				
			||||||
 | 
					  if(strlen(WEBUI_USERNAME)==0) {
 | 
				
			||||||
 | 
					    strcpy(WEBUI_USERNAME,"admin");
 | 
				
			||||||
 | 
					    ESPMega_FRAM.write(EEPROM_ADDRESS_WEBUI_USERNAME, (uint8_t *)WEBUI_USERNAME, 32);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if(strlen(WEBUI_PASSWORD)==0) {
 | 
				
			||||||
 | 
					    strcpy(WEBUI_PASSWORD,"admin");
 | 
				
			||||||
 | 
					    ESPMega_FRAM.write(EEPROM_ADDRESS_WEBUI_PASSWORD, (uint8_t *)WEBUI_PASSWORD, 32);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
// EEPROM Data Retrival
 | 
					// EEPROM Data Retrival
 | 
				
			||||||
#ifdef ENABLE_CLIMATE_MODULE
 | 
					#ifdef ENABLE_CLIMATE_MODULE
 | 
				
			||||||
  ac_mode = ESPMega_FRAM.read8(EEPROM_ADDRESS_AC_MODE);
 | 
					  ac_mode = ESPMega_FRAM.read8(EEPROM_ADDRESS_AC_MODE);
 | 
				
			||||||
| 
						 | 
					@ -365,6 +387,8 @@ void ota_begin()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  otaserver.on("/", HTTP_GET, []()
 | 
					  otaserver.on("/", HTTP_GET, []()
 | 
				
			||||||
               {
 | 
					               {
 | 
				
			||||||
 | 
					    if(!otaserver.authenticate(WEBUI_USERNAME, WEBUI_PASSWORD))
 | 
				
			||||||
 | 
					      return otaserver.requestAuthentication();
 | 
				
			||||||
    otaserver.sendHeader("Connection", "close");
 | 
					    otaserver.sendHeader("Connection", "close");
 | 
				
			||||||
    String otabuffer = ota_part1;
 | 
					    String otabuffer = ota_part1;
 | 
				
			||||||
    otabuffer+=ota_part2_1+"Hostname"+ota_part2_2+String(HOSTNAME)+ota_part2_3;
 | 
					    otabuffer+=ota_part2_1+"Hostname"+ota_part2_2+String(HOSTNAME)+ota_part2_3;
 | 
				
			||||||
| 
						 | 
					@ -382,6 +406,8 @@ void ota_begin()
 | 
				
			||||||
    otaserver.send(200, "text/html", otabuffer); });
 | 
					    otaserver.send(200, "text/html", otabuffer); });
 | 
				
			||||||
  otaserver.on("/config", HTTP_GET, []()
 | 
					  otaserver.on("/config", HTTP_GET, []()
 | 
				
			||||||
               {
 | 
					               {
 | 
				
			||||||
 | 
					    if(!otaserver.authenticate(WEBUI_USERNAME, WEBUI_PASSWORD))
 | 
				
			||||||
 | 
					      return otaserver.requestAuthentication();
 | 
				
			||||||
    otaserver.sendHeader("Connection", "close");
 | 
					    otaserver.sendHeader("Connection", "close");
 | 
				
			||||||
    String configbuffer = config_part1;
 | 
					    String configbuffer = config_part1;
 | 
				
			||||||
    configbuffer+=config_txt_part1+"IP Address"+config_txt_part2+"text"+config_txt_part3+"dev_ip"+config_txt_part4+"dev_ip"+config_txt_part5+IP.toString()+config_txt_part6;
 | 
					    configbuffer+=config_txt_part1+"IP Address"+config_txt_part2+"text"+config_txt_part3+"dev_ip"+config_txt_part4+"dev_ip"+config_txt_part5+IP.toString()+config_txt_part6;
 | 
				
			||||||
| 
						 | 
					@ -395,11 +421,15 @@ void ota_begin()
 | 
				
			||||||
    configbuffer+=config_txt_part1+"BMS Server - Username"+config_txt_part2+"text"+config_txt_part3+"bms_username"+config_txt_part4+"bms_username"+config_txt_part5+String(MQTT_USERNAME)+config_txt_part6;
 | 
					    configbuffer+=config_txt_part1+"BMS Server - Username"+config_txt_part2+"text"+config_txt_part3+"bms_username"+config_txt_part4+"bms_username"+config_txt_part5+String(MQTT_USERNAME)+config_txt_part6;
 | 
				
			||||||
    configbuffer+=config_txt_part1+"BMS Server - Password"+config_txt_part2+"password"+config_txt_part3+"bms_password"+config_txt_part4+"bms_password"+config_txt_part5+String(MQTT_PASSWORD)+config_txt_part6;
 | 
					    configbuffer+=config_txt_part1+"BMS Server - Password"+config_txt_part2+"password"+config_txt_part3+"bms_password"+config_txt_part4+"bms_password"+config_txt_part5+String(MQTT_PASSWORD)+config_txt_part6;
 | 
				
			||||||
    configbuffer+=config_txt_part1+"BMS Server - Endpoint"+config_txt_part2+"text"+config_txt_part3+"bms_endpoint"+config_txt_part4+"bms_endpoint"+config_txt_part5+String(MQTT_BASE_TOPIC)+config_txt_part6;
 | 
					    configbuffer+=config_txt_part1+"BMS Server - Endpoint"+config_txt_part2+"text"+config_txt_part3+"bms_endpoint"+config_txt_part4+"bms_endpoint"+config_txt_part5+String(MQTT_BASE_TOPIC)+config_txt_part6;
 | 
				
			||||||
 | 
					    configbuffer+=config_txt_part1+"WebUI Username"+config_txt_part2+"text"+config_txt_part3+"webui_username"+config_txt_part4+"webui_username"+config_txt_part5+String(WEBUI_USERNAME)+config_txt_part6;
 | 
				
			||||||
 | 
					    configbuffer+=config_txt_part1+"WebUI Password"+config_txt_part2+"password"+config_txt_part3+"webui_password"+config_txt_part4+"webui_password"+config_txt_part5+String(WEBUI_PASSWORD)+config_txt_part6;
 | 
				
			||||||
    configbuffer+=config_part2;
 | 
					    configbuffer+=config_part2;
 | 
				
			||||||
    otaserver.send(200, "text/html", configbuffer); });
 | 
					    otaserver.send(200, "text/html", configbuffer); });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  otaserver.on("/save_config", HTTP_GET, []()
 | 
					  otaserver.on("/save_config", HTTP_GET, []()
 | 
				
			||||||
               {
 | 
					               {
 | 
				
			||||||
 | 
					    if(!otaserver.authenticate(WEBUI_USERNAME, WEBUI_PASSWORD))
 | 
				
			||||||
 | 
					      return otaserver.requestAuthentication();
 | 
				
			||||||
    otaserver.sendHeader("Connection", "close");
 | 
					    otaserver.sendHeader("Connection", "close");
 | 
				
			||||||
    String configbuffer = "Configuration Saved. Rebooting . . .";
 | 
					    String configbuffer = "Configuration Saved. Rebooting . . .";
 | 
				
			||||||
    otaserver.send(200, "text/html", configbuffer);
 | 
					    otaserver.send(200, "text/html", configbuffer);
 | 
				
			||||||
| 
						 | 
					@ -432,6 +462,10 @@ void ota_begin()
 | 
				
			||||||
      } else if(!arg.compareTo("bms_useauth")) {
 | 
					      } else if(!arg.compareTo("bms_useauth")) {
 | 
				
			||||||
        if(!value.compareTo("yes"))
 | 
					        if(!value.compareTo("yes"))
 | 
				
			||||||
          use_auth = true;
 | 
					          use_auth = true;
 | 
				
			||||||
 | 
					      } else if(!arg.compareTo("webui_username")) {
 | 
				
			||||||
 | 
					        ESPMega_FRAM.write(EEPROM_ADDRESS_WEBUI_USERNAME, (uint8_t *)value.c_str(), value.length()+1);
 | 
				
			||||||
 | 
					      } else if(!arg.compareTo("webui_password")) {
 | 
				
			||||||
 | 
					        ESPMega_FRAM.write(EEPROM_ADDRESS_WEBUI_PASSWORD, (uint8_t *)value.c_str(), value.length()+1);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
      set_mqtt_useauth(use_auth);
 | 
					      set_mqtt_useauth(use_auth);
 | 
				
			||||||
| 
						 | 
					@ -442,6 +476,8 @@ void ota_begin()
 | 
				
			||||||
  otaserver.on(
 | 
					  otaserver.on(
 | 
				
			||||||
      "/update", HTTP_POST, []()
 | 
					      "/update", HTTP_POST, []()
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					    if(!otaserver.authenticate(WEBUI_USERNAME, WEBUI_PASSWORD))
 | 
				
			||||||
 | 
					      return otaserver.requestAuthentication();
 | 
				
			||||||
    otaserver.sendHeader("Connection", "close");
 | 
					    otaserver.sendHeader("Connection", "close");
 | 
				
			||||||
    otaserver.send(200, "text/plain", (Update.hasError()) ? "FAIL" : "OK");
 | 
					    otaserver.send(200, "text/plain", (Update.hasError()) ? "FAIL" : "OK");
 | 
				
			||||||
    ESP.restart(); },
 | 
					    ESP.restart(); },
 | 
				
			||||||
| 
						 | 
					@ -685,6 +721,18 @@ void mqtt_callback(char *topic, byte *payload, unsigned int length)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    dac_set_value_callback(topic_trim, topic_length, payload_nt, length);
 | 
					    dac_set_value_callback(topic_trim, topic_length, payload_nt, length);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef ENABLE_IR_MODULE
 | 
				
			||||||
 | 
					  else if (!strcmp(topic_trim, "/ir/send"))
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    const char* delimiter = ",";
 | 
				
			||||||
 | 
					    char* token = strtok(const_cast<char*>(payload_nt), delimiter);
 | 
				
			||||||
 | 
					    while (token != nullptr && ir_buffer_length < IR_RAW_BUFFER_LENGTH) {
 | 
				
			||||||
 | 
					        ir_buffer[ir_buffer_length++] = atoi(token);
 | 
				
			||||||
 | 
					        token = strtok(nullptr, delimiter);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    IrSender.sendRaw(ir_buffer,ir_buffer_length ,NEC_KHZ);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
  else if (!strcmp(topic, STATE_REQUEST_TOPIC))
 | 
					  else if (!strcmp(topic, STATE_REQUEST_TOPIC))
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
| 
						 | 
					@ -1789,6 +1837,18 @@ void set_mqtt_useauth(bool use_auth)
 | 
				
			||||||
  ESPMega_FRAM.write8(EEPROM_ADDRESS_MQTT_USEAUTH, MQTT_USE_AUTH);
 | 
					  ESPMega_FRAM.write8(EEPROM_ADDRESS_MQTT_USEAUTH, MQTT_USE_AUTH);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void set_webui_username(String username)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  username.toCharArray(WEBUI_USERNAME, 32);
 | 
				
			||||||
 | 
					  ESPMega_FRAM.write(EEPROM_ADDRESS_WEBUI_USERNAME, (uint8_t *)WEBUI_USERNAME, 32);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void set_webui_password(String password)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  password.toCharArray(WEBUI_PASSWORD, 32);
 | 
				
			||||||
 | 
					  ESPMega_FRAM.write(EEPROM_ADDRESS_WEBUI_PASSWORD, (uint8_t *)WEBUI_PASSWORD, 32);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Resets the device to factory default settings.
 | 
					 * @brief Resets the device to factory default settings.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
| 
						 | 
					@ -1824,6 +1884,9 @@ void factory_reset()
 | 
				
			||||||
  set_ip("192.168.0.10");
 | 
					  set_ip("192.168.0.10");
 | 
				
			||||||
  set_gw("192.168.0.1");
 | 
					  set_gw("192.168.0.1");
 | 
				
			||||||
  set_netmask("255.255.255.0");
 | 
					  set_netmask("255.255.255.0");
 | 
				
			||||||
 | 
					  set_webui_username("admin");
 | 
				
			||||||
 | 
					  set_webui_password("admin");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Reboot
 | 
					  // Reboot
 | 
				
			||||||
#ifdef ENABLE_INTERNAL_LCD
 | 
					#ifdef ENABLE_INTERNAL_LCD
 | 
				
			||||||
  lcd_send_stop_bit();
 | 
					  lcd_send_stop_bit();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@
 | 
				
			||||||
#define IR_RECIEVE_PIN 35
 | 
					#define IR_RECIEVE_PIN 35
 | 
				
			||||||
#define IR_SEND_PIN 5
 | 
					#define IR_SEND_PIN 5
 | 
				
			||||||
#define MARK_EXCESS_MICROS 20
 | 
					#define MARK_EXCESS_MICROS 20
 | 
				
			||||||
#define RAW_BUFFER_LENGTH 750
 | 
					#define IR_RAW_BUFFER_LENGTH 750
 | 
				
			||||||
#define AC_MAX_TEMPERATURE 30
 | 
					#define AC_MAX_TEMPERATURE 30
 | 
				
			||||||
#define AC_MIN_TEMPERATURE 15
 | 
					#define AC_MIN_TEMPERATURE 15
 | 
				
			||||||
#define DHT22_PIN 32
 | 
					#define DHT22_PIN 32
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue