Merge pull request #7765 from esphome/bump-2024.11.0b2

2024.11.0b2
This commit is contained in:
Jesse Hills 2024-11-14 15:33:10 +13:00 committed by GitHub
commit 00465f4a6f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 65 additions and 63 deletions

View File

@ -204,11 +204,11 @@ void BME68xBSEC2Component::update_subscription_() {
} }
void BME68xBSEC2Component::run_() { void BME68xBSEC2Component::run_() {
this->op_mode_ = this->bsec_settings_.op_mode;
int64_t curr_time_ns = this->get_time_ns_(); int64_t curr_time_ns = this->get_time_ns_();
if (curr_time_ns < this->next_call_ns_) { if (curr_time_ns < this->bsec_settings_.next_call) {
return; return;
} }
this->op_mode_ = this->bsec_settings_.op_mode;
uint8_t status; uint8_t status;
ESP_LOGV(TAG, "Performing sensor run"); ESP_LOGV(TAG, "Performing sensor run");
@ -219,9 +219,28 @@ void BME68xBSEC2Component::run_() {
ESP_LOGW(TAG, "Failed to fetch sensor control settings (BSEC2 error code %d)", this->bsec_status_); ESP_LOGW(TAG, "Failed to fetch sensor control settings (BSEC2 error code %d)", this->bsec_status_);
return; return;
} }
this->next_call_ns_ = this->bsec_settings_.next_call;
if (this->bsec_settings_.trigger_measurement) { switch (this->bsec_settings_.op_mode) {
case BME68X_FORCED_MODE:
bme68x_get_conf(&bme68x_conf, &this->bme68x_);
bme68x_conf.os_hum = this->bsec_settings_.humidity_oversampling;
bme68x_conf.os_temp = this->bsec_settings_.temperature_oversampling;
bme68x_conf.os_pres = this->bsec_settings_.pressure_oversampling;
bme68x_set_conf(&bme68x_conf, &this->bme68x_);
this->bme68x_heatr_conf_.enable = BME68X_ENABLE;
this->bme68x_heatr_conf_.heatr_temp = this->bsec_settings_.heater_temperature;
this->bme68x_heatr_conf_.heatr_dur = this->bsec_settings_.heater_duration;
// status = bme68x_set_op_mode(this->bsec_settings_.op_mode, &this->bme68x_);
status = bme68x_set_heatr_conf(BME68X_FORCED_MODE, &this->bme68x_heatr_conf_, &this->bme68x_);
status = bme68x_set_op_mode(BME68X_FORCED_MODE, &this->bme68x_);
this->op_mode_ = BME68X_FORCED_MODE;
ESP_LOGV(TAG, "Using forced mode");
break;
case BME68X_PARALLEL_MODE:
if (this->op_mode_ != this->bsec_settings_.op_mode) {
bme68x_get_conf(&bme68x_conf, &this->bme68x_); bme68x_get_conf(&bme68x_conf, &this->bme68x_);
bme68x_conf.os_hum = this->bsec_settings_.humidity_oversampling; bme68x_conf.os_hum = this->bsec_settings_.humidity_oversampling;
@ -229,22 +248,6 @@ void BME68xBSEC2Component::run_() {
bme68x_conf.os_pres = this->bsec_settings_.pressure_oversampling; bme68x_conf.os_pres = this->bsec_settings_.pressure_oversampling;
bme68x_set_conf(&bme68x_conf, &this->bme68x_); bme68x_set_conf(&bme68x_conf, &this->bme68x_);
switch (this->bsec_settings_.op_mode) {
case BME68X_FORCED_MODE:
this->bme68x_heatr_conf_.enable = BME68X_ENABLE;
this->bme68x_heatr_conf_.heatr_temp = this->bsec_settings_.heater_temperature;
this->bme68x_heatr_conf_.heatr_dur = this->bsec_settings_.heater_duration;
status = bme68x_set_op_mode(this->bsec_settings_.op_mode, &this->bme68x_);
status = bme68x_set_heatr_conf(BME68X_FORCED_MODE, &this->bme68x_heatr_conf_, &this->bme68x_);
status = bme68x_set_op_mode(BME68X_FORCED_MODE, &this->bme68x_);
this->op_mode_ = BME68X_FORCED_MODE;
this->sleep_mode_ = false;
ESP_LOGV(TAG, "Using forced mode");
break;
case BME68X_PARALLEL_MODE:
if (this->op_mode_ != this->bsec_settings_.op_mode) {
this->bme68x_heatr_conf_.enable = BME68X_ENABLE; this->bme68x_heatr_conf_.enable = BME68X_ENABLE;
this->bme68x_heatr_conf_.heatr_temp_prof = this->bsec_settings_.heater_temperature_profile; this->bme68x_heatr_conf_.heatr_temp_prof = this->bsec_settings_.heater_temperature_profile;
this->bme68x_heatr_conf_.heatr_dur_prof = this->bsec_settings_.heater_duration_profile; this->bme68x_heatr_conf_.heatr_dur_prof = this->bsec_settings_.heater_duration_profile;
@ -257,19 +260,19 @@ void BME68xBSEC2Component::run_() {
status = bme68x_set_op_mode(BME68X_PARALLEL_MODE, &this->bme68x_); status = bme68x_set_op_mode(BME68X_PARALLEL_MODE, &this->bme68x_);
this->op_mode_ = BME68X_PARALLEL_MODE; this->op_mode_ = BME68X_PARALLEL_MODE;
this->sleep_mode_ = false;
ESP_LOGV(TAG, "Using parallel mode"); ESP_LOGV(TAG, "Using parallel mode");
} }
break; break;
case BME68X_SLEEP_MODE: case BME68X_SLEEP_MODE:
if (!this->sleep_mode_) { if (this->op_mode_ != this->bsec_settings_.op_mode) {
bme68x_set_op_mode(BME68X_SLEEP_MODE, &this->bme68x_); bme68x_set_op_mode(BME68X_SLEEP_MODE, &this->bme68x_);
this->sleep_mode_ = true; this->op_mode_ = BME68X_SLEEP_MODE;
ESP_LOGV(TAG, "Using sleep mode"); ESP_LOGV(TAG, "Using sleep mode");
} }
break; break;
} }
if (this->bsec_settings_.trigger_measurement && this->bsec_settings_.op_mode != BME68X_SLEEP_MODE) {
uint32_t meas_dur = 0; uint32_t meas_dur = 0;
meas_dur = bme68x_get_meas_dur(this->op_mode_, &bme68x_conf, &this->bme68x_); meas_dur = bme68x_get_meas_dur(this->op_mode_, &bme68x_conf, &this->bme68x_);
ESP_LOGV(TAG, "Queueing read in %uus", meas_dur); ESP_LOGV(TAG, "Queueing read in %uus", meas_dur);

View File

@ -113,13 +113,11 @@ class BME68xBSEC2Component : public Component {
struct bme68x_heatr_conf bme68x_heatr_conf_; struct bme68x_heatr_conf bme68x_heatr_conf_;
uint8_t op_mode_; // operating mode of sensor uint8_t op_mode_; // operating mode of sensor
bool sleep_mode_;
bsec_library_return_t bsec_status_{BSEC_OK}; bsec_library_return_t bsec_status_{BSEC_OK};
int8_t bme68x_status_{BME68X_OK}; int8_t bme68x_status_{BME68X_OK};
int64_t last_time_ms_{0}; int64_t last_time_ms_{0};
uint32_t millis_overflow_counter_{0}; uint32_t millis_overflow_counter_{0};
int64_t next_call_ns_{0};
std::queue<std::function<void()>> queue_; std::queue<std::function<void()>> queue_;

View File

@ -65,6 +65,9 @@ void ESP32BLETracker::setup() {
[this](ota::OTAState state, float progress, uint8_t error, ota::OTAComponent *comp) { [this](ota::OTAState state, float progress, uint8_t error, ota::OTAComponent *comp) {
if (state == ota::OTA_STARTED) { if (state == ota::OTA_STARTED) {
this->stop_scan(); this->stop_scan();
for (auto *client : this->clients_) {
client->disconnect();
}
} }
}); });
#endif #endif

View File

@ -99,14 +99,6 @@ void I2SAudioSpeaker::setup() {
this->mark_failed(); this->mark_failed();
return; return;
} }
this->i2s_event_queue_ = xQueueCreate(I2S_EVENT_QUEUE_COUNT, sizeof(i2s_event_t));
if (this->i2s_event_queue_ == nullptr) {
ESP_LOGE(TAG, "Failed to create I2S event queue");
this->mark_failed();
return;
}
} }
void I2SAudioSpeaker::loop() { void I2SAudioSpeaker::loop() {
@ -339,7 +331,7 @@ void I2SAudioSpeaker::speaker_task(void *params) {
} }
void I2SAudioSpeaker::start() { void I2SAudioSpeaker::start() {
if (this->is_failed() || this->status_has_error()) if (!this->is_ready() || this->is_failed() || this->status_has_error())
return; return;
if ((this->state_ == speaker::STATE_STARTING) || (this->state_ == speaker::STATE_RUNNING)) if ((this->state_ == speaker::STATE_STARTING) || (this->state_ == speaker::STATE_RUNNING))
return; return;
@ -519,7 +511,6 @@ void I2SAudioSpeaker::delete_task_(size_t buffer_size) {
} }
xEventGroupSetBits(this->event_group_, SpeakerEventGroupBits::STATE_STOPPED); xEventGroupSetBits(this->event_group_, SpeakerEventGroupBits::STATE_STOPPED);
xQueueReset(this->i2s_event_queue_);
this->task_created_ = false; this->task_created_ = false;
vTaskDelete(nullptr); vTaskDelete(nullptr);

View File

@ -23,7 +23,7 @@ namespace i2s_audio {
class I2SAudioSpeaker : public I2SAudioOut, public speaker::Speaker, public Component { class I2SAudioSpeaker : public I2SAudioOut, public speaker::Speaker, public Component {
public: public:
float get_setup_priority() const override { return esphome::setup_priority::LATE; } float get_setup_priority() const override { return esphome::setup_priority::PROCESSOR; }
void setup() override; void setup() override;
void loop() override; void loop() override;

View File

@ -180,7 +180,7 @@ void LD2420Component::apply_config_action() {
} }
void LD2420Component::factory_reset_action() { void LD2420Component::factory_reset_action() {
ESP_LOGCONFIG(TAG, "Setiing factory defaults..."); ESP_LOGCONFIG(TAG, "Setting factory defaults...");
if (this->set_config_mode(true) == LD2420_ERROR_TIMEOUT) { if (this->set_config_mode(true) == LD2420_ERROR_TIMEOUT) {
ESP_LOGE(TAG, "LD2420 module has failed to respond, check baud rate and serial connections."); ESP_LOGE(TAG, "LD2420 module has failed to respond, check baud rate and serial connections.");
this->mark_failed(); this->mark_failed();

View File

@ -38,7 +38,7 @@ void SDMMeter::on_modbus_data(const std::vector<uint8_t> &data) {
ESP_LOGD( ESP_LOGD(
TAG, TAG,
"SDMMeter Phase %c: V=%.3f V, I=%.3f A, Active P=%.3f W, Apparent P=%.3f VA, Reactive P=%.3f VAR, PF=%.3f, " "SDMMeter Phase %c: V=%.3f V, I=%.3f A, Active P=%.3f W, Apparent P=%.3f VA, Reactive P=%.3f var, PF=%.3f, "
"PA=%.3f °", "PA=%.3f °",
i + 'A', voltage, current, active_power, apparent_power, reactive_power, power_factor, phase_angle); i + 'A', voltage, current, active_power, apparent_power, reactive_power, power_factor, phase_angle);
if (phase.voltage_sensor_ != nullptr) if (phase.voltage_sensor_ != nullptr)

View File

@ -1,6 +1,6 @@
"""Constants used by esphome.""" """Constants used by esphome."""
__version__ = "2024.11.0b1" __version__ = "2024.11.0b2"
ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_" ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"
VALID_SUBSTITUTIONS_CHARACTERS = ( VALID_SUBSTITUTIONS_CHARACTERS = (
@ -1095,7 +1095,7 @@ UNIT_STEPS = "steps"
UNIT_VOLT = "V" UNIT_VOLT = "V"
UNIT_VOLT_AMPS = "VA" UNIT_VOLT_AMPS = "VA"
UNIT_VOLT_AMPS_HOURS = "VAh" UNIT_VOLT_AMPS_HOURS = "VAh"
UNIT_VOLT_AMPS_REACTIVE = "VAR" UNIT_VOLT_AMPS_REACTIVE = "var"
UNIT_VOLT_AMPS_REACTIVE_HOURS = "VARh" UNIT_VOLT_AMPS_REACTIVE_HOURS = "VARh"
UNIT_WATT = "W" UNIT_WATT = "W"
UNIT_WATT_HOURS = "Wh" UNIT_WATT_HOURS = "Wh"

View File

@ -39,3 +39,10 @@ esp32_ble_tracker:
- then: - then:
- lambda: |- - lambda: |-
ESP_LOGD("ble_auto", "The scan has ended!"); ESP_LOGD("ble_auto", "The scan has ended!");
wifi:
ssid: MySSID
password: password1
ota:
- platform: esphome