45 extern uint8_t Relay2; |
45 extern uint8_t Relay2; |
46 extern uint8_t Dimmer3; |
46 extern uint8_t Dimmer3; |
47 extern uint8_t Dimmer4; |
47 extern uint8_t Dimmer4; |
48 |
48 |
49 |
49 |
50 void connect_mqtt(bool state) |
50 void request_mqtt(bool state) |
51 { |
51 { |
52 if (state) |
52 if (state) { |
53 xEventGroupSetBits(xEventGroupMQTT, TASK_MQTT_CONNECT); |
53 if (xEventGroupGetBits(xEventGroupMQTT) & TASK_MQTT_CONNECTED) { |
54 else |
54 ESP_LOGW(TAG, "request_mqtt(true) but already connected"); |
55 xEventGroupSetBits(xEventGroupMQTT, TASK_MQTT_DISCONNECT); |
55 } else { |
|
56 xEventGroupSetBits(xEventGroupMQTT, TASK_MQTT_CONNECT); |
|
57 } |
|
58 } else { |
|
59 if (xEventGroupGetBits(xEventGroupMQTT) & TASK_MQTT_DISCONNECT) { |
|
60 ESP_LOGW(TAG, "request_mqtt(false) already in progress"); |
|
61 } else if (! (xEventGroupGetBits(xEventGroupMQTT) & TASK_MQTT_CONNECTED)) { |
|
62 ESP_LOGW(TAG, "request_mqtt(false) but already disconnected"); |
|
63 } else { |
|
64 xEventGroupSetBits(xEventGroupMQTT, TASK_MQTT_DISCONNECT); |
|
65 } |
|
66 } |
56 } |
67 } |
57 |
68 |
58 |
69 |
59 |
70 |
60 bool ready_mqtt(void) |
71 bool ready_mqtt(void) |
444 ESP_LOGE(TAG, "Result %s", esp_err_to_name(err)); |
455 ESP_LOGE(TAG, "Result %s", esp_err_to_name(err)); |
445 } |
456 } |
446 xEventGroupClearBits(xEventGroupMQTT, TASK_MQTT_CONNECT); |
457 xEventGroupClearBits(xEventGroupMQTT, TASK_MQTT_CONNECT); |
447 |
458 |
448 } else if (uxBits & TASK_MQTT_DISCONNECT) { |
459 } else if (uxBits & TASK_MQTT_DISCONNECT) { |
449 ESP_LOGI(TAG, "Request MQTT disconnect"); |
460 ESP_LOGI(TAG, "Request MQTT disconnect start"); |
450 /* |
461 /* |
451 * Unsubscribe if connected |
462 * Unsubscribe if connected |
452 */ |
463 */ |
453 if (ready_mqtt()) { |
464 if (ready_mqtt()) { |
454 char *topic = topic_base(); |
465 char *topic = topic_base(); |
477 ESP_LOGE(TAG, "Result %s", esp_err_to_name(err)); |
488 ESP_LOGE(TAG, "Result %s", esp_err_to_name(err)); |
478 } else { |
489 } else { |
479 ESP_LOGI(TAG, "stopped"); |
490 ESP_LOGI(TAG, "stopped"); |
480 } |
491 } |
481 |
492 |
|
493 xEventGroupClearBits(xEventGroupMQTT, TASK_MQTT_CONNECTED); |
|
494 xEventGroupSetBits(xEventGroupMQTT, TASK_MQTT_DISCONNECTED); |
482 xEventGroupClearBits(xEventGroupMQTT, TASK_MQTT_DISCONNECT); |
495 xEventGroupClearBits(xEventGroupMQTT, TASK_MQTT_DISCONNECT); |
|
496 ESP_LOGI(TAG, "Request MQTT disconnect done"); |
483 } |
497 } |
484 } |
498 } |
485 } |
499 } |
486 |
500 |