|  | @@ -157,7 +157,7 @@ esp_err_t actrls_init(const char *profile_name) {
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  |  	// set infrared GPIO if any
 | 
	
		
			
				|  |  |  	parse_set_GPIO(set_ir_gpio);
 | 
	
		
			
				|  |  | -	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	if (!err) return actrls_init_json(profile_name, true);
 | 
	
		
			
				|  |  |  	else return err;
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -508,11 +508,13 @@ static esp_err_t actrls_init_json(const char *profile_name, bool create) {
 | 
	
		
			
				|  |  |  	char *config;
 | 
	
		
			
				|  |  |  	const cJSON *button;
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  | -	if (!profile_name || !*profile_name) return ESP_OK;
 | 
	
		
			
				|  |  | +	if (!profile_name) return ESP_OK;
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  | -	config = config_alloc_get_default(NVS_TYPE_STR, profile_name, NULL, 0);
 | 
	
		
			
				|  |  | -	if(!config) return ESP_FAIL;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +	config = config_alloc_get_str(profile_name, NULL, CONFIG_AUDIO_CONTROLS);
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	if (!config) return ESP_FAIL;
 | 
	
		
			
				|  |  | +	else if (!*config) return ESP_OK; 
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  |  	ESP_LOGD(TAG,"Parsing JSON structure %s", config);
 | 
	
		
			
				|  |  |  	cJSON *buttons = cJSON_Parse(config);
 | 
	
		
			
				|  |  |  	if (buttons == NULL) {
 | 
	
	
		
			
				|  | @@ -526,6 +528,7 @@ static esp_err_t actrls_init_json(const char *profile_name, bool create) {
 | 
	
		
			
				|  |  |  			if(!cur_config) {
 | 
	
		
			
				|  |  |  				ESP_LOGE(TAG,"Config buffer was empty. ");
 | 
	
		
			
				|  |  |  				cJSON_Delete(buttons);
 | 
	
		
			
				|  |  | +				free(config);
 | 
	
		
			
				|  |  |  				return ESP_FAIL;
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  			ESP_LOGD(TAG,"Processing button definitions. ");
 | 
	
	
		
			
				|  | @@ -557,6 +560,7 @@ static esp_err_t actrls_init_json(const char *profile_name, bool create) {
 | 
	
		
			
				|  |  |  	// the last init that completes will assigh the first json config object found, which will match
 | 
	
		
			
				|  |  |  	// the default config from nvs.
 | 
	
		
			
				|  |  |  	json_config = config_root;
 | 
	
		
			
				|  |  | +	free(config);
 | 
	
		
			
				|  |  |  	return err;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 |