diff -r 2b337dd92f25 -r 115e93bf8796 main/iotbalkon.c --- a/main/iotbalkon.c Fri Mar 31 20:31:12 2023 +0200 +++ b/main/iotbalkon.c Fri Mar 31 21:12:39 2023 +0200 @@ -22,6 +22,8 @@ static TaskHandle_t xTaskMQTT = NULL; static TaskHandle_t xTaskWifi = NULL; +nvs_handle_t my_handle; + #define MAX_LOOPS 32 #define SUB_TIME 1000 @@ -69,6 +71,14 @@ #define ST_INTERVAL 10000 #define MAX_LOOPS 32 +/* + * Variables in NVS namespace "balkon" + */ +uint8_t Relay1; +uint8_t Relay2; +uint8_t Dimmer3; +uint8_t Dimmer4; + // 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% @@ -274,6 +284,60 @@ ESP_LOGI(TAG, "Starting testing"); #endif + /* + * Initialize NVS + */ + esp_err_t err = nvs_flash_init(); + if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + err = nvs_flash_init(); + } + ESP_ERROR_CHECK(err); + + err = nvs_open("balkon", NVS_READWRITE, &my_handle); + if (err != ESP_OK) { + ESP_LOGE(TAG, "Error (%s) opening NVS handle 'balkon'", esp_err_to_name(err)); + } else { + err = nvs_get_u8(my_handle, (char *)"out1", &Relay1); + if (err == ESP_ERR_NVS_NOT_FOUND) { + err = nvs_set_u8(my_handle, (char *)"out1", 0); + Relay1 = 0; + } + if (err != ESP_OK) { + ESP_LOGE(TAG, "Error (%s) opening NVS handle 'balkon', key 'out1'", esp_err_to_name(err)); + } + + err = nvs_get_u8(my_handle, (char *)"out2", &Relay2); + if (err == ESP_ERR_NVS_NOT_FOUND) { + err = nvs_set_u8(my_handle, (char *)"out2", 0); + Relay2 = 0; + } + if (err != ESP_OK) { + ESP_LOGE(TAG, "Error (%s) opening NVS handle 'balkon', key 'out2'", esp_err_to_name(err)); + } + + err = nvs_get_u8(my_handle, (char *)"out3", &Dimmer3); + if (err == ESP_ERR_NVS_NOT_FOUND) { + err = nvs_set_u8(my_handle, (char *)"out3", 0); + Dimmer3 = 0; + } + if (err != ESP_OK) { + ESP_LOGE(TAG, "Error (%s) opening NVS handle 'balkon', key 'out3'", esp_err_to_name(err)); + } + + err = nvs_get_u8(my_handle, (char *)"out4", &Dimmer4); + if (err == ESP_ERR_NVS_NOT_FOUND) { + err = nvs_set_u8(my_handle, (char *)"out4", 0); + Dimmer4 = 0; + } + if (err != ESP_OK) { + ESP_LOGE(TAG, "Error (%s) opening NVS handle 'balkon', key 'out4'", esp_err_to_name(err)); + } + + nvs_commit(my_handle); + nvs_close(my_handle); + } + gLastTime = millis(); ESP_ERROR_CHECK(i2cdev_init());