Version 1.0.4
Added sensor reading error message. Updated components.
This commit is contained in:
Submodule components/zh_config updated: c568d84e56...db717bf6ee
Submodule components/zh_ds18b20 updated: 18afcab1d9...cbf2c69e44
Submodule components/zh_espnow updated: 742c807c41...39fdb2eb49
Submodule components/zh_network updated: 783b44fbca...10fefb2912
Submodule components/zh_onewire updated: 4d1286cfb2...d006e1e40c
@ -471,57 +471,39 @@ void zh_send_sensor_status_message_task(void *pvParameter)
|
|||||||
data.payload_data.status_message.sensor_status_message.sensor_type = switch_config->hardware_config.sensor_type;
|
data.payload_data.status_message.sensor_status_message.sensor_type = switch_config->hardware_config.sensor_type;
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
|
esp_err_t err = ESP_OK;
|
||||||
switch (switch_config->hardware_config.sensor_type)
|
switch (switch_config->hardware_config.sensor_type)
|
||||||
{
|
{
|
||||||
case HAST_DS18B20:
|
case HAST_DS18B20:
|
||||||
ZH_DS18B20_READ:
|
err = zh_ds18b20_read(NULL, &temperature);
|
||||||
switch (zh_ds18b20_read(NULL, &temperature))
|
if (err == ESP_OK)
|
||||||
{
|
{
|
||||||
case ESP_OK:
|
|
||||||
data.payload_data.status_message.sensor_status_message.temperature = temperature;
|
data.payload_data.status_message.sensor_status_message.temperature = temperature;
|
||||||
data.payload_data.status_message.sensor_status_message.voltage = 3.3; // For compatibility with zh_espnow_sensor.
|
data.payload_data.status_message.sensor_status_message.voltage = 3.3; // For future development.
|
||||||
break;
|
|
||||||
case ESP_FAIL:
|
|
||||||
vTaskDelay(10000 / portTICK_PERIOD_MS);
|
|
||||||
goto ZH_DS18B20_READ;
|
|
||||||
break;
|
|
||||||
case ESP_ERR_INVALID_CRC:
|
|
||||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
|
||||||
goto ZH_DS18B20_READ;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HAST_DHT:
|
case HAST_DHT:
|
||||||
ZH_DHT_READ:
|
err = zh_dht_read(&humidity, &temperature);
|
||||||
switch (zh_dht_read(&humidity, &temperature))
|
if (err == ESP_OK)
|
||||||
{
|
{
|
||||||
case ESP_OK:
|
|
||||||
data.payload_data.status_message.sensor_status_message.humidity = humidity;
|
data.payload_data.status_message.sensor_status_message.humidity = humidity;
|
||||||
data.payload_data.status_message.sensor_status_message.temperature = temperature;
|
data.payload_data.status_message.sensor_status_message.temperature = temperature;
|
||||||
data.payload_data.status_message.sensor_status_message.voltage = 3.3; // For compatibility with zh_espnow_sensor.
|
data.payload_data.status_message.sensor_status_message.voltage = 3.3; // For future development.
|
||||||
break;
|
|
||||||
case ESP_ERR_INVALID_RESPONSE:
|
|
||||||
vTaskDelay(10000 / portTICK_PERIOD_MS);
|
|
||||||
goto ZH_DHT_READ;
|
|
||||||
break;
|
|
||||||
case ESP_ERR_TIMEOUT:
|
|
||||||
vTaskDelay(10000 / portTICK_PERIOD_MS);
|
|
||||||
goto ZH_DHT_READ;
|
|
||||||
break;
|
|
||||||
case ESP_ERR_INVALID_CRC:
|
|
||||||
vTaskDelay(3000 / portTICK_PERIOD_MS);
|
|
||||||
goto ZH_DHT_READ;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (err == ESP_OK)
|
||||||
|
{
|
||||||
zh_send_message(switch_config->gateway_mac, (uint8_t *)&data, sizeof(zh_espnow_data_t));
|
zh_send_message(switch_config->gateway_mac, (uint8_t *)&data, sizeof(zh_espnow_data_t));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
data.payload_type = ZHPT_ERROR;
|
||||||
|
strcpy(data.payload_data.status_message.error_message.message, "Sensor reading error.");
|
||||||
|
zh_send_message(switch_config->gateway_mac, (uint8_t *)&data, sizeof(zh_espnow_data_t));
|
||||||
|
}
|
||||||
vTaskDelay(ZH_SENSOR_STATUS_MESSAGE_FREQUENCY * 1000 / portTICK_PERIOD_MS);
|
vTaskDelay(ZH_SENSOR_STATUS_MESSAGE_FREQUENCY * 1000 / portTICK_PERIOD_MS);
|
||||||
}
|
}
|
||||||
vTaskDelete(NULL);
|
vTaskDelete(NULL);
|
||||||
|
@ -159,14 +159,14 @@ void zh_send_switch_attributes_message_task(void *pvParameter);
|
|||||||
void zh_send_switch_config_message(const switch_config_t *switch_config);
|
void zh_send_switch_config_message(const switch_config_t *switch_config);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Function for prepare the sensor hardware configuration message and sending it to the gateway.
|
* @brief Function for prepare the switch hardware configuration message and sending it to the gateway.
|
||||||
*
|
*
|
||||||
* @param[in] switch_config Pointer to the structure of data exchange between tasks, functions and event handlers.
|
* @param[in] switch_config Pointer to the structure of data exchange between tasks, functions and event handlers.
|
||||||
*/
|
*/
|
||||||
void zh_send_switch_hardware_config_message(const switch_config_t *switch_config);
|
void zh_send_switch_hardware_config_message(const switch_config_t *switch_config);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Task for prepare the sensor keep alive message and sending it to the gateway.
|
* @brief Task for prepare the switch keep alive message and sending it to the gateway.
|
||||||
*
|
*
|
||||||
* @param[in] pvParameter Pointer to the structure of data exchange between tasks, functions and event handlers.
|
* @param[in] pvParameter Pointer to the structure of data exchange between tasks, functions and event handlers.
|
||||||
*/
|
*/
|
||||||
|
@ -1 +1 @@
|
|||||||
1.0.3
|
1.0.4
|
Reference in New Issue
Block a user