Added sending of system messages to the Syslog server
This commit is contained in:
@ -393,18 +393,32 @@ void zh_espnow_event_handler(void *arg, esp_event_base_t event_base, int32_t eve
|
||||
{
|
||||
case ZHDT_SWITCH:
|
||||
zh_espnow_switch_send_mqtt_json_config_message(data, recv_data->mac_addr, gateway_config);
|
||||
goto ZHPT_CONFIG_SEND_SYSLOG;
|
||||
break;
|
||||
case ZHDT_LED:
|
||||
zh_espnow_led_send_mqtt_json_config_message(data, recv_data->mac_addr, gateway_config);
|
||||
goto ZHPT_CONFIG_SEND_SYSLOG;
|
||||
break;
|
||||
case ZHDT_SENSOR:
|
||||
zh_espnow_sensor_send_mqtt_json_config_message(data, recv_data->mac_addr, gateway_config);
|
||||
goto ZHPT_CONFIG_SEND_SYSLOG;
|
||||
break;
|
||||
case ZHDT_BINARY_SENSOR:
|
||||
zh_espnow_binary_sensor_send_mqtt_json_config_message(data, recv_data->mac_addr, gateway_config);
|
||||
goto ZHPT_CONFIG_SEND_SYSLOG;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
ZHPT_CONFIG_SEND_SYSLOG:
|
||||
if (gateway_config->syslog_is_enable == true)
|
||||
{
|
||||
char *mac = (char *)heap_caps_malloc(18, MALLOC_CAP_8BIT);
|
||||
memset(mac, 0, 18);
|
||||
sprintf(mac, "" MAC_STR "", MAC2STR(recv_data->mac_addr));
|
||||
zh_syslog_send(ZH_USER, ZH_INFO, mac, zh_get_device_type_value_name(data->device_type), "Connected to gateway.");
|
||||
heap_caps_free(mac);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ZHPT_HARDWARE:
|
||||
@ -496,6 +510,14 @@ void zh_mqtt_event_handler(void *arg, esp_event_base_t event_base, int32_t event
|
||||
case MQTT_EVENT_CONNECTED:
|
||||
if (gateway_config->mqtt_is_connected == false)
|
||||
{
|
||||
if (gateway_config->syslog_is_enable == true)
|
||||
{
|
||||
char *mac = (char *)heap_caps_malloc(18, MALLOC_CAP_8BIT);
|
||||
memset(mac, 0, 18);
|
||||
sprintf(mac, "" MAC_STR "", MAC2STR(gateway_config->self_mac));
|
||||
zh_syslog_send(ZH_USER, ZH_INFO, mac, zh_get_device_type_value_name(ZHDT_GATEWAY), "Connected to MQTT.");
|
||||
heap_caps_free(mac);
|
||||
}
|
||||
char *topic_for_subscribe = NULL;
|
||||
char *supported_device_type = NULL;
|
||||
for (zh_device_type_t i = 1; i <= ZHDT_MAX; ++i)
|
||||
@ -517,6 +539,14 @@ void zh_mqtt_event_handler(void *arg, esp_event_base_t event_base, int32_t event
|
||||
case MQTT_EVENT_DISCONNECTED:
|
||||
if (gateway_config->mqtt_is_connected == true)
|
||||
{
|
||||
if (gateway_config->syslog_is_enable == true)
|
||||
{
|
||||
char *mac = (char *)heap_caps_malloc(18, MALLOC_CAP_8BIT);
|
||||
memset(mac, 0, 18);
|
||||
sprintf(mac, "" MAC_STR "", MAC2STR(gateway_config->self_mac));
|
||||
zh_syslog_send(ZH_USER, ZH_WARNING, mac, zh_get_device_type_value_name(ZHDT_GATEWAY), "Disconnected from MQTT.");
|
||||
heap_caps_free(mac);
|
||||
}
|
||||
vTaskDelete(gateway_config->gateway_attributes_message_task);
|
||||
vTaskDelete(gateway_config->gateway_keep_alive_message_task);
|
||||
vTaskDelete(gateway_config->device_availability_check_task);
|
||||
@ -1104,6 +1134,14 @@ void zh_device_availability_check_task(void *pvParameter)
|
||||
sprintf(topic, "%s/%s/" MAC_STR "/status", gateway_config->software_config.mqtt_topic_prefix, zh_get_device_type_value_name(available_device->device_type), MAC2STR(available_device->mac_addr));
|
||||
esp_mqtt_client_publish(gateway_config->mqtt_client, topic, "offline", 0, 2, true);
|
||||
heap_caps_free(topic);
|
||||
if (gateway_config->syslog_is_enable == true)
|
||||
{
|
||||
char *mac = (char *)heap_caps_malloc(18, MALLOC_CAP_8BIT);
|
||||
memset(mac, 0, 18);
|
||||
sprintf(mac, "" MAC_STR "", MAC2STR(available_device->mac_addr));
|
||||
zh_syslog_send(ZH_USER, ZH_WARNING, mac, zh_get_device_type_value_name(available_device->device_type), "Disconnected from gateway.");
|
||||
heap_caps_free(mac);
|
||||
}
|
||||
zh_vector_delete_item(&gateway_config->available_device_vector, i);
|
||||
goto CHECK; // Since the vector is shifted after item deletion, the item needs to be re-checked.
|
||||
}
|
||||
|
Reference in New Issue
Block a user