diff -r 74609f70411e -r c5a9bde0268f main/task_mqtt.c --- a/main/task_mqtt.c Wed Apr 12 16:23:02 2023 +0200 +++ b/main/task_mqtt.c Wed Apr 12 16:37:17 2023 +0200 @@ -250,7 +250,7 @@ subscr = topic_base(); subscr = xstrcat(subscr, (char *)"output/set/#"); int msgid = esp_mqtt_client_subscribe(client, subscr, 0); - ESP_LOGI(TAG, "Subscribe `%s' id %d", subscr, msgid); + ESP_LOGD(TAG, "Subscribe `%s' id %d", subscr, msgid); free(subscr); subscr = NULL; xEventGroupSetBits(xEventGroupMQTT, TASK_MQTT_CONNECTED); @@ -284,7 +284,6 @@ break; case MQTT_EVENT_DATA: - bool gotit = false; char data[65], topic[128]; if (event->data_len < 65) snprintf(data, 64, "%.*s", event->data_len, event->data); @@ -300,50 +299,32 @@ check = xstrcat(check, (char *)"output/set/1"); if (strncmp(check, event->topic, event->topic_len) == 0) { ESP_LOGD(TAG, "Got %s `%s' %d", check, data, atoi(data)); - gotit = true; Relay1 = (uint8_t)atoi(data); nvsio_write_u8((char *)"out1", Relay1); } - free(check); - check = NULL; - check = topic_base(); - check = xstrcat(check, (char *)"output/set/2"); + check[strlen(check)-1] = '2'; if (strncmp(check, event->topic, event->topic_len) == 0) { ESP_LOGD(TAG, "Got %s `%s' %d", check, data, atoi(data)); - gotit = true; Relay2 = (uint8_t)atoi(data); nvsio_write_u8((char *)"out2", Relay2); } - free(check); - check = NULL; - check = topic_base(); - check = xstrcat(check, (char *)"output/set/3"); + check[strlen(check)-1] = '3'; if (strncmp(check, event->topic, event->topic_len) == 0) { - ESP_LOGI(TAG, "Got %s `%s' %d", check, data, atoi(data)); - gotit = true; + ESP_LOGD(TAG, "Got %s `%s' %d", check, data, atoi(data)); Dimmer3 = (uint8_t)atoi(data); nvsio_write_u8((char *)"out3", Dimmer3); } - free(check); - check = NULL; - check = topic_base(); - check = xstrcat(check, (char *)"output/set/4"); + check[strlen(check)-1] = '4'; if (strncmp(check, event->topic, event->topic_len) == 0) { ESP_LOGD(TAG, "Got %s `%s' %d", check, data, atoi(data)); - gotit = true; Dimmer4 = (uint8_t)atoi(data); nvsio_write_u8((char *)"out4", Dimmer4); } free(check); check = NULL; - - if (! gotit) { - printf("TOPIC=%.*s ", event->topic_len, event->topic); - printf("DATA=%.*s\r\n", event->data_len, event->data); - } break; case MQTT_EVENT_ERROR: