Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
577d5478a8 | |||
10640f64b5 | |||
1699554c74 | |||
2f6c37038b |
@ -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
|
||||
|
||||
|
Submodule components/zh_config updated: bc12b2ca4b...c568d84e56
Submodule components/zh_ds18b20 updated: 88bf443320...18afcab1d9
Submodule components/zh_onewire updated: c2993a5059...4d1286cfb2
@ -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);
|
||||
|
@ -1 +1 @@
|
||||
1.0.2
|
||||
1.0.3
|
Reference in New Issue
Block a user