4 Commits

Author SHA1 Message Date
577d5478a8 Version 1.0.3
Updated sensor messages for compatibility with zh_espnow_sensor.
Updated components.
2024-06-26 09:24:40 +03:00
10640f64b5 Updated components 2024-06-23 22:23:47 +03:00
1699554c74 Update README.md 2024-06-23 22:16:27 +03:00
2f6c37038b Update README.md 2024-06-23 12:21:59 +03:00
6 changed files with 18 additions and 9 deletions

View File

@ -12,7 +12,7 @@ ESP-NOW based switch for ESP32 ESP-IDF and ESP8266 RTOS SDK. Alternate firmware
1. Saves the last state when the power is turned off.
2. Automatically adds switch configuration to Home Assistan via MQTT discovery as a switch.
3. Update firmware from HTTPS server via ESP-NOW.
4. Optional support one external sensor (DS18B20, DHT11, DHT22).
4. Optional support one external 1-wire sensor (DS18B20/DHT11/DHT22/AM2302/AM2320).
5. Direct or mesh work mode.
## Notes
@ -35,7 +35,7 @@ MQTT configuration message should filled according to the template "X1,X2,X3,X4,
7. X7 - External button GPIO number. 0 - 48 (according to the module used), 255 if not used.
8. X8 - External button trigger level. 1 for high, 0 for low. Only affected when X7 is used.
9. X9 - Sensor GPIO number. 0 - 48 (according to the module used). 255 if not used.
10. X10 - Sensor type. 1 for DS18B20, 2 for DHT11, 3 for DHT22. Only affected when X9 is used.
10. X10 - Sensor type. 1 for DS18B20, 8 for DHT. Only affected when X9 is used.
## Build and flash

View File

@ -402,22 +402,29 @@ void zh_send_sensor_config_message(const switch_config_t *switch_config)
data.payload_data.config_message.sensor_config_message.qos = 2;
data.payload_data.config_message.sensor_config_message.retain = true;
char *unit_of_measurement = NULL;
// For compatibility with zh_espnow_sensor.
data.payload_data.config_message.sensor_config_message.unique_id = 2;
data.payload_data.config_message.sensor_config_message.sensor_device_class = HASDC_VOLTAGE;
unit_of_measurement = "V";
strcpy(data.payload_data.config_message.sensor_config_message.unit_of_measurement, unit_of_measurement);
zh_send_message(switch_config->gateway_mac, (uint8_t *)&data, sizeof(zh_espnow_data_t));
// For compatibility with zh_espnow_sensor.
switch (switch_config->hardware_config.sensor_type)
{
case HAST_DS18B20:
data.payload_data.config_message.sensor_config_message.unique_id = 2;
data.payload_data.config_message.sensor_config_message.unique_id = 3;
data.payload_data.config_message.sensor_config_message.sensor_device_class = HASDC_TEMPERATURE;
unit_of_measurement = "°C";
strcpy(data.payload_data.config_message.sensor_config_message.unit_of_measurement, unit_of_measurement);
zh_send_message(switch_config->gateway_mac, (uint8_t *)&data, sizeof(zh_espnow_data_t));
break;
case HAST_DHT:
data.payload_data.config_message.sensor_config_message.unique_id = 2;
data.payload_data.config_message.sensor_config_message.unique_id = 3;
data.payload_data.config_message.sensor_config_message.sensor_device_class = HASDC_TEMPERATURE;
unit_of_measurement = "°C";
strcpy(data.payload_data.config_message.sensor_config_message.unit_of_measurement, unit_of_measurement);
zh_send_message(switch_config->gateway_mac, (uint8_t *)&data, sizeof(zh_espnow_data_t));
data.payload_data.config_message.sensor_config_message.unique_id = 3;
data.payload_data.config_message.sensor_config_message.unique_id = 4;
data.payload_data.config_message.sensor_config_message.sensor_device_class = HASDC_HUMIDITY;
unit_of_measurement = "%";
strcpy(data.payload_data.config_message.sensor_config_message.unit_of_measurement, unit_of_measurement);
@ -472,6 +479,7 @@ void zh_send_sensor_status_message_task(void *pvParameter)
{
case ESP_OK:
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.
break;
case ESP_FAIL:
vTaskDelay(10000 / portTICK_PERIOD_MS);
@ -492,6 +500,7 @@ void zh_send_sensor_status_message_task(void *pvParameter)
case ESP_OK:
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.voltage = 3.3; // For compatibility with zh_espnow_sensor.
break;
case ESP_ERR_INVALID_RESPONSE:
vTaskDelay(10000 / portTICK_PERIOD_MS);

View File

@ -1 +1 @@
1.0.2
1.0.3