248 case MQTT_EVENT_CONNECTED: |
248 case MQTT_EVENT_CONNECTED: |
249 ESP_LOGI(TAG, "MQTT_EVENT_CONNECTED"); |
249 ESP_LOGI(TAG, "MQTT_EVENT_CONNECTED"); |
250 subscr = topic_base(); |
250 subscr = topic_base(); |
251 subscr = xstrcat(subscr, (char *)"output/set/#"); |
251 subscr = xstrcat(subscr, (char *)"output/set/#"); |
252 int msgid = esp_mqtt_client_subscribe(client, subscr, 0); |
252 int msgid = esp_mqtt_client_subscribe(client, subscr, 0); |
253 ESP_LOGI(TAG, "Subscribe `%s' id %d", subscr, msgid); |
253 ESP_LOGD(TAG, "Subscribe `%s' id %d", subscr, msgid); |
254 free(subscr); |
254 free(subscr); |
255 subscr = NULL; |
255 subscr = NULL; |
256 xEventGroupSetBits(xEventGroupMQTT, TASK_MQTT_CONNECTED); |
256 xEventGroupSetBits(xEventGroupMQTT, TASK_MQTT_CONNECTED); |
257 xEventGroupClearBits(xEventGroupMQTT, TASK_MQTT_DISCONNECTED); |
257 xEventGroupClearBits(xEventGroupMQTT, TASK_MQTT_DISCONNECTED); |
258 break; |
258 break; |
282 } |
282 } |
283 ESP_LOGI(TAG, "MQTT_EVENT_PUBLISHED, msg_id=%d, %d msgs in queue", event->msg_id, count_pub); |
283 ESP_LOGI(TAG, "MQTT_EVENT_PUBLISHED, msg_id=%d, %d msgs in queue", event->msg_id, count_pub); |
284 break; |
284 break; |
285 |
285 |
286 case MQTT_EVENT_DATA: |
286 case MQTT_EVENT_DATA: |
287 bool gotit = false; |
|
288 char data[65], topic[128]; |
287 char data[65], topic[128]; |
289 if (event->data_len < 65) |
288 if (event->data_len < 65) |
290 snprintf(data, 64, "%.*s", event->data_len, event->data); |
289 snprintf(data, 64, "%.*s", event->data_len, event->data); |
291 else |
290 else |
292 data[0] = '\0'; |
291 data[0] = '\0'; |
298 |
297 |
299 check = topic_base(); |
298 check = topic_base(); |
300 check = xstrcat(check, (char *)"output/set/1"); |
299 check = xstrcat(check, (char *)"output/set/1"); |
301 if (strncmp(check, event->topic, event->topic_len) == 0) { |
300 if (strncmp(check, event->topic, event->topic_len) == 0) { |
302 ESP_LOGD(TAG, "Got %s `%s' %d", check, data, atoi(data)); |
301 ESP_LOGD(TAG, "Got %s `%s' %d", check, data, atoi(data)); |
303 gotit = true; |
|
304 Relay1 = (uint8_t)atoi(data); |
302 Relay1 = (uint8_t)atoi(data); |
305 nvsio_write_u8((char *)"out1", Relay1); |
303 nvsio_write_u8((char *)"out1", Relay1); |
306 } |
304 } |
307 free(check); |
305 |
308 check = NULL; |
306 check[strlen(check)-1] = '2'; |
309 |
|
310 check = topic_base(); |
|
311 check = xstrcat(check, (char *)"output/set/2"); |
|
312 if (strncmp(check, event->topic, event->topic_len) == 0) { |
307 if (strncmp(check, event->topic, event->topic_len) == 0) { |
313 ESP_LOGD(TAG, "Got %s `%s' %d", check, data, atoi(data)); |
308 ESP_LOGD(TAG, "Got %s `%s' %d", check, data, atoi(data)); |
314 gotit = true; |
|
315 Relay2 = (uint8_t)atoi(data); |
309 Relay2 = (uint8_t)atoi(data); |
316 nvsio_write_u8((char *)"out2", Relay2); |
310 nvsio_write_u8((char *)"out2", Relay2); |
317 } |
311 } |
318 free(check); |
312 |
319 check = NULL; |
313 check[strlen(check)-1] = '3'; |
320 |
|
321 check = topic_base(); |
|
322 check = xstrcat(check, (char *)"output/set/3"); |
|
323 if (strncmp(check, event->topic, event->topic_len) == 0) { |
314 if (strncmp(check, event->topic, event->topic_len) == 0) { |
324 ESP_LOGI(TAG, "Got %s `%s' %d", check, data, atoi(data)); |
315 ESP_LOGD(TAG, "Got %s `%s' %d", check, data, atoi(data)); |
325 gotit = true; |
|
326 Dimmer3 = (uint8_t)atoi(data); |
316 Dimmer3 = (uint8_t)atoi(data); |
327 nvsio_write_u8((char *)"out3", Dimmer3); |
317 nvsio_write_u8((char *)"out3", Dimmer3); |
328 } |
318 } |
329 free(check); |
319 |
330 check = NULL; |
320 check[strlen(check)-1] = '4'; |
331 |
|
332 check = topic_base(); |
|
333 check = xstrcat(check, (char *)"output/set/4"); |
|
334 if (strncmp(check, event->topic, event->topic_len) == 0) { |
321 if (strncmp(check, event->topic, event->topic_len) == 0) { |
335 ESP_LOGD(TAG, "Got %s `%s' %d", check, data, atoi(data)); |
322 ESP_LOGD(TAG, "Got %s `%s' %d", check, data, atoi(data)); |
336 gotit = true; |
|
337 Dimmer4 = (uint8_t)atoi(data); |
323 Dimmer4 = (uint8_t)atoi(data); |
338 nvsio_write_u8((char *)"out4", Dimmer4); |
324 nvsio_write_u8((char *)"out4", Dimmer4); |
339 } |
325 } |
340 free(check); |
326 free(check); |
341 check = NULL; |
327 check = NULL; |
342 |
|
343 if (! gotit) { |
|
344 printf("TOPIC=%.*s ", event->topic_len, event->topic); |
|
345 printf("DATA=%.*s\r\n", event->data_len, event->data); |
|
346 } |
|
347 break; |
328 break; |
348 |
329 |
349 case MQTT_EVENT_ERROR: |
330 case MQTT_EVENT_ERROR: |
350 ESP_LOGI(TAG, "MQTT_EVENT_ERROR"); |
331 ESP_LOGI(TAG, "MQTT_EVENT_ERROR"); |
351 break; |
332 break; |