433 Alarm &= ~AL_NOWIFI; |
433 Alarm &= ~AL_NOWIFI; |
434 ESP_LOGI(TAG, "Connected counter WiFi %d", DisCounter); |
434 ESP_LOGI(TAG, "Connected counter WiFi %d", DisCounter); |
435 DisCounter = 0; |
435 DisCounter = 0; |
436 } else { |
436 } else { |
437 /* |
437 /* |
438 * 30 seconds connection try. |
438 * 15 seconds connection try. |
439 */ |
439 */ |
440 DisCounter++; |
440 DisCounter++; |
441 vTaskDelay(1000 / portTICK_PERIOD_MS); |
441 vTaskDelay(500 / portTICK_PERIOD_MS); |
442 ESP_LOGI(TAG, "* Counter WiFi %d", DisCounter); |
442 ESP_LOGI(TAG, "* Counter WiFi %d", DisCounter); |
443 if (DisCounter > 30) { |
443 if (DisCounter > 30) { |
444 Alarm |= AL_NOWIFI; |
444 Alarm |= AL_NOWIFI; |
445 request_WiFi(false); |
445 request_WiFi(false); |
446 State = State_Init; |
446 State = State_Init; |
554 State = State_Disconnect_Wifi; |
554 State = State_Disconnect_Wifi; |
555 break; |
555 break; |
556 |
556 |
557 case State_Disconnect_Wifi: request_WiFi(false); |
557 case State_Disconnect_Wifi: request_WiFi(false); |
558 // // Reset values for average current measurement. |
558 // // Reset values for average current measurement. |
559 // HaveIP = false; |
|
560 loopno = 0; |
559 loopno = 0; |
561 gLastTime = millis(); |
560 gLastTime = millis(); |
562 //vTaskDelay(10 / portTICK_PERIOD_MS); |
|
563 |
561 |
564 /* |
562 /* |
565 * If any output is on, use 6 10 seconds loops. |
563 * If any output is on, use 6 10 seconds loops. |
566 * If nothing on, do a deep sleep. |
564 * If nothing on, do a deep sleep. |
567 */ |
565 */ |
568 if (Relay1 || Relay2 || Dimmer3 || Dimmer4) { |
566 if (Relay1 || Relay2 || Dimmer3 || Dimmer4) { |
569 if (DS_Active != 0) { |
567 DS_Active = 0; |
570 DS_Active = 0; |
568 nvsio_write_u8((char *)"ds_active", 0); |
571 nvsio_write_u8((char *)"ds_active", 0); |
|
572 } |
|
573 |
569 |
574 // Active mode, 60 seconds loop |
570 // Active mode, 60 seconds loop |
575 ST_LOOPS = 6; |
571 ST_LOOPS = 6; |
576 gTimeNext = millis() + ST_INTERVAL; |
572 gTimeNext = millis() + ST_INTERVAL; |
577 ESP_LOGI(TAG, "Start sleeploops"); |
573 ESP_LOGI(TAG, "Start sleeploops"); |
578 State = State_Wait; |
574 State = State_Wait; |
579 } else { |
575 } else { |
580 ds_time = DS_TIME; |
576 ds_time = DS_TIME; |
581 // if (solarVolts < 6) { |
577 if (solarVolts < 6) { |
582 // // At night, increase the deep-sleep time. |
578 // At night, increase the deep-sleep time. |
583 // ds_time *= 4; |
579 ds_time *= 4; |
584 // } |
580 } |
585 nvsio_write_u8((char *)"ds_active", 1); |
581 nvsio_write_u8((char *)"ds_active", 1); |
586 DS_Active = 1; |
582 DS_Active = 1; |
587 nvsio_write_u32((char *)"ds_time", ds_time); |
583 nvsio_write_u32((char *)"ds_time", ds_time); |
588 DS_Time = ds_time; |
584 DS_Time = ds_time; |
589 State = State_GoSleep; |
585 State = State_GoSleep; |
590 } |
586 } |
591 break; |
587 break; |
592 |
588 |
593 case State_Wait: if (gTimeInMillis > gTimeNext) { |
589 case State_Wait: if (gTimeInMillis >= gTimeNext) { |
594 State = State_Measure; |
590 State = State_Measure; |
595 } |
591 } |
596 vTaskDelay(10 / portTICK_PERIOD_MS); |
592 vTaskDelay(50 / portTICK_PERIOD_MS); |
597 break; |
593 break; |
598 |
594 |
599 case State_Measure: getVoltsCurrent(); |
595 case State_Measure: gTimeNext = millis() + ST_INTERVAL; |
600 gTimeNext = millis() + ST_INTERVAL; |
596 getVoltsCurrent(); |
601 if (loopno >= ST_LOOPS) { |
597 if (loopno >= ST_LOOPS) { |
602 ESP_LOGI(TAG, "Enough loops, do connect"); |
598 ESP_LOGI(TAG, "Enough loops, do connect"); |
603 getLightValues(); |
599 getLightValues(); |
604 State = State_Connect_Wifi; |
600 State = State_Connect_Wifi; |
605 DisCounter = 0; |
601 DisCounter = 0; |